You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Back in the v1.0.0 milestone (2026-08-28), and now blocking #160. This reverses the 2026-08-19 decision that stripped it.
The state of this function
Publish-PSBuildModule has no test references anywhere in the suite. Not a dedicated file, not an incidental one — grep -rn "Publish-PSBuildModule" tests/ returns a comment in LocalizedData.tests.ps1 and a stale artifact in tests/out/, and nothing else.
Measured coverage against the built module: 0 of 21 instructions, and unlike the help functions and Test-PSBuildPester — which also report 0% because their tests run in background jobs that in-process instrumentation cannot see — this 0% is literal.
Of the twelve public functions, this is the one that pushes a module to a package repository. It is the highest-consequence code in the project and the least examined.
What is already known to be wrong in it
#187 found that Publish-PSBuildModule validates -Path against $LocalizedData.PathDoesNotExist, a key en-US/Messages.psd1 never defined. Passing a path that did not exist failed validation with an empty message, on every host and every culture, while the very next check in the same ValidateScript block reported itself properly.
That was found by auditing the string table, not by testing this function. It is the only defect anyone has looked for here.
Cover the happy path with Publish-Module mocked, asserting the parameters actually forwarded.
Consider a local file-based PSRepository for at least one end-to-end case, so something exercises a real publish rather than a mock of one.
This one is genuinely awkward to test — it calls Publish-Module against a gallery, so it needs either mocking or a registered local repository. That difficulty is most of why it has no tests, and it is not a reason for a stable release to ship it unexamined.
Why it blocks 1.0.0
Same reasoning as #98. 1.0.0 claims a stable, supported public API; a function nothing has ever run is not covered by that claim. Note the distinction from #83, deferred to 1.1.0 today: deferring a new feature costs users nothing they already have, while skipping verification of code that already ships is what makes the word "stable" unearned.
Activity
test: add coverage for Publish-PSBuildModule (fixes psake#103)
test: Add PSBuildTestFixture shared fixture module
test: Add PSBuildTestFixture shared fixture module (#135)
tablackburn commentedon Aug 28, 2026
Back in the v1.0.0 milestone (2026-08-28), and now blocking #160. This reverses the 2026-08-19 decision that stripped it.
The state of this function
Publish-PSBuildModulehas no test references anywhere in the suite. Not a dedicated file, not an incidental one —grep -rn "Publish-PSBuildModule" tests/returns a comment inLocalizedData.tests.ps1and a stale artifact intests/out/, and nothing else.Measured coverage against the built module: 0 of 21 instructions, and unlike the help functions and
Test-PSBuildPester— which also report 0% because their tests run in background jobs that in-process instrumentation cannot see — this 0% is literal.Of the twelve public functions, this is the one that pushes a module to a package repository. It is the highest-consequence code in the project and the least examined.
What is already known to be wrong in it
#187 found that
Publish-PSBuildModulevalidates-Pathagainst$LocalizedData.PathDoesNotExist, a keyen-US/Messages.psd1never defined. Passing a path that did not exist failed validation with an empty message, on every host and every culture, while the very next check in the sameValidateScriptblock reported itself properly.That was found by auditing the string table, not by testing this function. It is the only defect anyone has looked for here.
Scope
ApiKeyandCredential.ValidateScripton-Path— the missing path and not-a-directory branches, which is where the fix: Resolve localized strings from the shipped file on every host #187 defect lived.Publish-Modulemocked, asserting the parameters actually forwarded.PSRepositoryfor at least one end-to-end case, so something exercises a real publish rather than a mock of one.This one is genuinely awkward to test — it calls
Publish-Moduleagainst a gallery, so it needs either mocking or a registered local repository. That difficulty is most of why it has no tests, and it is not a reason for a stable release to ship it unexamined.Why it blocks 1.0.0
Same reasoning as #98. 1.0.0 claims a stable, supported public API; a function nothing has ever run is not covered by that claim. Note the distinction from #83, deferred to 1.1.0 today: deferring a new feature costs users nothing they already have, while skipping verification of code that already ships is what makes the word "stable" unearned.
docs: Finalize the migration guide and test the AI migration prompt (#…