Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/prompts/markdown.promt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Markdown Wrapper Enforcer

## Purpose
Force all output to be wrapped in a Markdown code block using the required format:

~~~markdown
<content>
149 changes: 149 additions & 0 deletions .github/prompts/pr-description.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
# NovaModuleTools PR Description Generator

## Purpose

Generate a complete, high-quality pull request description for NovaModuleTools based on a change summary, commits, or
diff.

The output MUST follow the NovaModuleTools PR template exactly and be concise, precise, and reviewer-focused.

---

## Inputs

- Change description, commit messages, or diff (required)
- Optional: issue number, workflow touched, commands affected

---

## Instructions

Analyze the provided input and:

1. Infer the intent of the change (bugfix, feature, refactor, CI, docs, etc.)
2. Identify impacted areas (CLI, PowerShell, CI/CD, packaging, docs, etc.)
3. Detect validation steps performed (or infer what should have been run)
4. Highlight reviewer entry points (key files, workflows, or commands)
5. Identify risks, breaking changes, or follow-ups

Be pragmatic: if information is missing, make reasonable assumptions but call them out briefly.

---

## Output format

You MUST return the PR description using this exact structure:

---

## Summary

- What changed?
- Why was this change needed?
- Link the issue, discussion, or follow-up work (for example `Closes #123`).

---

## Affected area

Select all relevant:

- [ ] `nova` CLI or command routing
- [ ] Public PowerShell cmdlet behavior
- [ ] Scaffolding or `project.json` handling
- [ ] Build, test, analyzer, coverage, or CI helper flow
- [ ] Package, raw upload, or package metadata workflow
- [ ] Publish, release, semantic-release, or GitHub Actions automation
- [ ] Self-update or notification preference behavior
- [ ] Contributor documentation (`README.md`, `CONTRIBUTING.md`, repository workflow docs)
- [ ] End-user docs (`docs/*.html`)
- [ ] Command help (`docs/NovaModuleTools/en-US/*.md`)
- [ ] `src/resources/example/`
- [ ] Dependency or manifest changes (`package.json`, workflow dependencies, release tooling)
- [ ] Security-sensitive change
- [ ] Documentation-only change
- [ ] Other

---

## Review guidance

- Highlight the main code path or workflow reviewers should start with.
- Call out the primary files or folders changed (for example `src/public/`, `src/private/cli/`, `scripts/build/ci/`,
`.github/workflows/`, `docs/`, or `src/resources/example/`).
- Call out any trade-offs, follow-up work, or known limitations.

---

## Validation

Mark relevant checks:

- [ ] `Invoke-NovaBuild`
- [ ] `Test-NovaBuild`
- [ ] `./scripts/build/Invoke-ScriptAnalyzerCI.ps1`
- [ ] `./scripts/build/ci/Invoke-NovaModuleToolsCI.ps1`
- [ ] Targeted Nova workflow validated (`% nova build`, `% nova test`, `% nova merge`, `% nova deploy`,
`% nova publish`,
`% nova release`, `% nova update`, `% nova notification`, or `% nova init` as relevant)
- [ ] Docs/example only; executable validation not needed

Validation notes:

```
<Fill with commands, outputs, or justification>
```

---

## Documentation and release follow-up

- [ ] `README.md` reviewed and updated if needed
- [ ] `CONTRIBUTING.md` reviewed and updated if needed
- [ ] `CHANGELOG.md` reviewed and updated if relevant
- [ ] Command help updated if CLI or cmdlets changed
- [ ] End-user docs updated if workflows changed
- [ ] Examples updated if real usage changed
- [ ] No documentation updates needed

---

## Maintainability, compatibility, and risk

- [ ] Code Health / maintainability impact considered
- [ ] No breaking change
- [ ] Breaking change
- [ ] Security-sensitive change
- [ ] CI, workflow, or release-pipeline impact
- [ ] Dependency-review impact

Risk, rollout, or rollback notes:

```
<Describe impact, migration, rollback, or follow-up>
```

---

## Style rules

- Be concise and technical (no fluff)
- Prefer bullet points over paragraphs
- Be explicit about workflows (especially CI/CD and release flow)
- Always think like a reviewer: "Where do I start reading?"
- Never leave sections empty — infer or justify

---

## Example invocation

Generate PR description from:

- Commit: "fix: resolve ambiguous -w CLI parameter parsing"
- Files changed: `src/private/cli/Invoke-NovaCli.ps1`

---

## Expected behavior

The output should be ready to paste directly into a GitHub PR without edits.
107 changes: 32 additions & 75 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,33 @@
# Changelog

All notable changes to this project will be documented in this file and **PreReleased/UNRELEASED** changes will be
included in the
next **stable** release!
All notable changes to this project will be documented in this file and **PREVIEW / UNRELEASED** changes will be
included in the next **stable** release!

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).

## [Unreleased]

### Added

### Fixed

### Changed

### Documentation
- Keep stable `Update-NovaModuleVersion` / `% nova bump` releases on the SemVer major-zero development line.
- When the current stable version is `0.y.z` and commit history implies a breaking change, Nova now plans the next
minor version instead of auto-jumping to `1.0.0`.
- Stable `0.y.z` bump results now print one warning about manually setting `1.0.0` once the software is stable,
while breaking-change bumps still report the detected `Major` label.
- `-Preview` behavior is unchanged.

### Deprecated

### Removed

## [2.1.0] - 2026-04-29
### Fixed

### Added
### Security

## [2.1.0] - 2026-04-29
### Added
- Add `Install-NovaCli` and a packaged `nova` launcher so macOS and Linux users can install and run `nova` directly
from zsh or bash.
- `nova` now remains the launcher-facing CLI surface, while `Invoke-NovaCli` stays the explicit PowerShell cmdlet
Expand Down Expand Up @@ -108,22 +113,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `nova bump --what-if` and `% run.ps1` now surface a predictable summary for previous version, new version, label,
and commit count.

### Fixed

- Fix unsupported `nova` help invocations so they now return Nova's structured CLI validation error instead of a
PowerShell parameter-binding failure.
- Keep manifest/package helper edge cases aligned with their intended behavior.
- Manifest settings resolution now accepts ordered dictionary metadata shapes in addition to plain hashtables.
- `New-NovaPackageArtifacts` now accepts an empty metadata list and returns an empty artifact result instead of
failing during parameter binding.
- Fix configuration and validation errors so empty `project.json` files and unsupported `Manifest` keys fail fast with
clear messages.
- Fix semantic-release PSGallery publishing on fresh CI runners by bootstrapping the PSResourceGet repository store
before
`Publish-PSResource` runs.

### Changed

- Change the project to a Nova command model, replacing the previous mixed MT/Nova workflow.
- All public commands are now Nova commands, and the `nova` CLI / `Invoke-NovaCli` command surface is the primary
entry point for all operations.
Expand All @@ -143,35 +133,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Change `Publish-NovaModule -Local` and `% nova publish --local` so a successful local publish also reloads the
published module from the local install path into the active PowerShell session.

### Documentation

- Split documentation into contributor-focused repository docs and task-oriented GitHub Pages user guides.
- Expand the public site into a fuller developer end-user manual with rewritten getting started, core workflows, working
with modules, troubleshooting, concepts, release notes, and license pages plus new reference-style pages for
commands, `project.json`, packaging/delivery, and versioning/update behavior.
- The guides now let readers switch between PowerShell and command-line examples, including the local-publish-plus-
`pwsh` handoff for `Get-ExampleGreeting` and fresh-process `pwsh`
- Clean the generated PowerShell cmdlet help so `Get-Help` pages no longer mix in `nova` launcher syntax or GNU-style
CLI options.
- Refresh public `Get-Help` content and examples for the Nova commands, including CLI usage and preview/confirmation
scenarios.
- Simplify `Invoke-NovaCli` help so it matches the launcher-vs-cmdlet split cleanly and PlatyPS can generate command
help without failing during local builds.
- Update the `nova` CLI documentation and help text to use POSIX/GNU-style long and short options while keeping
PowerShell cmdlet examples in their native PowerShell form.

### Removed

- **BREAKING CHANGE**: Remove the legacy `MT` commands and MT-branded command documentation in favor of the Nova command
model.
- All public commands are now Nova commands, and the `nova` CLI / `Invoke-NovaCli` command surface is the primary
entry point for all
operations.

## [1.9.0] - 2026-04-10
### Fixed

### Added
- Fix unsupported `nova` help invocations so they now return Nova's structured CLI validation error instead of a
PowerShell parameter-binding failure.
- Keep manifest/package helper edge cases aligned with their intended behavior.
- Manifest settings resolution now accepts ordered dictionary metadata shapes in addition to plain hashtables.
- `New-NovaPackageArtifacts` now accepts an empty metadata list and returns an empty artifact result instead of
failing during parameter binding.
- Fix configuration and validation errors so empty `project.json` files and unsupported `Manifest` keys fail fast with
clear messages.
- Fix semantic-release PSGallery publishing on fresh CI runners by bootstrapping the PSResourceGet repository store
before
`Publish-PSResource` runs.

## [1.9.0] - 2026-04-10
### Added
- Nova command model and CLI entrypoint:
- New root command: `nova`
- New public commands: `Get-NovaProjectInfo`, `Invoke-NovaBuild`, `Invoke-NovaCli`, `Invoke-NovaRelease`,
Expand All @@ -182,21 +166,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- New GitHub workflow: PowerShell code quality (`.github/workflows/powershell.yml`).

### Changed

- Updated test workflow triggers in `.github/workflows/Tests.yml` to improve branch/PR coverage.
- Updated README module naming references to `NovaModuleTools`.
- Source alignment updates to match installed `NovaModuleTools` v`1.8.0` behavior for compatibility.

### Fixed

- Resource lookup compatibility in `Get-ResourceFilePath` for source/dist execution contexts.
### Deprecated

### Documentation
- `MT` commands and MT-branded command documentation in favor of the Nova command model.

- Added documentation and release notes context for the Nova command model and workflow/security updates.
### Fixed
- Resource lookup compatibility in `Get-ResourceFilePath` for source/dist execution contexts.

## [1.8.0] - 2026-04-08

### Added
- Project settings:
- `BuildRecursiveFolders` (default `true`): recursive discovery for `src/classes`, `src/private` and `tests`.
Expand All @@ -210,15 +191,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Build determinism: files are processed in a deterministic order by relative path (case-insensitive), and load order is always `classes → public → private`.

### Documentation
- README: document enterprise defaults, deterministic load order, and duplicate-function validation.

## [1.3.0] - 2025-09-23

- Added support for `ps1xml1` format data. Place it in resources folder with `Name.format.ps1xml` to be automatically added as format file and imported in module manifest

## [1.2.0] - 2025-09-17

### Added
- Added support for classes directory inside src
- Initialize-NovaModule generates classes directory during fresh project
Expand All @@ -228,74 +204,56 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Version upgrade using update-mtmoduleversion now support build tags. Improvements to semver versioning.

## [1.1.3] - 2025-09-14

### Added

- Now supports preview tag in Update-NovaModuleVersion
- Now supports semver naming in both project.json and modulemanifest
- Module build supports `preview` or `prerelease` tag
- Preview version looks like `1.2.3-preview`

## [1.1.0] - 2025-08-28

## Added

- Now Module manifest includes `AliasesToExport`. This helps loading aliases without explicitly importing modules to
session.
- thanks to @djs-zmtc for suggesting the feature

## [1.0.0] - 2025-03-11

### Added

- New optional project setting `CopyResourcesToModuleRoot`. Setting to true places resource files in the root directory
of module. Default is `false` to provide backward compatibility. Thanks to @[BrooksV](https://github.com/BrooksV)

### Fixed

- **BREAKING CHANGE**: Typo corrected: ProjecUri to ProjectUri. Existing projects require manual update.

## [0.0.9] - 2024-07-17

### Fixed

- Fixed #7, Invoke build should not through for empty tags

## [0.0.7] - 2024-07-17

### Added

- Now "Manifest" section of project JSON supports all Manifest parameters, use exact name of parameter (from New-ModuleManifest) as key in JSON

## Fixed

- Fixed the example project README so it no longer suggests that `example/` includes a `run.ps1` helper script; it now
points users to building `NovaModuleTools` from the repository root or using the Gallery workflow.
- Corrected typo in ProjectUri from `ProjecUri` to correct spelling.

## [0.0.6] - 2024-07-08

### Added

- `Test-NovaBuild` now supports including and excluding tags

### Fixed

- Code cleanup

## [0.0.5] - 2024-07-05

### Added

- More verbose info during MTModule creation

### Fixed

- Issue #2 : Git initialization implemented
- Issue #1 : Doesn't create empty `tests` folder when user chooses `no` to tests

## [0.0.4] - 2024-06-25

### Added
- First release to `psgallery`
- All basic functionality of Module is ready
Expand Down Expand Up @@ -339,4 +297,3 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
[0.0.6]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.5...Version_0.0.6
[0.0.5]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.4...Version_0.0.5
[0.0.4]: https://github.com/stiwicourage/NovaModuleTools/compare/Version_0.0.3...Version_0.0.4

Loading
Loading