This file summarizes the release notes for NovaModuleTools. UNRELEASED changes will be included in the next stable release!
Update-NovaModuleTooland% nova updatenow keep self-update failure details and recovery guidance on separate terminal lines so the error is easier to scan.Invoke-NovaTest,Test-NovaBuild, and% nova testnow stay on Nova's supportedPester 5.xrange and stop with a clear error instead of trying to run with an installedPester 6.xversion.
Invoke-NovaTest,Test-NovaBuild, and% nova testnow stay on Nova's supportedPester 5.xrange and stop with a clear error instead of trying to run with an installedPester 6.xversion.
- The shipped Agentic Copilot scaffold now includes tighter review, release, testing, and analyzer guidance so generated projects inherit the latest workflow guardrails and validation expectations.
Test-NovaBuildand% nova test -bnow complete with a visible warning when a project has no*.Integration.Tests.ps1files, and the guidance now explains where build-validation tests belong plus when to useInvoke-NovaTestinstead.- The packaged example scaffold now includes a minimal build-validation integration test that resolves the generated project name before importing the built module and checking
Get-ExampleGreeting, sonova init -eprojects can passTest-NovaBuild.
nova initnow injects a"$schema"property into new projects pointing to the hosted versioned JSON schema, enabling VS Code IntelliSense, autocomplete, and hover descriptions while editingproject.json.nova initalso writes.vscode/settings.jsonmappingproject.jsonto the schema URL so VS Code trusts it automatically — no manual "Allow" step required.
- Added
Invoke-NovaTestas the dedicated PowerShell unit-test command.% nova testnow maps toInvoke-NovaTest.- Unit-test NUnit results are now written to
artifacts/UnitTestResults.xml. Invoke-NovaTestnow supports guarded runtime-only test-data injection through-PesterConfigurationOverride, limited in v1 toRun.Containerentries such asNew-PesterContainer -Data @{ Credential = $credential }.
Get-NovaProjectInfonow matches the CLI version split on the PowerShell surface.- Use
-Installedfor the installed current project/module version. - Use
-InstalledNovaVersionfor the installedNovaModuleToolsversion.
- Use
Update-NovaModuleToolnow suggestsGet-NovaProjectInfo -InstalledNovaVersionafter a successful self-update.Test-NovaBuildis now the build-validation integration-test command instead of the combined default test entry point.% nova test --buildand% nova test -bnow map toTest-NovaBuild.- Build-validation NUnit results continue to use
artifacts/TestResults.xml.
- Repository and CI quality loops now run
Invoke-NovaTestbeforeTest-NovaBuildwhen tests are enabled.
- Boolean
Package.Latestvalues (true/false) are no longer accepted. Passing them now throws with a migration message pointing to"always"or"never". The JSON schema also rejects boolean values for this field.
Publish-NovaModuleno longer loses its completion summary after local publish import or CI session refresh steps reload the module.Test-NovaBuildand% nova testnow keep the Nova progress display visibly active during long Pester runs instead of appearing stuck on one step while tests continue.- During the long Pester phase, Nova now drives the progress bar from discovered and completed Pester tests instead of elapsed time, keeps the progress text simple, and still shows configured Pester output such as
Pester.Output.Verbosity = "Detailed".
- During the long Pester phase, Nova now drives the progress bar from discovered and completed Pester tests instead of elapsed time, keeps the progress text simple, and still shows configured Pester output such as
- Invalid
Package.Typesvalues inproject.jsonnow show the accepted values (NuGet,Zip,.nupkg,.zip) directly in VS Code instead of the raw regex pattern.
- Added
Invoke-NovaAgenticCopilotScaffoldand% nova copilotfor adding or refreshing Nova's managed Agentic Copilot workflow in an existing project.- The workflow reads
ProjectNameandDescriptionfromproject.json, requires an explicitShortNameon every run, and stops with a clear validation error when the target project metadata is missing or invalid. - Nova refreshes only its managed Agentic Copilot files and folders, while
README.md,CHANGELOG.md, andRELEASE_NOTE.mdare created only when they are missing. - The command prompts before overwrite by default and supports non-interactive execution only through
-OverrideWarning/--override-warning/-o.
- The workflow reads
Deploy-NovaPackagenow shows clearer terminal feedback during raw package uploads, including a concise pre-flight summary, progress across multiple artifacts, and a short verification hint after success.Get-NovaProjectInfonow explains how to recover when-Pathis invalid or the target folder is not a Nova project root.Get-NovaUpdateNotificationPreference -Verbosenow tells you whether Nova is using a stored update-notification preference or the built-in default, and the help now points to the matching% nova notificationworkflow.Initialize-NovaModulenow shows scaffold progress, ends with the project root and the next suggested cmdlet, and gives clearer recovery guidance when the target project folder already exists.Install-NovaClinow prints the installed launcher path, suggests the next command to run, and gives a clearerPATHwarning when the launcher directory is not yet available from the shell.Invoke-NovaAgenticCopilotScaffoldnow shows apply progress, ends with the project root plus suggested review and validation steps, and gives clearer cancellation guidance when the overwrite warning is declined.Invoke-NovaBuildnow shows progress for the main build phases, ends with the output module directory plus the next suggested validation step, and explains the refreshed session when-ContinuousIntegrationreloads the built module.Invoke-NovaClinow treats blank command input as root help, reports unknown commands with clearer recovery guidance, and ships a dedicated help topic for the PowerShell wrapper surface.Invoke-NovaReleasenow shows progress for the main release phases, ends with the publish target plus a next-step hint, and uses a plan summary instead of a success summary when-WhatIfpreviews the release.New-NovaModulePackagenow shows progress for build validation and artifact creation, ends with the package target plus the next suggested deployment step, and uses a package-plan summary in-WhatIfmode.Publish-NovaModulenow shows progress for build validation, publish, local import, and CI restore phases, ends with the publish target plus a suggested verification step, and uses a publish-plan summary in-WhatIfmode.Set-NovaUpdateNotificationPreferencenow ends with a clear success or preview summary, prints the settings file path, suggestsGet-NovaUpdateNotificationPreferenceas the next verification step, and gives a more actionable validation error when no enable/disable switch is supplied.Test-NovaBuildnow shows progress across the main test phases, ends with the result file path plus a coverage summary and next-step hint when tests pass, uses a test-plan summary in-WhatIfmode, and fails with more actionable guidance when Pester or coverage checks fail.Update-NovaModuleToolnow ends with a visible up-to-date, preview, cancelled, or updated summary, skips prerelease confirmation during-WhatIf, shows progress for the actual self-update step, and suggestsGet-NovaProjectInfo -Installedafter a successful update.Update-NovaModuleVersionnow ends with a visible preview, cancelled, or updated summary, prints the resolved version file plus the detected/applied release label, shows progress while writingproject.json, and suggests the next command to run after the bump.
- PowerShell command help
RELATED LINKSnow use valid help-topic.
- The Agentic Copilot starter shipped by
nova initno longer tells generated projects to use arun.ps1quality wrapper that the template does not include. nova init --examplenow ships the packaged example with source-mirrored tests and code coverage enabled by default, soTest-NovaBuildworks before a build and measuressrc/**/*.ps1.
Initialize-NovaModuleand% nova initnow offer an optional Agentic Copilot starter package in both the minimal and example interactive scaffold flows.- The starter package follows a filtered mirror of Nova's maintained agentic guidance so newly scaffolded projects receive a broader Nova-style agentic baseline without Nova-specific surfaces.
- When Git is enabled in either scaffold flow, Nova now creates or updates a default
.gitignorein the generated project root and only appends the missing Nova-managed artifact entries instead of overwriting existing ignore rules. - Before the first interactive scaffold question, Nova now checks for newer NovaModuleTools releases and reuses the same non-blocking update warning behavior already used by build.
Test-NovaBuildand% nova testnow enforcePester.CodeCoverage.CoveragePercentTargetfromproject.jsonwhenCodeCoverage.Enabledistrue, so coverage gates work without extra external tooling.
- New projects now start with Nova's default Pester
CodeCoverageblock in both the minimal template and packaged exampleproject.json, withEnabled=false, sharedsrc/coverage paths, JaCoCo output, and a90percent target ready to opt into.
Package.Latestinproject.jsonnow accepts the policy values"never","stable", and"always".- Use
"stable"when the floatinglatestpackage alias should follow stable package versions only.
- Use
- Boolean
Package.Latestvalues are deprecated and still map to"always"/"never"for now.- Migrate to the string-based policy values before the next major version.
nova bumpandUpdate-NovaModuleVersionnow reuse parent Git repository history when a project lives in a nested folder, instead of falling back toPatch.- Non-git bump flows now stop with a clear override-warning requirement instead of presenting
Patch | Commits: 0as if the value had been inferred automatically.
- Prerelease self-update confirmation now defaults to
No.Update-NovaModuleTool,Update-NovaModuleTools, and% nova updatenow require an explicitYbefore a prerelease self-update continues.
- Nova-managed CI/CD test flows now pull in
Pester 5.7.1again through the publishedNovaModuleToolsmanifest.- Existing CI/CD workflows no longer need their own
Pesterinstallation step just to keep project tests working. Test-NovaBuildnow fails with a clear dependency error whenPesteris missing.
- Existing CI/CD workflows no longer need their own
This release was yanked because it removed the implicit Pester dependency before Nova's CI/CD test flow installed Pester explicitly. Projects using NovaModuleTools 2.2.0 could fail to run tests in CI/CD unless maintainers added their own Pester installation step. The regression was fixed in 2.3.0.
Invoke-NovaReleasenow aligns withPublish-NovaModuleand% nova releaseby accepting-Local,-Repository,-ModuleDirectoryPath, and-ApiKeydirectly.- Existing automation should move away from deprecated
-PublishOptionusage.
- Existing automation should move away from deprecated
- Stable
0.y.zbump planning now stays on the major-zero line even when commit history implies a breaking change.- Nova now plans the next minor version instead of auto-jumping to
1.0.0.
- Nova now plans the next minor version instead of auto-jumping to
Update-NovaModuleVersion -Previewand% nova bump --previewnow enter the preview track deterministically from stable versions.- Stable versions always become the next patch preview, for example
0.2.0 -> 0.2.1-preview.
- Stable versions always become the next patch preview, for example
Install-NovaCliand a packagednovalauncher now let macOS and Linux users install and runnovadirectly from zsh or bash.- Mutating Nova commands now support native
-WhatIf/-Confirm, and the routed CLI now supports--what-if,--confirm, and--verbosewithout dropping into PowerShell'sSuspendprompt. - Self-update support is now available through
Update-NovaModuleTool,Update-NovaModuleTools, andnova update, with matching notification preference commands and CLI routes. nova version --installed/-inow shows the installed NovaModuleTools version beside the current project version.Test-NovaBuild -Buildandnova test --buildcan now rebuild the project before running Pester.Update-NovaModuleVersion -Previewandnova bump --previewnow support explicit preview-version iteration.New-NovaModulePackage/nova packageandDeploy-NovaPackage/nova deploynow add generic package build and raw upload workflows.-SkipTests/--skip-testsand-ContinuousIntegration/--continuous-integrationnow support CI-oriented package, publish, release, and versioning flows.
- Nova now uses the Nova command model and a CLI-native help system as the primary workflow surface.
Publish-NovaModule -Localandnova publish --localnow reload the published module from the local install path into the current PowerShell session.
- BREAKING CHANGE: Legacy
MTcommands were removed in favor of the Nova command model. - BREAKING CHANGE:
New-NovaModulewas renamed toInitialize-NovaModulewithout compatibility aliases.
- Invalid
nova helpinvocations now return Nova's structured CLI validation errors. - Empty or unsupported
project.jsonconfiguration now fails fast with clearer validation messages.
- Introduced the Nova command model and the
novaroot command together with the core public NovaModuleTools cmdlets.
MTcommands and MT-branded documentation were deprecated in favor of the Nova command model.
- Resource lookup now behaves correctly when commands run from source or built
dist/module contexts.
- Added
BuildRecursiveFolders,SetSourcePath, andFailOnDuplicateFunctionNamesproject settings for more explicit build control.
- Build output is now generated in a deterministic file order, with
classes -> public -> privateload sequencing.
- Resource format files named
Name.format.ps1xmlare now imported automatically through the generated module manifest.
- Added
src/classessupport, andInitialize-NovaModulenow creates the classes directory for new projects.
- Version updates now support build tags and improved semantic-version handling.
Update-NovaModuleVersionnow supports preview tags, and project/build metadata now follows semver naming more consistently.- Preview builds can now use
previeworprereleaselabels, for example1.2.3-preview.
- Generated module manifests now include
AliasesToExport, so exported aliases load without extra manual import work.
- Added the optional
CopyResourcesToModuleRootproject setting so resource files can be copied to the module root when needed.
- BREAKING CHANGE:
ProjecUriwas corrected toProjectUri, and existing projects need a manual setting update.
Invoke-NovaBuildno longer fails when tag filters are empty.
- The
Manifestsection inproject.jsonnow supports the full set ofNew-ModuleManifestparameters.
- The example project README now points users to the supported repository-root and Gallery workflows.
- Corrected the
ProjectUrisetting name in project metadata guidance.
Test-NovaBuildnow supports include/exclude tag filtering.
- Module initialization now prints more progress detail while a project is being created.
- New projects now initialize Git automatically when requested.
- Skipping tests during project creation no longer leaves behind an empty
testsfolder.
- First PowerShell Gallery release of NovaModuleTools with the initial module workflow support.