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: docs/content/Modules/Process-PSModule/specification/spec.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,49 +25,49 @@ Applies to any PowerShell module in the PSModule ecosystem that produces a versi
25
25
26
26
### Functional Requirements
27
27
28
-
### FR1 — Build the module from source {#fr1}
28
+
### FR1 — Build the module from source {#fr1}
29
29
30
30
The pipeline MUST compile the PowerShell module source code into a module artifact, stamping it with the resolved semantic version and making it available for downstream testing and publication.
31
31
32
-
### FR2 — Run cross-platform tests {#fr2}
32
+
### FR2 — Run cross-platform tests {#fr2}
33
33
34
34
The pipeline MUST execute the module's test suites against multiple platforms — at minimum Windows, Linux, and macOS — and fail the build if any platform's tests fail. Tests MUST include source-code validation (style, standards), framework tests (module structure, common issues), and module-local tests (user-written Pester tests).
35
35
36
-
### FR3 — Enforce code quality and coverage gates {#fr3}
36
+
### FR3 — Enforce code quality and coverage gates {#fr3}
37
37
38
38
The pipeline MUST measure and enforce code coverage thresholds and static-analysis results. A build MUST NOT proceed to publication if quality or coverage targets are missed; the gate MUST prevent merge unless explicitly overridden by a label.
39
39
40
-
### FR4 — Generate and publish documentation {#fr4}
40
+
### FR4 — Generate and publish documentation {#fr4}
41
41
42
42
The pipeline MUST generate module documentation from the source (cmdlet help, README, schema) and publish it to a static documentation site. Documentation MUST be versioned and deployable alongside the module release.
43
43
44
-
### FR5 — Support label-driven versioning and publication {#fr5}
44
+
### FR5 — Support label-driven versioning and publication {#fr5}
45
45
46
46
The pipeline MUST read pull-request labels (`Major`, `Minor`, `Patch`, `Prerelease`, `NoRelease`) to decide the semantic-version bump. It MUST compute the next version automatically, never reading or writing a hand-edited version file. A merge to the release branch MUST trigger publication to the PowerShell Gallery and documentation site; a prerelease label MUST result in a prerelease version available for testing before stable release.
47
47
48
-
### FR6 — Produce immutable, linkable releases {#fr6}
48
+
### FR6 — Produce immutable, linkable releases {#fr6}
49
49
50
50
Each publication MUST produce a GitHub Release, a git tag, and a PowerShell Gallery package version — all linked and versioned together so they are discoverable and pinnable for consumers.
51
51
52
52
### Non-Functional Requirements
53
53
54
-
### NFR1 — Semantic versioning compliance {#nfr1}
54
+
### NFR1 — Semantic versioning compliance {#nfr1}
55
55
56
56
Versions MUST follow [SemVer 2.0.0](https://semver.org/) (`vMAJOR.MINOR.PATCH` or `vMAJOR.MINOR.PATCH-prerelease.N`). Breaking changes MUST increment `MAJOR`; new functionality MUST increment `MINOR`; bugfixes MUST increment `PATCH`. Prerelease versions MUST be obtainable but not promoted as the latest stable release.
57
57
58
-
### NFR2 — Serialized releases {#nfr2}
58
+
### NFR2 — Serialized releases {#nfr2}
59
59
60
60
Only one release process MUST run against a given version of the codebase at a time. Concurrent releases to the same ref MUST be prevented, so the tag, version counter, and published artifact remain consistent.
61
61
62
-
### NFR3 — Single production authority {#nfr3}
62
+
### NFR3 — Single production authority {#nfr3}
63
63
64
64
Exactly one branch (typically `main`) MUST be authorized to publish stable releases. All other release branches MUST publish only prerelease versions. This ensures consumers have one unambiguous latest stable version.
65
65
66
-
### NFR4 — Rapid feedback on failure {#nfr4}
66
+
### NFR4 — Rapid feedback on failure {#nfr4}
67
67
68
68
Pipeline failures MUST be visible in the pull request and block merge. Contributors MUST know within minutes whether their changes pass quality and test gates, not hours or days later.
69
69
70
-
### NFR5 — Reproducible and auditable {#nfr5}
70
+
### NFR5 — Reproducible and auditable {#nfr5}
71
71
72
72
The entire pipeline and its decisions MUST be stored in git, so the build is reproducible and auditable from the commit alone. No external configuration, API calls, or out-of-band decisions.
0 commit comments