Skip to content

Commit f88ae2d

Browse files
committed
fix: restore nested private helper coverage and sync site docs
- expand Pester CodeCoverage paths so nested src/private folders are included in artifacts/coverage.xml - stop build test support files from shadowing manifest helper coverage and add mirrored duplicate-validation tests - update the public site for scaffold version defaults, explicit coverage paths, and corrected versioning examples
1 parent 6102679 commit f88ae2d

4 files changed

Lines changed: 32 additions & 11 deletions

File tree

docs/core-workflows.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,9 @@ <h2>Create the project</h2>
124124
path syntax such as <code>% nova init ~/Work</code>.</p>
125125
</div>
126126
<p>Both scaffold styles ask the same core project questions, and both now offer an optional Agentic
127-
Copilot starter package after the Git prompt. Before the first question, Nova also checks whether a
127+
Copilot starter package after the Git prompt. The starting version prompt now defaults to
128+
<code>0.1.0-preview</code>, so new projects begin on Nova's prerelease-friendly starter line unless
129+
you choose a different version. Before the first question, Nova also checks whether a
128130
newer NovaModuleTools release is available and warns without blocking the scaffold flow. When you
129131
enable Git in either scaffold style, Nova also creates or updates a default <code>.gitignore</code>
130132
in the generated project root so common local and CI artifact paths are ignored without
@@ -147,8 +149,9 @@ <h2>Create the project</h2>
147149
entry point, and a strict file-ending rule for changed or generated text
148150
files.</p>
149151
<p>The generated <code>project.json</code> also starts with Nova's standard <code>Pester</code>
150-
defaults, including a disabled <code>CodeCoverage</code> block you can enable later without
151-
hand-authoring the structure.</p>
152+
defaults, including a disabled <code>CodeCoverage</code> block with explicit source coverage paths
153+
for <code>src/public/</code>, nested <code>src/private/</code> helper folders, and
154+
<code>src/classes/</code>, so you can enable coverage later without hand-authoring the structure.</p>
152155
<p>When you answer <code>Yes</code>, Nova also asks for a short project name used in generated guidance
153156
placeholders such as <code>Invoke-&lt;ShortName&gt;*</code>. For NovaModuleTools the short name is
154157
<code>Nova</code>, but it could also have been <code>NMT</code>.</p>

docs/getting-started.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,8 @@ <h2>4. Scaffold the packaged example</h2>
195195
</div>
196196
<p>Nova asks for the project name, description, version, author, minimum PowerShell version, whether
197197
Git should be initialized, and whether Nova should add the optional Agentic Copilot starter package.
198+
The starting version prompt now defaults to <code>0.1.0-preview</code>, so new projects begin on
199+
Nova's prerelease-friendly starter line unless you choose a different version.
198200
Before the first question, Nova also checks whether a newer NovaModuleTools release is available and
199201
warns without blocking the scaffold flow.
200202
When you enable Git, Nova also creates or updates a default <code>.gitignore</code> in the new
@@ -219,8 +221,9 @@ <h2>4. Scaffold the packaged example</h2>
219221
Nova then creates a project folder under the path you selected.</p>
220222
<p>The generated <code>project.json</code> also starts with Nova's standard <code>Pester</code>
221223
defaults, including an opt-in <code>CodeCoverage</code> block with <code>Enabled=false</code>,
222-
shared <code>src/</code> coverage paths, JaCoCo output in <code>artifacts/coverage.xml</code>, and
223-
a <code>90</code> percent target you can enable later.</p>
224+
explicit source coverage paths for <code>src/public/</code>, nested <code>src/private/</code>
225+
helper folders, and <code>src/classes/</code>, JaCoCo output in <code>artifacts/coverage.xml</code>,
226+
and a <code>90</code> percent target you can enable later.</p>
224227
<p>If you enable the Agentic package, Nova also asks for a short project name used in generated guidance
225228
placeholders such as <code>Invoke-&lt;ShortName&gt;*</code>. For NovaModuleTools the short name is
226229
<code>Nova</code>, but it could also have been <code>NMT</code>.</p>

docs/project-json-reference.html

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,19 @@ <h2>Complete example</h2>
176176
]
177177
},
178178
"Pester": {
179+
"CodeCoverage": {
180+
"Enabled": false,
181+
"Path": [
182+
"src/public/*.ps1",
183+
"src/private/*.ps1",
184+
"src/private/*/*.ps1",
185+
"src/private/*/*/*.ps1",
186+
"src/classes/*.ps1"
187+
],
188+
"CoveragePercentTarget": 90,
189+
"OutputPath": "artifacts/coverage.xml",
190+
"OutputFormat": "JaCoCo"
191+
},
179192
"TestResult": {
180193
"Enabled": true,
181194
"OutputFormat": "NUnitXml"
@@ -626,10 +639,11 @@ <h2><code>Pester</code> settings</h2>
626639
<tr>
627640
<td><code>Pester.CodeCoverage.Path</code></td>
628641
<td>Declares which source files the coverage run analyzes.</td>
629-
<td><code>src/public/*.ps1</code><br><code>src/private/**/*.ps1</code><br><code>src/classes/*.ps1</code>
642+
<td><code>src/public/*.ps1</code><br><code>src/private/*.ps1</code><br><code>src/private/*/*.ps1</code><br><code>src/private/*/*/*.ps1</code><br><code>src/classes/*.ps1</code>
630643
</td>
631644
<td>These defaults ship in new starter projects so coverage can be enabled without
632-
hand-authoring the file list.
645+
hand-authoring the file list, including nested helper folders such as
646+
<code>src/private/build/manifest/</code> and <code>src/private/quality/duplicates/</code>.
633647
</td>
634648
</tr>
635649
<tr>
@@ -661,9 +675,10 @@ <h2><code>Pester</code> settings</h2>
661675
</table>
662676
</div>
663677
<p class="tiny-note">Starter projects now include the full <code>Pester.CodeCoverage</code> block with
664-
<code>Enabled=false</code>, so turning coverage on usually means changing only that switch. At
665-
runtime, <code>Test-NovaBuild</code> also lets you override verbosity and render mode temporarily
666-
with <code>-OutputVerbosity</code> and <code>-OutputRenderMode</code>.</p>
678+
<code>Enabled=false</code> and the explicit default source globs shown above, so turning coverage on
679+
usually means changing only that switch. At runtime, <code>Test-NovaBuild</code> also lets you
680+
override verbosity and render mode temporarily with <code>-OutputVerbosity</code> and
681+
<code>-OutputRenderMode</code>.</p>
667682
<p>When you enable coverage, Nova writes JaCoCo output to <code>artifacts/coverage.xml</code> and fails
668683
the test workflow if the measured percentage is lower than
669684
<code>Pester.CodeCoverage.CoveragePercentTarget</code>.</p>

docs/versioning-and-updates.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ <h3>How Nova chooses the bump label</h3>
174174
instead of jumping to <code>1.0.0</code>. Nova prints one warning that you should set
175175
<code>1.0.0</code> manually once the API is stable. Preview mode stays unchanged.
176176
</p>
177-
<pre><code>0.1.0-preview + Patch -> 0.0.2
177+
<pre><code>0.0.1 + Patch -> 0.0.2
178178
0.1.0 + Minor -> 0.2.0
179179
0.1.0 + Major -> 0.2.0</code></pre>
180180
<p>When Git tags exist, Nova uses commits since the latest tag. When Git-based inference is unavailable

0 commit comments

Comments
 (0)