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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+22-15Lines changed: 22 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,23 @@ All notable changes to this project will be documented in this file and **UNRELE
4
4
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
5
6
6
## [Unreleased]
7
+
8
+
### Added
9
+
10
+
### Changed
11
+
12
+
### Deprecated
13
+
14
+
### Removed
15
+
16
+
### Fixed
17
+
18
+
### Security
19
+
20
+
## [3.0.0] - 2026-05-17
21
+
7
22
### Added
23
+
8
24
-`Initialize-NovaModule` and `% nova init` now offer an optional interactive **Agentic Copilot** starter package for both the minimal and example scaffold flows.
9
25
- The new prompt appears after the Git question, defaults to `No`, and adds one shared Nova-maintained starter tree when enabled.
10
26
- Example scaffolds now merge the existing example README with the Agentic starter README instead of flattening the example guide into the generic starter file.
@@ -30,8 +46,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
30
46
- Added mirrored, dot-source-first Pester test files for every public command (`src/public/*.ps1`), so each command (`Invoke-NovaBuild`, `Test-NovaBuild`, `New-NovaModulePackage`, `Initialize-NovaModule`, `Get-NovaProjectInfo`, `Get-/Set-NovaUpdateNotificationPreference`, `Install-NovaCli`, `Invoke-NovaCli`, `Update-NovaModuleTool`, `Update-NovaModuleVersion`, `Deploy-NovaPackage`, `Publish-NovaModule`, `Invoke-NovaRelease`) now has a focused command-surface test under `tests/public/` covering parameter forwarding, delegation to its workflow context/workflow helpers, and `ShouldProcess` / `-WhatIf` behavior without duplicating private helper coverage.
31
47
- Restored measured code coverage to the configured 99% target after the test-layout migration by adding mirrored, dot-source-first tests and branch coverage extensions across the remaining gap files in `src/private/quality/`, `src/private/package/`, `src/private/release/`, `src/private/scaffold/`, `src/private/build/`, and `src/private/shared/`. The full suite now reports 99% line coverage against `src/**/*.ps1` with no dist-folder dependency in any test file.
32
48
33
-
34
49
### Changed
50
+
35
51
- Removed the pre-migration broad coverage-bucket suites (`CoverageGaps*`, `CoverageCompletion*`, `Remaining*Coverage*`, broad `NovaCommandModel*`). The mirrored `tests/public/` and `tests/private/<domain>/` suites added in now own that coverage, and the restored 99% measured coverage confirms no regression, so the parked `tests/_legacy/` reference copies are no longer needed.
36
52
- Migrated the remaining mirrored private-helper tests (`tests/private/update/`, `tests/private/quality/`, `tests/private/build/InvokeNovaBuildWorkflow.Tests.ps1`, and `tests/private/scaffold/`) off the legacy `Import-Module dist + InModuleScope` pattern to the dot-source-first model, so the full mirrored test suite runs against `src/**/*.ps1` directly and does not require a prior `Invoke-NovaBuild`.
37
53
- Removed the dist-requiring integration and guardrail tests (`Module`, `OutputFiles`, `BuildOptions`, `CiCoverage`, `CliHelperCoverage`, `CliSharedParser`, `PackageLatestPolicy`, `PreambleBuild`, `UpdateNotification`) and their `*TestSupport.ps1` sidecars now that the mirrored suites cover the same behavior and `nova test` no longer depends on `dist/NovaModuleTools` being built first.
@@ -42,27 +58,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
42
58
-`ProjectTemplate.json` and the packaged example `project.json` now include Nova's default Pester `CodeCoverage` block with `Enabled=false`, shared `src/` coverage paths, JaCoCo output, and a `90` percent target so new projects can opt into coverage without hand-authoring the configuration.
43
59
-`Invoke-NovaModuleToolsCI.ps1` now delegates the full test run to a single `Test-NovaBuild` call; the previous second `Invoke-Pester` pass and post-run Cobertura source-path remapping step have been removed.
44
60
- CodeScene coverage upload now uses JaCoCo format instead of Cobertura and uploads both `line-coverage` and `branch-coverage` metrics in a single CI run; the helper script auto-discovers `artifacts/coverage.xml` instead of scanning for `*.cobertura.xml` files.
45
-
-`Tests.yml` coverage-gate step now matches `**/coverage.xml` instead of `**/pester-coverage.cobertura.xml` to align with the new JaCoCo artifact path.
46
-
47
-
48
-
### Deprecated
49
-
50
-
51
-
### Removed
52
-
61
+
-`Tests.yml` coverage-gate step now matches `**/coverage.xml` instead of `**/pester-coverage.cobertura.xml` to align with the new JaCoCo artifact path.
53
62
54
63
### Fixed
64
+
55
65
-`Test-NovaBuild` and `% nova test` no longer emit `Remove-Item -Recurse` progress bars during the Pester run; `$global:ProgressPreference` is saved and restored around the test execution so CI logs stay clean.
56
66
- Code coverage in `Test-NovaBuild` now runs against the source files, instead of the built `dist/<ModuleName>/<ModuleName>.psm1` file so measured coverage percentages and line numbers align with the deployed module.
57
67
-`Invoke-CodeSceneAnalysis.ps1` now normalizes Pester's JaCoCo output before upload so the `<class sourcefilename>` and `<sourcefile name>` entries are bare filenames and `package + sourcefile` resolves to real repository paths. This fixes the CodeScene `cs-coverage upload` failure "The coverage data does not contains any records related to the current repo" that appeared after the source-mirrored coverage migration.
58
68
- The pull-request CodeScene coverage gate now normalizes downloaded JaCoCo coverage artifacts before running `cs-coverage check`, so PRs no longer report `0.0%` coverage across the board because of unnormalized `package + sourcefile` paths.
59
69
-`Invoke-CodeSceneAnalysis.ps1` now only invokes the `cs-coverage upload … --metric branch-coverage` step when the JaCoCo report actually contains `<counter type="BRANCH">` entries, so Pester reports that only emit line counters no longer fail the CodeScene step with "Requested metric is not present in coverage data".
60
70
- Pester coverage configuration now uses explicit private-folder depth globs instead of `src/private/**/*.ps1`, so nested helpers such as `src/private/build/manifest/` and `src/private/quality/duplicates/` are included in `artifacts/coverage.xml` during the full `Test-NovaBuild` run.
61
71
62
-
63
-
### Security
64
-
65
-
66
72
## [2.4.0] - 2026-05-10
67
73
### Added
68
74
- Added a repository-local agentic coding setup under `.github/` for Copilot/AI-assisted repository work.
@@ -391,8 +397,8 @@ This release was yanked because it removed the implicit `Pester` dependency, bef
Copy file name to clipboardExpand all lines: RELEASE_NOTE.md
+15-10Lines changed: 15 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,28 +3,32 @@
3
3
This file summarizes the release notes for NovaModuleTools. **UNRELEASED** changes will be included in the next **stable** release!
4
4
5
5
## [Unreleased]
6
+
6
7
### Added
7
-
-`Initialize-NovaModule` and `% nova init` now offer an optional **Agentic Copilot** starter package in both the minimal and example interactive scaffold flows.
8
-
- 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.
9
-
- When Git is enabled in either scaffold flow, Nova now creates or updates a default `.gitignore` in the generated project root and only appends the missing Nova-managed artifact entries instead of overwriting existing ignore rules.
10
-
- 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.
11
-
-`Test-NovaBuild` and `% nova test` now enforce `Pester.CodeCoverage.CoveragePercentTarget` from `project.json` when `CodeCoverage.Enabled` is `true`, so coverage gates work without extra external tooling.
12
8
13
9
### Changed
14
-
- New projects now start with Nova's default Pester `CodeCoverage` block in both the minimal template and packaged example `project.json`, with `Enabled=false`, shared `src/` coverage paths, JaCoCo output, and a `90` percent target ready to opt into.
15
-
16
10
17
11
### Deprecated
18
12
19
-
20
13
### Removed
21
14
22
-
23
15
### Fixed
24
16
25
-
26
17
### Security
27
18
19
+
## [3.0.0] - 2026-05-17
20
+
21
+
### Added
22
+
23
+
-`Initialize-NovaModule` and `% nova init` now offer an optional **Agentic Copilot** starter package in both the minimal and example interactive scaffold flows.
24
+
- 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.
25
+
- When Git is enabled in either scaffold flow, Nova now creates or updates a default `.gitignore` in the generated project root and only appends the missing Nova-managed artifact entries instead of overwriting existing ignore rules.
26
+
- 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.
27
+
-`Test-NovaBuild` and `% nova test` now enforce `Pester.CodeCoverage.CoveragePercentTarget` from `project.json` when `CodeCoverage.Enabled` is `true`, so coverage gates work without extra external tooling.
28
+
29
+
### Changed
30
+
31
+
- New projects now start with Nova's default Pester `CodeCoverage` block in both the minimal template and packaged example `project.json`, with `Enabled=false`, shared `src/` coverage paths, JaCoCo output, and a `90` percent target ready to opt into.
28
32
29
33
## [2.4.0] - 2026-05-10
30
34
### Changed
@@ -184,3 +188,4 @@ This release was yanked because it removed the implicit `Pester` dependency befo
184
188
## [0.0.4] - 2024-06-25
185
189
### Added
186
190
- First PowerShell Gallery release of NovaModuleTools with the initial module workflow support.
Copy file name to clipboardExpand all lines: project.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"ProjectName": "NovaModuleTools",
3
3
"Description": "NovaModuleTools is an enterprise-focused evolution of ModuleTools, designed for large-scale PowerShell projects with a strong emphasis on structure, maintainability, and automated CI/CD pipelines.",
0 commit comments