Changelog
The project has not published its first release. All entries are currently unreleased and will be consolidated into the first Version 1 release notes.
Unreleased
Added
- Declarative PSD1 specifications for module identity, commands, parameters, stable IDs, help, examples, validation, completion, and runtime mappings.
- Deterministic generation of module manifests, loaders, public commands, normalized JSON metadata, and Markdown command references.
- Docker mappings for arguments, environment variables, bind mounts, named volumes, ports, working directories, devices, GPUs, resource limits, secrets, and generic runtime options.
- Native
ValidateSet,ValidateRange,ValidatePattern, and static argument completion. -WhatIfpreview, verbose timing, runtime discovery, and focused Docker errors.- Safe
/PSModuleextraction and installation from container images. - Inspection for Dockerfiles, Compose, .NET, Node, README, PowerShell, GitHub Actions, NUKE, JSON Schema, and OpenAPI directory artifacts.
- Ordered internal plugin stages and typed execution diagnostics.
- Missing-specification initialization and command inference beneath
scripts. - Packaging and local execution of inferred scripts and exported module functions.
- Maintained script-only, build-agent, and real-container integration fixtures.
- PowerShell 7.4 Windows and Linux CI, static analysis, coverage enforcement, test reports, and container end-to-end validation.
- Genuine PowerShell NuGet package creation, local install verification, and release-driven GitHub Packages publishing.
- Docusaurus-compatible Version 1 user, author, reference, architecture, contributor, release, security, and troubleshooting documentation.
- MIT license, referenced from the README and the module manifest's
LicenseUri. - Markdown link, heading-anchor, and terminology gate enforced in CI by
build/Test-Documentation.ps1. - A published container image,
ghcr.io/the-running-dev/subzerodev.psgenerator, carrying PowerShell 7.4 and the module on the all-users module path withpwshas its entry point. Initialize-PSModuleDirectory, which scaffolds, generates, imports, and reports for a directory in one call. Previously a build script that only worked from inside a checkout; now a public command, and the natural first call when a directory is mounted into the container image.
Changed
- Restricted inferred PowerShell commands to the directory
scriptsdirectory. - Preserved complete script trees and relative dependency paths in generated modules.
- Kept
Build-PSModuleorchestration-only while routing behavior through ordered plugins. - Raised generator and generated manifests to PowerShell 7.4.
Fixed
- Inference no longer double-verbs a script that is already named
Verb-Noun.Test-Documentation.ps1producedInvoke-TestDocumentation; it now producesTest-Documentation, and a lowercase file name such aswrite-greeting.ps1producesWrite-Greeting. - Empty generated modules now import without requiring a
Publicdirectory. - Missing or null JSON Schema property collections are handled consistently.
- Switch parameters normalize to native PowerShell
switch. - Metadata validation now occurs before packaging providers run.
- Local NuGet directory verification constructs valid absolute file URIs on Windows and Linux.
Release-Note Process
Before publishing:
- move relevant unreleased entries into a versioned section;
- add the release date;
- identify breaking changes and migration steps;
- link the GitHub Release; and
- verify the version matches the module manifest.