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
Process-PSModule is the framework for building, testing, versioning, documenting, and publishing PowerShell modules. These foundations define the repository, source, test, and release conventions that the framework supports and validates.
3
+
This page indexes modules maintained in the PSModule organization and what each module does.
4
4
5
-
Start with the [Process-PSModule overview](../index.md)to understand the workflow. Use these pages when creating or maintaining a module that runs through it.
5
+
Modules are separate from the [Process-PSModule framework](../index.md). Use the framework documentation to build and release a module; use this page to discover the modules available to install and use.
6
6
7
-
| Page | Use it for |
8
-
| --- | --- |
9
-
|[Repository Standard](Repository-Standard.md)| Creating a module repository with the required metadata, files, and framework wiring. |
Copy file name to clipboardExpand all lines: docs/content/get-started/module-bootstrap.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ A brand-new module usually has a small **load-bearing core**: the piece(s) every
9
9
10
10
## Identify the load-bearing core first
11
11
12
-
What counts as "load-bearing" follows the module's archetype from [Module types](../Modules/Module-Types.md):
12
+
What counts as "load-bearing" follows the module's archetype from [Module types](../reference/module-types.md):
13
13
14
14
-**Data modules** — the conversion pivot: `ConvertFrom-<Format>` / `ConvertTo-<Format>` (and whatever parser/serializer they wrap). Every other function (`Import-`, `Export-`, `Format-`, `Merge-`, ...) is built on top of this pivot and is meaningless without it.
15
15
-**Integration (API) modules** — a [`Context`](https://github.com/PSModule/Context)-backed credential/config store, the client setup that uses it, and at least one API function that consumes the context end-to-end. Every other API function needs the same context and client to do anything.
@@ -25,7 +25,7 @@ Scope the integration branch to exactly that core, not to everything planned for
25
25
26
26
## After the core lands
27
27
28
-
Once the core has merged as `v1.0.0`, ordinary [SemVer](../Modules/Versioning.md) applies: a new function built on the stable core is a **minor** bump, a fix is a **patch** bump, and only a change to the core's own contract (signature, exported class shape, behavior) is a **major** bump. No special versioning exception is needed once the core is in place — the bootstrap phase exists only to get that core to a first release quickly.
28
+
Once the core has merged as `v1.0.0`, ordinary [SemVer](../reference/versioning.md) applies: a new function built on the stable core is a **minor** bump, a fix is a **patch** bump, and only a change to the core's own contract (signature, exported class shape, behavior) is a **major** bump. No special versioning exception is needed once the core is in place — the bootstrap phase exists only to get that core to a first release quickly.
Copy file name to clipboardExpand all lines: docs/content/guides/validating-before-review.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,8 +17,8 @@ Do not repeat the shared workflow here. Follow the shared branch → draft PR
17
17
18
18
Check:
19
19
20
-
- the module still follows the right archetype from [Module types](../Modules/Module-Types.md)
21
-
- the change respects the layout, private-helper boundaries, context rules, and SOLID guidance in [PowerShell module standard](../Modules/Standards.md)
20
+
- the module still follows the right archetype from [Module types](../reference/module-types.md)
21
+
- the change respects the layout, private-helper boundaries, context rules, and SOLID guidance in [PowerShell module standard](../reference/powershell-module-standard.md)
22
22
- the function belongs in this module instead of a different module, a shared helper, or a follow-up issue
23
23
24
24
A human contributor or agent should be able to explain why this change belongs in this module, in this shape, without inventing new local rules.
@@ -29,8 +29,8 @@ Do not repeat the shared workflow here. Follow the shared branch → draft PR
29
29
30
30
Check:
31
31
32
-
-`README.md` still answers the start-page questions and reflects any user-visible behavior, prerequisites, or setup changes from [Repository Standard](../Modules/Repository-Standard.md#readme-default)
33
-
- the relevant public command-group overview page (`src/functions/public/<Group>/<Group>.md`) exists or is updated when the change affects that group's purpose or usage, per [PowerShell module standard](../Modules/Standards.md#repository-layout)
32
+
-`README.md` still answers the start-page questions and reflects any user-visible behavior, prerequisites, or setup changes from [Repository Standard](../reference/repository-standard.md#readme-default)
33
+
- the relevant public command-group overview page (`src/functions/public/<Group>/<Group>.md`) exists or is updated when the change affects that group's purpose or usage, per [PowerShell module standard](../reference/powershell-module-standard.md#repository-layout)
34
34
- any module-level documentation under `docs/` or other published surfaces is updated when the change adds or changes guidance that should not live only in comment-based help
35
35
36
36
If the change teaches the user something new, confirm that the user can discover it from the published documentation surfaces, not only from the diff.
@@ -42,7 +42,7 @@ Do not repeat the shared workflow here. Follow the shared branch → draft PR
42
42
Check:
43
43
44
44
- public functions live under `src/functions/public/<Group>/` and private helpers live under `src/functions/private/<Group>/`
45
-
- file placement, grouping, and exported surface match [Structuring your module](structuring-your-module.md) and the layout rules in [PowerShell module standard](../Modules/Standards.md#repository-layout)
45
+
- file placement, grouping, and exported surface match [Structuring your module](structuring-your-module.md) and the layout rules in [PowerShell module standard](../reference/powershell-module-standard.md#repository-layout)
46
46
- there are no nested helper functions, multi-function files, or naming shortcuts that break the "one declaration per file" rule
47
47
48
48
This step is about shape, not behavior: the goal is that a reader or tool can find the module surface and its helpers exactly where PSModule expects them.
@@ -66,7 +66,7 @@ Do not repeat the shared workflow here. Follow the shared branch → draft PR
66
66
Check:
67
67
68
68
- advanced-function structure, parameter typing and validation, `ShouldProcess`, output behavior, and error handling align with [MSX PowerShell](https://msx.no/docs/Coding-Standards/PowerShell/) and [MSX PowerShell Functions](https://msx.no/docs/Coding-Standards/PowerShell/Functions/)
69
-
- the code also satisfies the PSModule-specific conventions in [PowerShell module standard](../Modules/Standards.md), especially around private helpers, context handling, and repository layout
69
+
- the code also satisfies the PSModule-specific conventions in [PowerShell module standard](../reference/powershell-module-standard.md), especially around private helpers, context handling, and repository layout
70
70
- PSScriptAnalyzer warnings are addressed or intentionally justified, but review does not stop there; also look for awkward parameter design, leaky transport details, non-idiomatic output, or code that technically passes lint but is not good PowerShell
71
71
72
72
PSScriptAnalyzer is part of the validation loop, not the whole loop.
@@ -87,8 +87,8 @@ Do not repeat the shared workflow here. Follow the shared branch → draft PR
|[PowerShell module standard](Modules/Standards.md)| Source layout, function design, and module-specific implementation conventions. |
37
-
|[Module types](Modules/Module-Types.md)| Conventions for integration (API) and data modules. |
38
-
|[Test Specification](Modules/Test-Specification.md)| Consistent Pester test structure and coverage expectations. |
39
-
|[Versioning](Modules/Versioning.md)| Semantic version changes based on public API impact. |
40
-
41
28
## Guides
42
29
43
30
Task-oriented deep dives into the pipeline's functionality.
@@ -54,10 +41,16 @@ Task-oriented deep dives into the pipeline's functionality.
54
41
55
42
## Reference
56
43
57
-
Look up the exact contract.
44
+
Look up the framework's exact contracts and the module-development standards it supports.
58
45
59
46
| Page | Description |
60
47
| --- | --- |
48
+
|[Module development foundations](reference/module-development-foundations.md)| The full set of module-authoring conventions supported by the framework. |
Process-PSModule is the framework for building, testing, versioning, documenting, and publishing PowerShell modules. These foundations define the repository, source, test, and release conventions that the framework supports and validates.
4
+
5
+
Start with the [Process-PSModule overview](../index.md) to understand the workflow. Use these pages when creating or maintaining a module that runs through it.
6
+
7
+
| Page | Use it for |
8
+
| --- | --- |
9
+
|[Repository Standard](repository-standard.md)| Creating a module repository with the required metadata, files, and framework wiring. |
Copy file name to clipboardExpand all lines: docs/content/reference/module-types.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# Module types
2
2
3
3
Most PSModule modules fall into one of a few archetypes. The general rules in
4
-
[PowerShell module standard](Standards.md) and [MSX PowerShell Standards](https://msx.no/docs/Coding-Standards/PowerShell/) always apply; this
4
+
[PowerShell module standard](powershell-module-standard.md) and [MSX PowerShell Standards](https://msx.no/docs/Coding-Standards/PowerShell/) always apply; this
5
5
page adds the conventions that are specific to a module's type so that modules of the same kind feel
6
6
the same to use.
7
7
@@ -41,7 +41,7 @@ or hide this abstraction is a design choice:
41
41
42
42
-**Private transport** (common): Keep REST, GraphQL, and HTTP helpers private. Public functions
43
43
accept resolved inputs and typed objects. This follows the Dependency Inversion rule from
44
-
[Standards](Standards.md#solid-applied) applied to the network boundary.
44
+
[Standards](powershell-module-standard.md#solid-applied) applied to the network boundary.
45
45
-**Public transport**: Expose REST or GraphQL functions publicly for power users or module
46
46
composition.
47
47
-**Public Context**: Expose the `Context` module as public so users can configure and manage
@@ -102,5 +102,5 @@ The `Hashtable` module demonstrates the full set: `ConvertFrom-Hashtable`, `Conv
102
102
103
103
## Where this connects
104
104
105
-
-[PowerShell module standard](Standards.md): layout, private functions, and the mandatory context parameter.
106
-
-[Repository Standard](Repository-Standard.md): repository files, README shape, and agent onboarding.
105
+
-[PowerShell module standard](powershell-module-standard.md): layout, private functions, and the mandatory context parameter.
106
+
-[Repository Standard](repository-standard.md): repository files, README shape, and agent onboarding.
Copy file name to clipboardExpand all lines: docs/content/reference/repository-standard.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ This is the PSModule organization's Repository Standard. It applies to the PSMod
4
4
5
5
This standard operates at the same altitude as the [MSX Enterprise Repository Standard](https://msx.no/docs/Ways-of-Working/Repository-Standard/): MSX sets the enterprise-wide default, and this standard adds to and adjusts that default for PowerShell module repositories. Rules this standard does not change are inherited from the MSX default; where this standard adds or overrides a rule, it governs PowerShell module repositories.
6
6
7
-
The implementation standard still lives in [PowerShell module standard](Standards.md). Type-specific conventions for integration (API) and data modules live in [Module types](Module-Types.md). This page covers the repository standard for module repositories: files, metadata, README shape, release integration, placeholder handling, shared community files, and managed-file distribution.
7
+
The implementation standard still lives in [PowerShell module standard](powershell-module-standard.md). Type-specific conventions for integration (API) and data modules live in [Module types](module-types.md). This page covers the repository standard for module repositories: files, metadata, README shape, release integration, placeholder handling, shared community files, and managed-file distribution.
8
8
9
9
## Scope
10
10
@@ -106,7 +106,7 @@ Module repositories use the PSModule framework layout:
106
106
|`tests/`| Pester tests and test data. |
107
107
|`icon/`| Module icon assets. |
108
108
109
-
Detailed source layout rules live in [PowerShell module standard](Standards.md#repository-layout).
109
+
Detailed source layout rules live in [PowerShell module standard](powershell-module-standard.md#repository-layout).
110
110
111
111
### Caller workflow and reusable workflow
112
112
@@ -227,7 +227,7 @@ Dependabot PRs still go through normal review. Automated dependency updates are
227
227
228
228
Dependabot's valid `package-ecosystem` values are enumerated in its configuration parser ([`common/lib/dependabot/config/file.rb`](https://github.com/dependabot/dependabot-core/blob/main/common/lib/dependabot/config/file.rb)) and listed in the [Dependabot options reference](https://docs.github.com/en/code-security/reference/supply-chain-security/dependabot-options-reference#package-ecosystem). Configure only values from that list: `powershell` is not among them, and an unsupported value makes `.github/dependabot.yml` invalid, which puts the repository's whole Dependabot configuration at risk, including the `github-actions` entry that does work.
229
229
230
-
PowerShell module dependencies are therefore declared with `#Requires -Modules` in the function files that use them, as described in [PowerShell module standard](Standards.md), and the build collects them into the compiled manifest. Keeping those declarations current is a review responsibility.
230
+
PowerShell module dependencies are therefore declared with `#Requires -Modules` in the function files that use them, as described in [PowerShell module standard](powershell-module-standard.md), and the build collects them into the compiled manifest. Keeping those declarations current is a review responsibility.
231
231
232
232
A PowerShell ecosystem is proposed in [dependabot/dependabot-core#15501](https://github.com/dependabot/dependabot-core/issues/15501) and implemented in [dependabot/dependabot-core#15666](https://github.com/dependabot/dependabot-core/pull/15666), covering PowerShell's native declarations — `#Requires -Modules` in `.ps1` and `.psm1` files, and `RequiredModules` in a `.psd1` manifest — resolved against the PowerShell Gallery. Adopt it once it ships and `powershell` appears in the options reference, updating this section and the `dependabot.yml` that `Template-PSModule` distributes together.
233
233
@@ -379,7 +379,7 @@ Default expectations:
379
379
- Source changes under `src/` are module-impacting and should trigger the full module workflow.
380
380
- README and documentation changes should update the site without pretending to be module API changes.
381
381
382
-
See [Versioning](Versioning.md) for semantic version rules and [PowerShell module standard](Standards.md#cicd-pipeline) for the Process-PSModule pipeline.
382
+
See [Versioning](versioning.md) for semantic version rules and [PowerShell module standard](powershell-module-standard.md#cicd-pipeline) for the Process-PSModule pipeline.
0 commit comments