From 6090b7e6432267a40fbf103e1ec193d73644e951 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Wed, 8 Oct 2025 22:47:25 +0200 Subject: [PATCH 1/9] =?UTF-8?q?=F0=9F=93=96Docs:=20Update=20`README.md`=20?= =?UTF-8?q?with=20new=20use=20cases=20(#227)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description This pull request updates the workflow configuration in the `README.md` to enhance automation and permissions, and to use the latest workflow version. The most important changes are: **Workflow triggers and scheduling:** * Added `workflow_dispatch` and a nightly scheduled run (`cron: '0 0 * * *'`) to allow manual and automated executions of the workflow. **Permissions:** * Expanded required permissions to include `statuses`, `pages`, and `id-token` in addition to `contents` and `pull-requests`. **Workflow version:** * Updated the referenced workflow from version `v2` to `v5` for the `Process-PSModule` job. --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 899725ed..fa4d33d1 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,9 @@ To use the workflow, create a new file in the `.github/workflows` directory of t name: Process-PSModule on: + workflow_dispatch: + schedule: + - cron: '0 0 * * *' pull_request: branches: - main @@ -96,10 +99,13 @@ concurrency: permissions: contents: write pull-requests: write + statuses: write + pages: write + id-token: write jobs: Process-PSModule: - uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v2 + uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v5 secrets: APIKEY: ${{ secrets.APIKEY }} From c774534f775e59e37f0685c395d6d2417e42c9a1 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 12 Oct 2025 00:06:46 +0200 Subject: [PATCH 2/9] =?UTF-8?q?=F0=9F=9A=80[Feature]:=20Use=20local=20PSSc?= =?UTF-8?q?riptAnalyzer=20files=20(#228)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The workflow now uses [Invoke-ScriptAnalyzer@v4](https://github.com/PSModule/Invoke-ScriptAnalyzer), enabling automatic discovery of local PSScriptAnalyzer configuration files. This allows projects to maintain custom linting rules in their repository without requiring centralized settings management. The upgrade also streamlines workflow configuration by removing deprecated parameters and improving checkout efficiency. ## Updated to PSScriptAnalyzer v4 Upgraded the `PSModule/Invoke-ScriptAnalyzer` action from v3 to v4 in linting workflows (`Lint-SourceCode.yml` and `Test-Module.yml`). This version automatically discovers and uses local `.powershell-psscriptanalyzer.psd1` configuration files from the `.github/linters/` directory, providing better support for repository-specific linting rules. ## Removed Deprecated Settings Parameter The `Settings` parameter has been removed from both `Lint-SourceCode` and `Lint-Module` workflow steps. PSScriptAnalyzer now automatically discovers local configuration files, eliminating the need to explicitly specify settings profiles. ## Workflow Configuration Improvements - Added a `Checkout repository` step to the `Lint-Module` job to ensure the codebase (including local configuration files) is available before linting - Removed `fetch-depth: 0` from checkout steps to use shallow clones, reducing workflow execution time - Removed unused `Name` parameter from test workflow ## Custom Linting Configuration Support Added a `.powershell-psscriptanalyzer.psd1` configuration file in the test repository (`tests/srcWithManifestTestRepo/.github/linters/`) demonstrating how projects can define custom code style rules, including formatting preferences, line length limits, and rule exclusions. --- .github/workflows/Lint-SourceCode.yml | 4 +- .github/workflows/Test-Module.yml | 9 ++- .../workflows/Workflow-Test-WithManifest.yml | 1 - .../linters/.powershell-psscriptanalyzer.psd1 | 56 +++++++++++++++++++ 4 files changed, 63 insertions(+), 7 deletions(-) create mode 100644 tests/srcWithManifestTestRepo/.github/linters/.powershell-psscriptanalyzer.psd1 diff --git a/.github/workflows/Lint-SourceCode.yml b/.github/workflows/Lint-SourceCode.yml index 21ef6db1..627dfc08 100644 --- a/.github/workflows/Lint-SourceCode.yml +++ b/.github/workflows/Lint-SourceCode.yml @@ -53,17 +53,15 @@ jobs: uses: actions/checkout@v5 with: persist-credentials: false - fetch-depth: 0 - name: Lint-SourceCode - uses: PSModule/Invoke-ScriptAnalyzer@v3 + uses: PSModule/Invoke-ScriptAnalyzer@v4 with: Debug: ${{ inputs.Debug }} Prerelease: ${{ inputs.Prerelease }} Verbose: ${{ inputs.Verbose }} Version: ${{ inputs.Version }} Path: src - Settings: SourceCode WorkingDirectory: ${{ inputs.WorkingDirectory }} TestResult_Enabled: true TestResult_TestSuiteName: PSModuleLint-SourceCode-${{ runner.os }} diff --git a/.github/workflows/Test-Module.yml b/.github/workflows/Test-Module.yml index 01b9fa24..e6d757d7 100644 --- a/.github/workflows/Test-Module.yml +++ b/.github/workflows/Test-Module.yml @@ -84,7 +84,6 @@ jobs: uses: actions/checkout@v5 with: persist-credentials: false - fetch-depth: 0 - name: Download module artifact uses: actions/download-artifact@v5 @@ -107,6 +106,11 @@ jobs: name: Lint-Module (${{ inputs.RunsOn }}) runs-on: ${{ inputs.RunsOn }} steps: + - name: Checkout repository + uses: actions/checkout@v5 + with: + persist-credentials: false + - name: Download module artifact uses: actions/download-artifact@v5 with: @@ -114,7 +118,7 @@ jobs: path: ${{ inputs.WorkingDirectory }}/outputs/module - name: Lint-Module - uses: PSModule/Invoke-ScriptAnalyzer@v3 + uses: PSModule/Invoke-ScriptAnalyzer@v4 with: Path: outputs/module Debug: ${{ inputs.Debug }} @@ -122,6 +126,5 @@ jobs: Verbose: ${{ inputs.Verbose }} Version: ${{ inputs.Version }} WorkingDirectory: ${{ inputs.WorkingDirectory }} - Settings: Module TestResult_Enabled: true TestResult_TestSuiteName: PSModuleLint-Module-${{ runner.os }} diff --git a/.github/workflows/Workflow-Test-WithManifest.yml b/.github/workflows/Workflow-Test-WithManifest.yml index 8caaabc1..85409571 100644 --- a/.github/workflows/Workflow-Test-WithManifest.yml +++ b/.github/workflows/Workflow-Test-WithManifest.yml @@ -25,5 +25,4 @@ jobs: secrets: inherit with: WorkingDirectory: tests/srcWithManifestTestRepo - Name: PSModuleTest2 SettingsPath: .github/PSModule.yml diff --git a/tests/srcWithManifestTestRepo/.github/linters/.powershell-psscriptanalyzer.psd1 b/tests/srcWithManifestTestRepo/.github/linters/.powershell-psscriptanalyzer.psd1 new file mode 100644 index 00000000..09cc3d0c --- /dev/null +++ b/tests/srcWithManifestTestRepo/.github/linters/.powershell-psscriptanalyzer.psd1 @@ -0,0 +1,56 @@ +@{ + Rules = @{ + PSAlignAssignmentStatement = @{ + Enable = $true + CheckHashtable = $true + } + PSAvoidLongLines = @{ + Enable = $true + MaximumLineLength = 150 + } + PSAvoidSemicolonsAsLineTerminators = @{ + Enable = $true + } + PSPlaceCloseBrace = @{ + Enable = $true + NewLineAfter = $false + IgnoreOneLineBlock = $true + NoEmptyLineBefore = $false + } + PSPlaceOpenBrace = @{ + Enable = $true + OnSameLine = $true + NewLineAfter = $true + IgnoreOneLineBlock = $true + } + PSProvideCommentHelp = @{ + Enable = $true + ExportedOnly = $false + BlockComment = $true + VSCodeSnippetCorrection = $false + Placement = 'begin' + } + PSUseConsistentIndentation = @{ + Enable = $true + IndentationSize = 4 + PipelineIndentation = 'IncreaseIndentationForFirstPipeline' + Kind = 'space' + } + PSUseConsistentWhitespace = @{ + Enable = $true + CheckInnerBrace = $true + CheckOpenBrace = $true + CheckOpenParen = $true + CheckOperator = $true + CheckPipe = $true + CheckPipeForRedundantWhitespace = $true + CheckSeparator = $true + CheckParameter = $true + IgnoreAssignmentOperatorInsideHashTable = $true + } + } + ExcludeRules = @( + 'PSMissingModuleManifestField', # This rule is not applicable until the module is built. + 'PSUseToExportFieldsInManifest' + ) +} From eaf0f3086f35179eb9985c876748ad9dfa3a6fc7 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 12 Oct 2025 14:28:37 +0200 Subject: [PATCH 3/9] =?UTF-8?q?=F0=9F=A9=B9=20[Patch]:=20Encode=20all=20Po?= =?UTF-8?q?werShell=20files=20using=20UTF8=20with=20BOM=20(#231)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description This pull request updates several PowerShell script files across the project. The main change is the addition of a Unicode Byte Order Mark (BOM) at the beginning of each file, which can help ensure proper encoding and compatibility, especially on Windows systems. No functional code changes have been made. --- .specify/scripts/powershell/check-prerequisites.ps1 | 2 +- .specify/scripts/powershell/common.ps1 | 2 +- .specify/scripts/powershell/create-new-feature.ps1 | 2 +- .specify/scripts/powershell/setup-plan.ps1 | 2 +- .specify/scripts/powershell/update-agent-context.ps1 | 2 +- tests/srcTestRepo/src/variables/public/Planets.ps1 | 2 +- tests/srcTestRepo/tests/AfterAll.ps1 | 2 +- tests/srcTestRepo/tests/BeforeAll.ps1 | 2 +- tests/srcWithManifestTestRepo/src/variables/public/Planets.ps1 | 2 +- tests/srcWithManifestTestRepo/tests/AfterAll.ps1 | 2 +- tests/srcWithManifestTestRepo/tests/BeforeAll.ps1 | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.specify/scripts/powershell/check-prerequisites.ps1 b/.specify/scripts/powershell/check-prerequisites.ps1 index 44a0e16a..9ac7a434 100644 --- a/.specify/scripts/powershell/check-prerequisites.ps1 +++ b/.specify/scripts/powershell/check-prerequisites.ps1 @@ -1,4 +1,4 @@ -#!/usr/bin/env pwsh +#!/usr/bin/env pwsh # Consolidated prerequisite checking script (PowerShell) # diff --git a/.specify/scripts/powershell/common.ps1 b/.specify/scripts/powershell/common.ps1 index ca4cdbed..029bd9a7 100644 --- a/.specify/scripts/powershell/common.ps1 +++ b/.specify/scripts/powershell/common.ps1 @@ -1,4 +1,4 @@ -#!/usr/bin/env pwsh +#!/usr/bin/env pwsh # Common PowerShell functions analogous to common.sh function Get-RepoRoot { diff --git a/.specify/scripts/powershell/create-new-feature.ps1 b/.specify/scripts/powershell/create-new-feature.ps1 index 7ab08058..c05032e3 100644 --- a/.specify/scripts/powershell/create-new-feature.ps1 +++ b/.specify/scripts/powershell/create-new-feature.ps1 @@ -1,4 +1,4 @@ -#!/usr/bin/env pwsh +#!/usr/bin/env pwsh # Create a new feature [CmdletBinding()] param( diff --git a/.specify/scripts/powershell/setup-plan.ps1 b/.specify/scripts/powershell/setup-plan.ps1 index c1020b67..5f2859b1 100644 --- a/.specify/scripts/powershell/setup-plan.ps1 +++ b/.specify/scripts/powershell/setup-plan.ps1 @@ -1,4 +1,4 @@ -#!/usr/bin/env pwsh +#!/usr/bin/env pwsh # Setup implementation plan for a feature [CmdletBinding()] diff --git a/.specify/scripts/powershell/update-agent-context.ps1 b/.specify/scripts/powershell/update-agent-context.ps1 index d1d2a5c8..73a662c4 100644 --- a/.specify/scripts/powershell/update-agent-context.ps1 +++ b/.specify/scripts/powershell/update-agent-context.ps1 @@ -1,4 +1,4 @@ -#!/usr/bin/env pwsh +#!/usr/bin/env pwsh <#! .SYNOPSIS Update agent context files with information from plan.md (PowerShell version) diff --git a/tests/srcTestRepo/src/variables/public/Planets.ps1 b/tests/srcTestRepo/src/variables/public/Planets.ps1 index 736584b9..5927bc51 100644 --- a/tests/srcTestRepo/src/variables/public/Planets.ps1 +++ b/tests/srcTestRepo/src/variables/public/Planets.ps1 @@ -1,4 +1,4 @@ -$script:Planets = @( +$script:Planets = @( @{ Name = 'Mercury' Mass = 0.330 diff --git a/tests/srcTestRepo/tests/AfterAll.ps1 b/tests/srcTestRepo/tests/AfterAll.ps1 index 4329d916..8933adae 100644 --- a/tests/srcTestRepo/tests/AfterAll.ps1 +++ b/tests/srcTestRepo/tests/AfterAll.ps1 @@ -1,4 +1,4 @@ -Write-Warning "=== AFTERALL TEARDOWN SCRIPT EXECUTING ===" +Write-Warning "=== AFTERALL TEARDOWN SCRIPT EXECUTING ===" Write-Warning "Tearing down test environment..." # Example teardown tasks: diff --git a/tests/srcTestRepo/tests/BeforeAll.ps1 b/tests/srcTestRepo/tests/BeforeAll.ps1 index 2001ccab..f487de58 100644 --- a/tests/srcTestRepo/tests/BeforeAll.ps1 +++ b/tests/srcTestRepo/tests/BeforeAll.ps1 @@ -1,4 +1,4 @@ -Write-Warning "=== BEFOREALL SETUP SCRIPT EXECUTING ===" +Write-Warning "=== BEFOREALL SETUP SCRIPT EXECUTING ===" Write-Warning "Setting up test environment..." # Example setup tasks: diff --git a/tests/srcWithManifestTestRepo/src/variables/public/Planets.ps1 b/tests/srcWithManifestTestRepo/src/variables/public/Planets.ps1 index 736584b9..5927bc51 100644 --- a/tests/srcWithManifestTestRepo/src/variables/public/Planets.ps1 +++ b/tests/srcWithManifestTestRepo/src/variables/public/Planets.ps1 @@ -1,4 +1,4 @@ -$script:Planets = @( +$script:Planets = @( @{ Name = 'Mercury' Mass = 0.330 diff --git a/tests/srcWithManifestTestRepo/tests/AfterAll.ps1 b/tests/srcWithManifestTestRepo/tests/AfterAll.ps1 index 3d81902f..f6728d6f 100644 --- a/tests/srcWithManifestTestRepo/tests/AfterAll.ps1 +++ b/tests/srcWithManifestTestRepo/tests/AfterAll.ps1 @@ -1,4 +1,4 @@ -Write-Warning "=== AFTERALL TEARDOWN SCRIPT (Environments) EXECUTING ===" +Write-Warning "=== AFTERALL TEARDOWN SCRIPT (Environments) EXECUTING ===" Write-Warning "Tearing down test environment for Environments..." # Example teardown tasks for Environments directory: diff --git a/tests/srcWithManifestTestRepo/tests/BeforeAll.ps1 b/tests/srcWithManifestTestRepo/tests/BeforeAll.ps1 index f0362f39..0b6bbcdc 100644 --- a/tests/srcWithManifestTestRepo/tests/BeforeAll.ps1 +++ b/tests/srcWithManifestTestRepo/tests/BeforeAll.ps1 @@ -1,4 +1,4 @@ -Write-Warning "=== BEFOREALL SETUP SCRIPT EXECUTING ===" +Write-Warning "=== BEFOREALL SETUP SCRIPT EXECUTING ===" Write-Warning "Setting up test environment..." # Example setup tasks for test environment: From 391173753b4499f3916e657ba79f3720a44b12ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Oct 2025 00:11:08 +0100 Subject: [PATCH 4/9] Bump super-linter/super-linter from 8.2.0 to 8.2.1 (#234) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter) from 8.2.0 to 8.2.1.
Release notes

Sourced from super-linter/super-linter's releases.

v8.2.1

8.2.1 (2025-10-15)

🐛 Bugfixes

⬆️ Dependency updates

  • docker: bump the docker group with 2 updates (#7100) (28c5681)
  • npm: bump eslint from 9.36.0 to 9.37.0 in /dependencies (#7102) (cf6cb1e)
  • npm: bump renovate from 41.132.2 to 41.136.0 in /dependencies (#7107) (495692f)
  • npm: bump the eslint-plugins-configs group across 1 directory with 2 updates (#7101) (b3a735d)
  • npm: bump the npm group across 1 directory with 4 updates (#7108) (ce227b3)
  • npm: bump typescript (#7109) (deba11c)
  • python: bump the pip group across 1 directory with 7 updates (#7106) (7c02a56)

🧰 Maintenance

Changelog

Sourced from super-linter/super-linter's changelog.

Changelog

8.2.1 (2025-10-15)

🐛 Bugfixes

⬆️ Dependency updates

  • docker: bump the docker group with 2 updates (#7100) (28c5681)
  • npm: bump eslint from 9.36.0 to 9.37.0 in /dependencies (#7102) (cf6cb1e)
  • npm: bump renovate from 41.132.2 to 41.136.0 in /dependencies (#7107) (495692f)
  • npm: bump the eslint-plugins-configs group across 1 directory with 2 updates (#7101) (b3a735d)
  • npm: bump the npm group across 1 directory with 4 updates (#7108) (ce227b3)
  • npm: bump typescript (#7109) (deba11c)
  • python: bump the pip group across 1 directory with 7 updates (#7106) (7c02a56)

🧰 Maintenance

8.2.0 (2025-09-30)

🚀 Features

🐛 Bugfixes

... (truncated)

Commits
  • 2bdd90e chore(main): release 8.2.1 (#7094)
  • 51e00dd chore: use powershell from dotnet sdk image (#7141)
  • 2e6ad3d chore: update rack to 3.2.3 (#7136)
  • 7508f4c fix: validate DEFAULT_BRANCH when using find (#7119)
  • cf6cb1e deps(npm): bump eslint from 9.36.0 to 9.37.0 in /dependencies (#7102)
  • 495692f deps(npm): bump renovate from 41.132.2 to 41.136.0 in /dependencies (#7107)
  • deba11c deps(npm): bump typescript (#7109)
  • 28c5681 deps(docker): bump the docker group with 2 updates (#7100)
  • b3a735d deps(npm): bump the eslint-plugins-configs group across 1 directory with 2 up...
  • ec80a77 ci(github-actions): bump peter-evans/create-issue-from-file (#7103)
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=super-linter/super-linter&package-manager=github_actions&previous-version=8.2.0&new-version=8.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/Build-Docs.yml | 2 +- .github/workflows/Linter.yml | 2 +- .github/workflows/workflow.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/Build-Docs.yml b/.github/workflows/Build-Docs.yml index a8d9ceb8..34883425 100644 --- a/.github/workflows/Build-Docs.yml +++ b/.github/workflows/Build-Docs.yml @@ -102,7 +102,7 @@ jobs: - name: Lint documentation id: super-linter - uses: super-linter/super-linter/slim@7bba2eeb89d01dc9bfd93c497477a57e72c83240 # v8.2.0 + uses: super-linter/super-linter/slim@2bdd90ed3262e023ac84bf8fe35dc480721fc1f2 # v8.2.1 env: RUN_LOCAL: true DEFAULT_BRANCH: main diff --git a/.github/workflows/Linter.yml b/.github/workflows/Linter.yml index 22d68469..18f55172 100644 --- a/.github/workflows/Linter.yml +++ b/.github/workflows/Linter.yml @@ -25,7 +25,7 @@ jobs: fetch-depth: 0 - name: Lint code base - uses: super-linter/super-linter@7bba2eeb89d01dc9bfd93c497477a57e72c83240 # v8.2.0 + uses: super-linter/super-linter@2bdd90ed3262e023ac84bf8fe35dc480721fc1f2 # v8.2.1 env: GITHUB_TOKEN: ${{ github.token }} VALIDATE_BIOME_FORMAT: false diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 85d441e8..b1463219 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -133,7 +133,7 @@ jobs: - name: Lint code base id: super-linter - uses: super-linter/super-linter@7bba2eeb89d01dc9bfd93c497477a57e72c83240 # v8.2.0 + uses: super-linter/super-linter@2bdd90ed3262e023ac84bf8fe35dc480721fc1f2 # v8.2.1 env: GITHUB_TOKEN: ${{ github.token }} DEFAULT_WORKSPACE: ${{ inputs.WorkingDirectory }} From 27e2a6d8ca30a22cb01ea044898e543db2780731 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Oct 2025 00:19:47 +0100 Subject: [PATCH 5/9] Bump actions/upload-artifact from 4 to 5 (#235) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
Release notes

Sourced from actions/upload-artifact's releases.

v5.0.0

What's Changed

BREAKING CHANGE: this update supports Node v24.x. This is not a breaking change per-se but we're treating it as such.

New Contributors

Full Changelog: https://github.com/actions/upload-artifact/compare/v4...v5.0.0

v4.6.2

What's Changed

New Contributors

Full Changelog: https://github.com/actions/upload-artifact/compare/v4...v4.6.2

v4.6.1

What's Changed

Full Changelog: https://github.com/actions/upload-artifact/compare/v4...v4.6.1

v4.6.0

What's Changed

Full Changelog: https://github.com/actions/upload-artifact/compare/v4...v4.6.0

v4.5.0

What's Changed

New Contributors

... (truncated)

Commits
  • 330a01c Merge pull request #734 from actions/danwkennedy/prepare-5.0.0
  • 03f2824 Update github.dep.yml
  • 905a1ec Prepare v5.0.0
  • 2d9f9cd Merge pull request #725 from patrikpolyak/patch-1
  • 9687587 Merge branch 'main' into patch-1
  • 2848b2c Merge pull request #727 from danwkennedy/patch-1
  • 9b51177 Spell out the first use of GHES
  • cd231ca Update GHES guidance to include reference to Node 20 version
  • de65e23 Merge pull request #712 from actions/nebuk89-patch-1
  • 8747d8c Update README.md
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/upload-artifact&package-manager=github_actions&previous-version=4&new-version=5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marius Storhaug --- .github/workflows/Build-Docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/Build-Docs.yml b/.github/workflows/Build-Docs.yml index 34883425..37c79179 100644 --- a/.github/workflows/Build-Docs.yml +++ b/.github/workflows/Build-Docs.yml @@ -66,7 +66,7 @@ jobs: WorkingDirectory: ${{ inputs.WorkingDirectory }} - name: Upload docs artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: docs path: ${{ inputs.WorkingDirectory }}/outputs/docs From 9a780ae75f03294c45ef8c3959271dd761ab3877 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Oct 2025 00:37:18 +0100 Subject: [PATCH 6/9] Bump actions/download-artifact from 5 to 6 (#236) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6.
Release notes

Sourced from actions/download-artifact's releases.

v6.0.0

What's Changed

BREAKING CHANGE: this update supports Node v24.x. This is not a breaking change per-se but we're treating it as such.

New Contributors

Full Changelog: https://github.com/actions/download-artifact/compare/v5...v6.0.0

Commits
  • 018cc2c Merge pull request #438 from actions/danwkennedy/prepare-6.0.0
  • 815651c Revert "Remove github.dep.yml"
  • bb3a066 Remove github.dep.yml
  • fa1ce46 Prepare v6.0.0
  • 4a24838 Merge pull request #431 from danwkennedy/patch-1
  • 5e3251c Readme: spell out the first use of GHES
  • abefc31 Merge pull request #424 from actions/yacaovsnc/update_readme
  • ac43a60 Update README with artifact extraction details
  • de96f46 Merge pull request #417 from actions/yacaovsnc/update_readme
  • 7993cb4 Remove migration guide for artifact download changes
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/download-artifact&package-manager=github_actions&previous-version=5&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marius Storhaug --- .github/workflows/Build-Docs.yml | 2 +- .github/workflows/Build-Site.yml | 2 +- .github/workflows/Test-Module.yml | 4 ++-- .github/workflows/Test-ModuleLocal.yml | 2 +- .github/workflows/workflow.yml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/Build-Docs.yml b/.github/workflows/Build-Docs.yml index 37c79179..a78222a0 100644 --- a/.github/workflows/Build-Docs.yml +++ b/.github/workflows/Build-Docs.yml @@ -54,7 +54,7 @@ jobs: fetch-depth: 0 - name: Download module artifact - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module diff --git a/.github/workflows/Build-Site.yml b/.github/workflows/Build-Site.yml index b13face7..b3425ffb 100644 --- a/.github/workflows/Build-Site.yml +++ b/.github/workflows/Build-Site.yml @@ -51,7 +51,7 @@ jobs: uses: PSModule/Install-PSModuleHelpers@v1 - name: Download docs artifact - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: name: docs path: ${{ inputs.WorkingDirectory }}/outputs/docs diff --git a/.github/workflows/Test-Module.yml b/.github/workflows/Test-Module.yml index e6d757d7..35c35bc9 100644 --- a/.github/workflows/Test-Module.yml +++ b/.github/workflows/Test-Module.yml @@ -86,7 +86,7 @@ jobs: persist-credentials: false - name: Download module artifact - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module @@ -112,7 +112,7 @@ jobs: persist-credentials: false - name: Download module artifact - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module diff --git a/.github/workflows/Test-ModuleLocal.yml b/.github/workflows/Test-ModuleLocal.yml index 68f4e3f2..98d4113c 100644 --- a/.github/workflows/Test-ModuleLocal.yml +++ b/.github/workflows/Test-ModuleLocal.yml @@ -98,7 +98,7 @@ jobs: fetch-depth: 0 - name: Download module artifact - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index b1463219..47338867 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -505,7 +505,7 @@ jobs: fetch-depth: 0 - name: Download module artifact - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module From ec604690b93a47f0c979218df3072ac1214c55bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Nov 2025 19:39:58 +0100 Subject: [PATCH 7/9] Bump actions/checkout from 5 to 6 (#237) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
Release notes

Sourced from actions/checkout's releases.

v6.0.0

What's Changed

Full Changelog: https://github.com/actions/checkout/compare/v5.0.0...v6.0.0

v6-beta

What's Changed

Updated persist-credentials to store the credentials under $RUNNER_TEMP instead of directly in the local git config.

This requires a minimum Actions Runner version of v2.329.0 to access the persisted credentials for Docker container action scenarios.

v5.0.1

What's Changed

Full Changelog: https://github.com/actions/checkout/compare/v5...v5.0.1

Changelog

Sourced from actions/checkout's changelog.

Changelog

V6.0.0

V5.0.1

V5.0.0

V4.3.1

V4.3.0

v4.2.2

v4.2.1

v4.2.0

v4.1.7

v4.1.6

v4.1.5

... (truncated)

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=5&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/Auto-Release.yml | 2 +- .github/workflows/Build-Docs.yml | 2 +- .github/workflows/Build-Module.yml | 2 +- .github/workflows/Build-Site.yml | 2 +- .github/workflows/Get-Settings.yml | 2 +- .github/workflows/Lint-SourceCode.yml | 2 +- .github/workflows/Linter.yml | 2 +- .github/workflows/Test-Module.yml | 4 ++-- .github/workflows/Test-ModuleLocal.yml | 2 +- .github/workflows/Test-SourceCode.yml | 2 +- .github/workflows/workflow.yml | 8 ++++---- 11 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/Auto-Release.yml b/.github/workflows/Auto-Release.yml index 50a5a410..976b40c7 100644 --- a/.github/workflows/Auto-Release.yml +++ b/.github/workflows/Auto-Release.yml @@ -26,7 +26,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Auto-Release uses: PSModule/Auto-Release@v1 diff --git a/.github/workflows/Build-Docs.yml b/.github/workflows/Build-Docs.yml index a78222a0..6cbdb9f1 100644 --- a/.github/workflows/Build-Docs.yml +++ b/.github/workflows/Build-Docs.yml @@ -48,7 +48,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 diff --git a/.github/workflows/Build-Module.yml b/.github/workflows/Build-Module.yml index 328c4d56..0e90bb5a 100644 --- a/.github/workflows/Build-Module.yml +++ b/.github/workflows/Build-Module.yml @@ -29,7 +29,7 @@ jobs: GH_TOKEN: ${{ github.token }} steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 diff --git a/.github/workflows/Build-Site.yml b/.github/workflows/Build-Site.yml index b3425ffb..b5cd3a4b 100644 --- a/.github/workflows/Build-Site.yml +++ b/.github/workflows/Build-Site.yml @@ -42,7 +42,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 diff --git a/.github/workflows/Get-Settings.yml b/.github/workflows/Get-Settings.yml index 62a6e5b5..79efa6f4 100644 --- a/.github/workflows/Get-Settings.yml +++ b/.github/workflows/Get-Settings.yml @@ -65,7 +65,7 @@ jobs: ModuleTestSuites: ${{ fromJson(steps.Get-Settings.outputs.result).ModuleTestSuites }} steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 diff --git a/.github/workflows/Lint-SourceCode.yml b/.github/workflows/Lint-SourceCode.yml index 627dfc08..21fc626f 100644 --- a/.github/workflows/Lint-SourceCode.yml +++ b/.github/workflows/Lint-SourceCode.yml @@ -50,7 +50,7 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false diff --git a/.github/workflows/Linter.yml b/.github/workflows/Linter.yml index 18f55172..5398688f 100644 --- a/.github/workflows/Linter.yml +++ b/.github/workflows/Linter.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 diff --git a/.github/workflows/Test-Module.yml b/.github/workflows/Test-Module.yml index 35c35bc9..01f26f7e 100644 --- a/.github/workflows/Test-Module.yml +++ b/.github/workflows/Test-Module.yml @@ -81,7 +81,7 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false @@ -107,7 +107,7 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout repository - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false diff --git a/.github/workflows/Test-ModuleLocal.yml b/.github/workflows/Test-ModuleLocal.yml index 98d4113c..a3399c78 100644 --- a/.github/workflows/Test-ModuleLocal.yml +++ b/.github/workflows/Test-ModuleLocal.yml @@ -92,7 +92,7 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 diff --git a/.github/workflows/Test-SourceCode.yml b/.github/workflows/Test-SourceCode.yml index 3d36e736..4402835b 100644 --- a/.github/workflows/Test-SourceCode.yml +++ b/.github/workflows/Test-SourceCode.yml @@ -50,7 +50,7 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 47338867..d5cd8cea 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -104,7 +104,7 @@ jobs: - Get-Settings steps: - name: Checkout repo - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 @@ -295,7 +295,7 @@ jobs: - Get-Settings steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 @@ -372,7 +372,7 @@ jobs: - Test-ModuleLocal steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 @@ -499,7 +499,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: persist-credentials: false fetch-depth: 0 From c7983ef980e842281c8818693c6f02252520ba2b Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Wed, 26 Nov 2025 21:06:36 +0100 Subject: [PATCH 8/9] Use commit SHA with version comments for all workflow action references (#239) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Standardize all GitHub Actions workflow references to use commit SHAs with version comments instead of mutable tags, ensuring deterministic builds and supply chain security. ### Changes - **GitHub Actions**: Updated `actions/checkout`, `actions/download-artifact`, `actions/upload-artifact`, `actions/upload-pages-artifact`, `actions/configure-pages`, `actions/deploy-pages` to SHA references - **PSModule Actions**: Updated all PSModule actions (`Auto-Release`, `Document-PSModule`, `GitHub-Script`, `Build-PSModule`, `Install-PSModuleHelpers`, `Get-PesterCodeCoverage`, `Get-PesterTestResults`, `Invoke-ScriptAnalyzer`, `Test-PSModule`, `Invoke-Pester`, `Publish-PSModule`) to SHA references - **13 workflow files updated** in `.github/workflows/` ### Format ```yaml # Before uses: actions/checkout@v6 # After uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 ``` Dependabot supports SHA references for automated update PRs.
Original prompt > > ---- > > *This section details on the original issue you should resolve* > > 🩹 [Patch]: Use commit SHA with specific version comments for all workflow action references > ### Describe the change > > Standardize all GitHub Actions workflow references in this repository so that every action uses a commit SHA, with a comment specifying the most specific version tag (e.g., `# v1.2.3`). > > Why: > - Ensures deterministic builds and protects against unexpected updates or supply chain attacks. > - Improves maintainability and readability by documenting the exact version in use. > > Examples: > **✅ Correct:** > ```yaml > - name: Checkout Code > uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v1.2.3 > with: > persist-credentials: false > ``` > **❌ Incorrect:** > ```yaml > - name: Checkout Code > uses: actions/checkout@v1 > ``` > Scope of change: > - Update all workflow files in `.github/workflows/*. yml` to reference actions by SHA with a version comment, instead of by tag. > - Use the most specific version tag in comments (e.g., `v1.2.3` instead of `v1`). > - Affected actions may include but are not limited to: `actions/checkout`, `actions/download-artifact`, `actions/upload-artifact`, `actions/configure-pages`, `actions/deploy-pages`, custom PSModule actions, etc. > - Ensure CI and linting checks do not break. > - Document changes in affected files. > > Security Note: > Dependabot is configured to notify and create PRs when upstream actions/workflows update. Dependabot supports SHA references, so using them does not reduce security or update capabilities. > > Acceptance: > - [ ] All workflows use commit SHA with a version comment specifying the most specific tag > - [ ] No workflows reference actions by tag (e.g., `@v1`) > - [ ] All CI/CD checks pass > - [ ] Documentation is updated as needed > > ## Comments on the Issue (you are @copilot in this section) > > > >
- Fixes PSModule/Process-PSModule#238 --- ✨ Let Copilot coding agent [set things up for you](https://github.com/PSModule/Process-PSModule/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot) — coding agent works faster and does higher quality work when set up for your repo. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: MariusStorhaug <17722253+MariusStorhaug@users.noreply.github.com> --- .github/workflows/Auto-Release.yml | 4 ++-- .github/workflows/Build-Docs.yml | 10 +++++----- .github/workflows/Build-Module.yml | 4 ++-- .github/workflows/Build-Site.yml | 10 +++++----- .github/workflows/Get-CodeCoverage.yml | 2 +- .github/workflows/Get-Settings.yml | 4 ++-- .github/workflows/Get-TestResults.yml | 2 +- .github/workflows/Lint-SourceCode.yml | 4 ++-- .github/workflows/Linter.yml | 2 +- .github/workflows/Test-Module.yml | 12 ++++++------ .github/workflows/Test-ModuleLocal.yml | 8 ++++---- .github/workflows/Test-SourceCode.yml | 4 ++-- .github/workflows/workflow.yml | 20 ++++++++++---------- 13 files changed, 43 insertions(+), 43 deletions(-) diff --git a/.github/workflows/Auto-Release.yml b/.github/workflows/Auto-Release.yml index 976b40c7..60a51ed9 100644 --- a/.github/workflows/Auto-Release.yml +++ b/.github/workflows/Auto-Release.yml @@ -26,9 +26,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Auto-Release - uses: PSModule/Auto-Release@v1 + uses: PSModule/Auto-Release@eabd533035e2cb9822160f26f2eda584bd012356 # v1.9.5 with: IncrementalPrerelease: false diff --git a/.github/workflows/Build-Docs.yml b/.github/workflows/Build-Docs.yml index 6cbdb9f1..74dedc53 100644 --- a/.github/workflows/Build-Docs.yml +++ b/.github/workflows/Build-Docs.yml @@ -48,25 +48,25 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 - name: Download module artifact - uses: actions/download-artifact@v6 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module - name: Document module - uses: PSModule/Document-PSModule@v1 + uses: PSModule/Document-PSModule@7e50d9f41753417346ff75b3601a90524aa8ab7e # v1.0.11 with: Name: ${{ inputs.Name }} WorkingDirectory: ${{ inputs.WorkingDirectory }} - name: Upload docs artifact - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 with: name: docs path: ${{ inputs.WorkingDirectory }}/outputs/docs @@ -74,7 +74,7 @@ jobs: retention-days: 1 - name: Commit all changes - uses: PSModule/GitHub-Script@v1 + uses: PSModule/GitHub-Script@00547bff5a143fbfc23a912a783fbfe9c470815c # v1.7.4 with: Debug: ${{ inputs.Debug }} Prerelease: ${{ inputs.Prerelease }} diff --git a/.github/workflows/Build-Module.yml b/.github/workflows/Build-Module.yml index 0e90bb5a..71049df6 100644 --- a/.github/workflows/Build-Module.yml +++ b/.github/workflows/Build-Module.yml @@ -29,13 +29,13 @@ jobs: GH_TOKEN: ${{ github.token }} steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 - name: Build module - uses: PSModule/Build-PSModule@v4 + uses: PSModule/Build-PSModule@fe8cc14a7192066cc46cb9514659772ebde05849 # v4.0.9 with: Name: ${{ inputs.Name }} ArtifactName: ${{ inputs.ArtifactName }} diff --git a/.github/workflows/Build-Site.yml b/.github/workflows/Build-Site.yml index b5cd3a4b..59794fb4 100644 --- a/.github/workflows/Build-Site.yml +++ b/.github/workflows/Build-Site.yml @@ -42,16 +42,16 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 - name: Install-PSModuleHelpers - uses: PSModule/Install-PSModuleHelpers@v1 + uses: PSModule/Install-PSModuleHelpers@e05e9875aafc0a1e63fc13989b3b683a7ef6444f # v1.0.5 - name: Download docs artifact - uses: actions/download-artifact@v6 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: docs path: ${{ inputs.WorkingDirectory }}/outputs/docs @@ -65,7 +65,7 @@ jobs: pip install mkdocs-git-committers-plugin-2 - name: Structure site - uses: PSModule/GitHub-Script@v1 + uses: PSModule/GitHub-Script@00547bff5a143fbfc23a912a783fbfe9c470815c # v1.7.4 with: Debug: ${{ inputs.Debug }} Prerelease: ${{ inputs.Prerelease }} @@ -173,7 +173,7 @@ jobs: mkdocs build --config-file mkdocs.yml --site-dir ../../_site } - - uses: actions/upload-pages-artifact@v4 + - uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4.0.0 with: name: github-pages path: ${{ inputs.WorkingDirectory }}/_site diff --git a/.github/workflows/Get-CodeCoverage.yml b/.github/workflows/Get-CodeCoverage.yml index e82496c6..26c7f2c6 100644 --- a/.github/workflows/Get-CodeCoverage.yml +++ b/.github/workflows/Get-CodeCoverage.yml @@ -48,7 +48,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Get-CodeCoverage - uses: PSModule/Get-PesterCodeCoverage@v1 + uses: PSModule/Get-PesterCodeCoverage@a7923eefbf55b452f9b1534c5b50ca9bd192f810 # v1.0.3 id: Get-CodeCoverage with: CodeCoveragePercentTarget: ${{ inputs.CodeCoveragePercentTarget }} diff --git a/.github/workflows/Get-Settings.yml b/.github/workflows/Get-Settings.yml index 79efa6f4..d4cf4e85 100644 --- a/.github/workflows/Get-Settings.yml +++ b/.github/workflows/Get-Settings.yml @@ -65,13 +65,13 @@ jobs: ModuleTestSuites: ${{ fromJson(steps.Get-Settings.outputs.result).ModuleTestSuites }} steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 - name: Get-Settings - uses: PSModule/GitHub-Script@v1 + uses: PSModule/GitHub-Script@00547bff5a143fbfc23a912a783fbfe9c470815c # v1.7.4 id: Get-Settings env: PSMODULE_GET_SETTINGS_INPUT_Name: ${{ inputs.Name }} diff --git a/.github/workflows/Get-TestResults.yml b/.github/workflows/Get-TestResults.yml index aa6148ad..52fc82b5 100644 --- a/.github/workflows/Get-TestResults.yml +++ b/.github/workflows/Get-TestResults.yml @@ -50,7 +50,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Get-TestResults - uses: PSModule/Get-PesterTestResults@v1 + uses: PSModule/Get-PesterTestResults@0c1d8cde9575b192831f76e87d3f7e825a7d8ff4 # v1.0.7 id: Get-TestResults with: SourceCodeTestSuites: ${{ inputs.SourceCodeTestSuites }} diff --git a/.github/workflows/Lint-SourceCode.yml b/.github/workflows/Lint-SourceCode.yml index 21fc626f..7753995b 100644 --- a/.github/workflows/Lint-SourceCode.yml +++ b/.github/workflows/Lint-SourceCode.yml @@ -50,12 +50,12 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false - name: Lint-SourceCode - uses: PSModule/Invoke-ScriptAnalyzer@v4 + uses: PSModule/Invoke-ScriptAnalyzer@0b13023a981f4c94136bba6193a9abd2d936cbc1 # v4.1.1 with: Debug: ${{ inputs.Debug }} Prerelease: ${{ inputs.Prerelease }} diff --git a/.github/workflows/Linter.yml b/.github/workflows/Linter.yml index 5398688f..70a57ce2 100644 --- a/.github/workflows/Linter.yml +++ b/.github/workflows/Linter.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 diff --git a/.github/workflows/Test-Module.yml b/.github/workflows/Test-Module.yml index 01f26f7e..912bdf3a 100644 --- a/.github/workflows/Test-Module.yml +++ b/.github/workflows/Test-Module.yml @@ -81,18 +81,18 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false - name: Download module artifact - uses: actions/download-artifact@v6 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module - name: Test-Module - uses: PSModule/Test-PSModule@v3 + uses: PSModule/Test-PSModule@80b0364db8192e73f584603c68a127de171f881f # v3.0.6 with: Name: ${{ inputs.Name }} Debug: ${{ inputs.Debug }} @@ -107,18 +107,18 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false - name: Download module artifact - uses: actions/download-artifact@v6 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module - name: Lint-Module - uses: PSModule/Invoke-ScriptAnalyzer@v4 + uses: PSModule/Invoke-ScriptAnalyzer@0b13023a981f4c94136bba6193a9abd2d936cbc1 # v4.1.1 with: Path: outputs/module Debug: ${{ inputs.Debug }} diff --git a/.github/workflows/Test-ModuleLocal.yml b/.github/workflows/Test-ModuleLocal.yml index a3399c78..3127e89e 100644 --- a/.github/workflows/Test-ModuleLocal.yml +++ b/.github/workflows/Test-ModuleLocal.yml @@ -92,19 +92,19 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 - name: Download module artifact - uses: actions/download-artifact@v6 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module - name: Install-PSModuleHelpers - uses: PSModule/Install-PSModuleHelpers@v1 + uses: PSModule/Install-PSModuleHelpers@e05e9875aafc0a1e63fc13989b3b683a7ef6444f # v1.0.5 - name: Import-Module id: import-module @@ -118,7 +118,7 @@ jobs: "path=$path" >> $env:GITHUB_OUTPUT - name: Test-ModuleLocal - uses: PSModule/Invoke-Pester@v4 + uses: PSModule/Invoke-Pester@882994cbe1ff07c3fc8afdac52404c940f99b331 # v4.2.2 with: Debug: ${{ inputs.Debug }} Prerelease: ${{ inputs.Prerelease }} diff --git a/.github/workflows/Test-SourceCode.yml b/.github/workflows/Test-SourceCode.yml index 4402835b..ba4756cf 100644 --- a/.github/workflows/Test-SourceCode.yml +++ b/.github/workflows/Test-SourceCode.yml @@ -50,13 +50,13 @@ jobs: runs-on: ${{ inputs.RunsOn }} steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 - name: Test-SourceCode - uses: PSModule/Test-PSModule@v3 + uses: PSModule/Test-PSModule@80b0364db8192e73f584603c68a127de171f881f # v3.0.6 with: Debug: ${{ inputs.Debug }} Prerelease: ${{ inputs.Prerelease }} diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index d5cd8cea..581d79e6 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -104,7 +104,7 @@ jobs: - Get-Settings steps: - name: Checkout repo - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 @@ -295,13 +295,13 @@ jobs: - Get-Settings steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 - name: Run BeforeAll Setup Scripts - uses: PSModule/GitHub-Script@v1 + uses: PSModule/GitHub-Script@00547bff5a143fbfc23a912a783fbfe9c470815c # v1.7.4 with: Name: BeforeAll-ModuleLocal ShowInfo: false @@ -372,14 +372,14 @@ jobs: - Test-ModuleLocal steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 - name: Run AfterAll Teardown Scripts if: always() - uses: PSModule/GitHub-Script@v1 + uses: PSModule/GitHub-Script@00547bff5a143fbfc23a912a783fbfe9c470815c # v1.7.4 with: Name: AfterAll-ModuleLocal ShowInfo: false @@ -473,11 +473,11 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - - uses: actions/configure-pages@v5 + - uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5.0.0 - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5 # Runs on: # - ✅ Open/Updated PR - Publishes prerelease when all tests/coverage/build succeed @@ -499,13 +499,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v6 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: persist-credentials: false fetch-depth: 0 - name: Download module artifact - uses: actions/download-artifact@v6 + uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 with: name: module path: ${{ inputs.WorkingDirectory }}/outputs/module @@ -516,7 +516,7 @@ jobs: Install-PSResource -Name Microsoft.PowerShell.PSResourceGet -Repository PSGallery -TrustRepository - name: Publish module - uses: PSModule/Publish-PSModule@v2 + uses: PSModule/Publish-PSModule@6c25d139fe51b890f75c057897bd58ac344b192a # v2.0.8 env: GH_TOKEN: ${{ github.token }} with: From 78c2264ff36901ce677f2f0c4d4cdf6ea362ba6d Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Tue, 2 Dec 2025 13:51:29 +0100 Subject: [PATCH 9/9] Update dependencies and doc cleanup (#245) This release updates workflow dependencies to their latest versions and standardizes table formatting across documentation files. **Workflow Dependency Updates:** * Updated actions in various workflows to their latest versions: * `super-linter/super-linter` from 8.2.1 to 8.3.0 * `PSModule/Document-PSModule` from 1.0.11 to 1.0.12 * `PSModule/Install-PSModuleHelpers` from 1.0.5 to 1.0.6 * `PSModule/Test-PSModule` from 3.0.6 to 3.0.7 **Documentation and Table Formatting Improvements:** * Standardized markdown table column alignment and spacing in multiple documentation files. * Added a style configuration for markdown tables (MD060) in `.github/linters/.markdown-lint.yml` to enforce leading column style and avoid emoji width issues. --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> --- .github/copilot-instructions.md | 6 +-- .github/linters/.markdown-lint.yml | 2 + .github/prompts/constitution.prompt.md | 6 +-- .github/prompts/plan.prompt.md | 16 +++---- .github/prompts/pr.prompt.md | 14 +++--- .github/workflows/Build-Docs.yml | 4 +- .github/workflows/Build-Site.yml | 2 +- .github/workflows/Linter.yml | 2 +- .github/workflows/Test-Module.yml | 2 +- .github/workflows/Test-ModuleLocal.yml | 2 +- .github/workflows/Test-SourceCode.yml | 2 +- .github/workflows/workflow.yml | 2 +- .specify/memory/constitution.md | 30 ++++++------- .specify/templates/plan-template.md | 30 ++++++------- .specify/templates/spec-template.md | 62 +++++++++++++------------- README.md | 38 ++++++++-------- 16 files changed, 112 insertions(+), 108 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 858eab7b..b9a9fc6d 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -12,7 +12,7 @@ When executing terminal commands (using `run_in_terminal` or similar tools): ## Other instructions -| Tech | Instruction file | -|------|------------------| +| Tech | Instruction file | +|------------|-------------------------------------------------------------| | PowerShell | [pwsh.instructions.md](./instructions/pwsh.instructions.md) | -| Markdown | [md.instructions.md](./instructions/md.instructions.md) | +| Markdown | [md.instructions.md](./instructions/md.instructions.md) | diff --git a/.github/linters/.markdown-lint.yml b/.github/linters/.markdown-lint.yml index b9ecdfa9..bb432af1 100644 --- a/.github/linters/.markdown-lint.yml +++ b/.github/linters/.markdown-lint.yml @@ -18,6 +18,8 @@ MD026: MD029: false # Ordered list item prefix MD033: false # Allow inline HTML MD036: false # Emphasis used instead of a heading +MD060: + style: "leading" # Table column style (leading avoids emoji width issues) ################# # Rules by tags # diff --git a/.github/prompts/constitution.prompt.md b/.github/prompts/constitution.prompt.md index 4a78dfe6..454a3a03 100644 --- a/.github/prompts/constitution.prompt.md +++ b/.github/prompts/constitution.prompt.md @@ -29,9 +29,9 @@ Two operating modes: Replacement Analysis Table (when overlap detected): -| Existing Item | Proposed New / Change | Overlap Basis | Suggested Action | -|---------------|-----------------------|---------------|------------------| -| | <incoming title / change> | e.g. semantic similarity, scope duplication | Replace / Merge / Keep Both | +| Existing Item | Proposed New / Change | Overlap Basis | Suggested Action | +|---------------------|---------------------------|----------------------------------------------|----------------------------| +| <title / section> | <incoming title / change> | e.g. semantic similarity, scope duplication | Replace / Merge / Keep Both | Heuristics for overlap: - Title similarity score (case-insensitive) >= 0.6 (rough string similarity) OR diff --git a/.github/prompts/plan.prompt.md b/.github/prompts/plan.prompt.md index 5fda97f5..26959b24 100644 --- a/.github/prompts/plan.prompt.md +++ b/.github/prompts/plan.prompt.md @@ -102,14 +102,14 @@ Given the implementation details provided as an argument, do this: - **Use the same title for the PR**: The PR title must match the issue title exactly - If unable to retrieve the issue title, determine the PR type and icon based on the changes: - | Type of change | Icon | Label | - |-|-|-| - | Docs | 📖 | Docs | - | Fix | 🪲 | Fix, Patch | - | Security fix | ⚠️ | Fix | - | Patch | 🩹 | Patch | - | Feature | 🚀 | Minor | - | Breaking change | 🌟 | Major | + | Type of change | Icon | Label | + | --------------- | ---- | ---------- | + | Docs | 📖 | Docs | + | Fix | 🪲 | Fix, Patch | + | Security fix | ⚠️ | Fix | + | Patch | 🩹 | Patch | + | Feature | 🚀 | Minor | + | Breaking change | 🌟 | Major | - Fallback PR title format (if issue title unavailable): `<Icon> [Type of change]: <Short description>` - Create PR description: diff --git a/.github/prompts/pr.prompt.md b/.github/prompts/pr.prompt.md index 8baabc88..75661c9a 100644 --- a/.github/prompts/pr.prompt.md +++ b/.github/prompts/pr.prompt.md @@ -14,13 +14,13 @@ $ARGUMENTS ## Supported Change Types -| Type | Icon | Labels | Description | -|------|------|--------|-------------| -| Major | 🌟 | `Major` | Breaking changes that affect compatibility | -| Minor | 🚀 | `Minor` | New features or enhancements | -| Patch | 🩹 | `Patch` | Small fixes or improvements | -| Fix | 🪲 | `Fix`, `Patch` | Bugfixes | -| Docs | 📖 | `Docs` | Documentation changes only | +| Type | Icon | Labels | Description | +| ----- | ---- | -------------- | ------------------------------------------ | +| Major | 🌟 | `Major` | Breaking changes that affect compatibility | +| Minor | 🚀 | `Minor` | New features or enhancements | +| Patch | 🩹 | `Patch` | Small fixes or improvements | +| Fix | 🪲 | `Fix`, `Patch` | Bugfixes | +| Docs | 📖 | `Docs` | Documentation changes only | ## Execution Steps diff --git a/.github/workflows/Build-Docs.yml b/.github/workflows/Build-Docs.yml index 74dedc53..08e28cd4 100644 --- a/.github/workflows/Build-Docs.yml +++ b/.github/workflows/Build-Docs.yml @@ -60,7 +60,7 @@ jobs: path: ${{ inputs.WorkingDirectory }}/outputs/module - name: Document module - uses: PSModule/Document-PSModule@7e50d9f41753417346ff75b3601a90524aa8ab7e # v1.0.11 + uses: PSModule/Document-PSModule@15dc407c99e408fc0a4023d4f16aee2a5507ba74 # v1.0.12 with: Name: ${{ inputs.Name }} WorkingDirectory: ${{ inputs.WorkingDirectory }} @@ -102,7 +102,7 @@ jobs: - name: Lint documentation id: super-linter - uses: super-linter/super-linter/slim@2bdd90ed3262e023ac84bf8fe35dc480721fc1f2 # v8.2.1 + uses: super-linter/super-linter/slim@502f4fe48a81a392756e173e39a861f8c8efe056 # v8.3.0 env: RUN_LOCAL: true DEFAULT_BRANCH: main diff --git a/.github/workflows/Build-Site.yml b/.github/workflows/Build-Site.yml index 59794fb4..53ec0e8a 100644 --- a/.github/workflows/Build-Site.yml +++ b/.github/workflows/Build-Site.yml @@ -48,7 +48,7 @@ jobs: fetch-depth: 0 - name: Install-PSModuleHelpers - uses: PSModule/Install-PSModuleHelpers@e05e9875aafc0a1e63fc13989b3b683a7ef6444f # v1.0.5 + uses: PSModule/Install-PSModuleHelpers@d60d63e4be477d1ca0c67c6085101fb109bce8f1 # v1.0.6 - name: Download docs artifact uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0 diff --git a/.github/workflows/Linter.yml b/.github/workflows/Linter.yml index 70a57ce2..8d3dbfb9 100644 --- a/.github/workflows/Linter.yml +++ b/.github/workflows/Linter.yml @@ -25,7 +25,7 @@ jobs: fetch-depth: 0 - name: Lint code base - uses: super-linter/super-linter@2bdd90ed3262e023ac84bf8fe35dc480721fc1f2 # v8.2.1 + uses: super-linter/super-linter@502f4fe48a81a392756e173e39a861f8c8efe056 # v8.3.0 env: GITHUB_TOKEN: ${{ github.token }} VALIDATE_BIOME_FORMAT: false diff --git a/.github/workflows/Test-Module.yml b/.github/workflows/Test-Module.yml index 912bdf3a..77644516 100644 --- a/.github/workflows/Test-Module.yml +++ b/.github/workflows/Test-Module.yml @@ -92,7 +92,7 @@ jobs: path: ${{ inputs.WorkingDirectory }}/outputs/module - name: Test-Module - uses: PSModule/Test-PSModule@80b0364db8192e73f584603c68a127de171f881f # v3.0.6 + uses: PSModule/Test-PSModule@7d94ed751a60973867e84ea8d44521e94b7c485d # v3.0.7 with: Name: ${{ inputs.Name }} Debug: ${{ inputs.Debug }} diff --git a/.github/workflows/Test-ModuleLocal.yml b/.github/workflows/Test-ModuleLocal.yml index 3127e89e..fa4dde48 100644 --- a/.github/workflows/Test-ModuleLocal.yml +++ b/.github/workflows/Test-ModuleLocal.yml @@ -104,7 +104,7 @@ jobs: path: ${{ inputs.WorkingDirectory }}/outputs/module - name: Install-PSModuleHelpers - uses: PSModule/Install-PSModuleHelpers@e05e9875aafc0a1e63fc13989b3b683a7ef6444f # v1.0.5 + uses: PSModule/Install-PSModuleHelpers@d60d63e4be477d1ca0c67c6085101fb109bce8f1 # v1.0.6 - name: Import-Module id: import-module diff --git a/.github/workflows/Test-SourceCode.yml b/.github/workflows/Test-SourceCode.yml index ba4756cf..b9001ad9 100644 --- a/.github/workflows/Test-SourceCode.yml +++ b/.github/workflows/Test-SourceCode.yml @@ -56,7 +56,7 @@ jobs: fetch-depth: 0 - name: Test-SourceCode - uses: PSModule/Test-PSModule@80b0364db8192e73f584603c68a127de171f881f # v3.0.6 + uses: PSModule/Test-PSModule@7d94ed751a60973867e84ea8d44521e94b7c485d # v3.0.7 with: Debug: ${{ inputs.Debug }} Prerelease: ${{ inputs.Prerelease }} diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 581d79e6..f5c0ece6 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -133,7 +133,7 @@ jobs: - name: Lint code base id: super-linter - uses: super-linter/super-linter@2bdd90ed3262e023ac84bf8fe35dc480721fc1f2 # v8.2.1 + uses: super-linter/super-linter@502f4fe48a81a392756e173e39a861f8c8efe056 # v8.3.0 env: GITHUB_TOKEN: ${{ github.token }} DEFAULT_WORKSPACE: ${{ inputs.WorkingDirectory }} diff --git a/.specify/memory/constitution.md b/.specify/memory/constitution.md index 4bc59ab8..5b52fc91 100644 --- a/.specify/memory/constitution.md +++ b/.specify/memory/constitution.md @@ -495,21 +495,21 @@ The Process-PSModule workflow uses **dynamic conditions** to determine job execu ### Publishing Behavior Examples -| PR State | Labels | Build/Test | Publish-Module | Publish-Site | Version | -|----------|--------|------------|----------------|--------------|---------| -| Opened | `minor` | ✅ Yes | ❌ No | ❌ No | N/A (not published) | -| Opened | `prerelease` | ✅ Yes | ✅ Yes (prerelease) | ❌ No | `1.3.0-branchname001` | -| Opened | `prerelease`, `minor` | ✅ Yes | ✅ Yes (prerelease) | ❌ No | `1.3.0-branchname001` | -| Synchronized | `major` | ✅ Yes | ❌ No | ❌ No | N/A (not published) | -| Synchronized | `prerelease` | ✅ Yes | ✅ Yes (prerelease) | ❌ No | `1.3.0-branchname002` | -| Merged | `minor` | ✅ Yes | ✅ Yes (normal) | ✅ Yes | `1.3.0` | -| Merged | `major` | ✅ Yes | ✅ Yes (normal) | ✅ Yes | `2.0.0` | -| Merged | `patch` | ✅ Yes | ✅ Yes (normal) | ✅ Yes | `1.2.4` | -| Merged | (no label) | ✅ Yes | ✅ Yes (if AutoPatching) | ✅ Yes | `1.2.4` (patch) | -| Merged | `NoRelease` | ✅ Yes | ❌ No | ❌ No | N/A (skipped) | -| Merged | `prerelease`, `minor` | ✅ Yes | ✅ Yes (normal) | ✅ Yes | `1.3.0` (prerelease ignored) | -| Scheduled (cron) | N/A | ✅ Yes | ❌ No | ❌ No | N/A (validation only) | -| Manual (workflow_dispatch) | N/A | ✅ Yes | ❌ No | ❌ No | N/A (validation only) | +| PR State | Labels | Build/Test | Publish-Module | Publish-Site | Version | +| -------------------------- | --------------------- | ---------- | ------------------------ | ------------ | ---------------------------- | +| Opened | `minor` | ✅ Yes | ❌ No | ❌ No | N/A (not published) | +| Opened | `prerelease` | ✅ Yes | ✅ Yes (prerelease) | ❌ No | `1.3.0-branchname001` | +| Opened | `prerelease`, `minor` | ✅ Yes | ✅ Yes (prerelease) | ❌ No | `1.3.0-branchname001` | +| Synchronized | `major` | ✅ Yes | ❌ No | ❌ No | N/A (not published) | +| Synchronized | `prerelease` | ✅ Yes | ✅ Yes (prerelease) | ❌ No | `1.3.0-branchname002` | +| Merged | `minor` | ✅ Yes | ✅ Yes (normal) | ✅ Yes | `1.3.0` | +| Merged | `major` | ✅ Yes | ✅ Yes (normal) | ✅ Yes | `2.0.0` | +| Merged | `patch` | ✅ Yes | ✅ Yes (normal) | ✅ Yes | `1.2.4` | +| Merged | (no label) | ✅ Yes | ✅ Yes (if AutoPatching) | ✅ Yes | `1.2.4` (patch) | +| Merged | `NoRelease` | ✅ Yes | ❌ No | ❌ No | N/A (skipped) | +| Merged | `prerelease`, `minor` | ✅ Yes | ✅ Yes (normal) | ✅ Yes | `1.3.0` (prerelease ignored) | +| Scheduled (cron) | N/A | ✅ Yes | ❌ No | ❌ No | N/A (validation only) | +| Manual (workflow_dispatch) | N/A | ✅ Yes | ❌ No | ❌ No | N/A (validation only) | ### Version Calculation Process diff --git a/.specify/templates/plan-template.md b/.specify/templates/plan-template.md index 53ee1010..c1a663b8 100644 --- a/.specify/templates/plan-template.md +++ b/.specify/templates/plan-template.md @@ -35,17 +35,17 @@ ## Technical Context -| Aspect | Details | -|--------|---------| -| **Language/Version** | [e.g., Python 3.11, Swift 5.9, Rust 1.75 or NEEDS CLARIFICATION] | -| **Primary Dependencies** | [e.g., FastAPI, UIKit, LLVM or NEEDS CLARIFICATION] | -| **Storage** | [if applicable, e.g., PostgreSQL, CoreData, files or N/A] | -| **Testing** | [e.g., pytest, XCTest, cargo test or NEEDS CLARIFICATION] | -| **Target Platform** | [e.g., Linux server, iOS 15+, Wasm or NEEDS CLARIFICATION] | -| **Project Type** | [single/web/mobile - determines source structure] | -| **Performance Goals** | [domain-specific, e.g., 1000 req/s, 10k lines/sec, 60 fps or NEEDS CLARIFICATION] | -| **Constraints** | [domain-specific, e.g., <200ms p95, <100MB memory, offline-capable or NEEDS CLARIFICATION] | -| **Scale/Scope** | [domain-specific, e.g., 10k users, 1M LOC, 50 screens or NEEDS CLARIFICATION] | +| Aspect | Details | +| ------------------------ | ------------------------------------------------------------------------------------------ | +| **Language/Version** | [e.g., Python 3.11, Swift 5.9, Rust 1.75 or NEEDS CLARIFICATION] | +| **Primary Dependencies** | [e.g., FastAPI, UIKit, LLVM or NEEDS CLARIFICATION] | +| **Storage** | [if applicable, e.g., PostgreSQL, CoreData, files or N/A] | +| **Testing** | [e.g., pytest, XCTest, cargo test or NEEDS CLARIFICATION] | +| **Target Platform** | [e.g., Linux server, iOS 15+, Wasm or NEEDS CLARIFICATION] | +| **Project Type** | [single/web/mobile - determines source structure] | +| **Performance Goals** | [domain-specific, e.g., 1000 req/s, 10k lines/sec, 60 fps or NEEDS CLARIFICATION] | +| **Constraints** | [domain-specific, e.g., <200ms p95, <100MB memory, offline-capable or NEEDS CLARIFICATION] | +| **Scale/Scope** | [domain-specific, e.g., 10k users, 1M LOC, 50 screens or NEEDS CLARIFICATION] | ## Constitution Check @@ -243,10 +243,10 @@ directories captured above] *Fill ONLY if Constitution Check has violations that must be justified* -| Violation | Why Needed | Simpler Alternative Rejected Because | -|-----------|------------|-------------------------------------| -| [e.g., 4th project] | [current need] | [why 3 projects insufficient] | -| [e.g., Repository pattern] | [specific problem] | [why direct DB access insufficient] | +| Violation | Why Needed | Simpler Alternative Rejected Because | +| -------------------------- | ------------------ | ------------------------------------ | +| [e.g., 4th project] | [current need] | [why 3 projects insufficient] | +| [e.g., Repository pattern] | [specific problem] | [why direct DB access insufficient] | ## Progress Tracking diff --git a/.specify/templates/spec-template.md b/.specify/templates/spec-template.md index 9e2de0cb..600e8d0b 100644 --- a/.specify/templates/spec-template.md +++ b/.specify/templates/spec-template.md @@ -20,53 +20,53 @@ ### Functional Requirements -| ID | Requirement | -|----|-------------| -| **FR-001** | System MUST [specific capability, e.g., "allow users to create accounts"] | -| **FR-002** | System MUST [specific capability, e.g., "validate email addresses"] | -| **FR-003** | Users MUST be able to [key interaction, e.g., "reset their password"] | -| **FR-004** | System MUST [data requirement, e.g., "persist user preferences"] | -| **FR-005** | System MUST [behavior, e.g., "log all security events"] | +| ID | Requirement | +| ---------- | ----------------------------------------------------------------------------------------------------------------- | +| **FR-001** | System MUST [specific capability, e.g., "allow users to create accounts"] | +| **FR-002** | System MUST [specific capability, e.g., "validate email addresses"] | +| **FR-003** | Users MUST be able to [key interaction, e.g., "reset their password"] | +| **FR-004** | System MUST [data requirement, e.g., "persist user preferences"] | +| **FR-005** | System MUST [behavior, e.g., "log all security events"] | | **FR-006** | System MUST authenticate users via [NEEDS CLARIFICATION: auth method not specified - email/password, SSO, OAuth?] | -| **FR-007** | System MUST retain user data for [NEEDS CLARIFICATION: retention period not specified] | +| **FR-007** | System MUST retain user data for [NEEDS CLARIFICATION: retention period not specified] | ### Non-Functional Requirements -| ID | Requirement | -|----|-------------| -| **NFR-001** | System MUST respond within [specific time, e.g., "500ms for 95th percentile"] | -| **NFR-002** | System MUST handle [specific load, e.g., "1000 concurrent users"] | -| **NFR-003** | System MUST maintain [availability target, e.g., "99.9% uptime"] | -| **NFR-004** | System MUST scale to [capacity limit, e.g., "10,000 transactions per second"] | -| **NFR-005** | System MUST recover within [time period, e.g., "5 minutes after failure"] | +| ID | Requirement | +| ----------- | ------------------------------------------------------------------------------------------------------------ | +| **NFR-001** | System MUST respond within [specific time, e.g., "500ms for 95th percentile"] | +| **NFR-002** | System MUST handle [specific load, e.g., "1000 concurrent users"] | +| **NFR-003** | System MUST maintain [availability target, e.g., "99.9% uptime"] | +| **NFR-004** | System MUST scale to [capacity limit, e.g., "10,000 transactions per second"] | +| **NFR-005** | System MUST recover within [time period, e.g., "5 minutes after failure"] | | **NFR-006** | System MUST encrypt data [NEEDS CLARIFICATION: encryption scope not specified - at rest, in transit, both?] | -| **NFR-007** | System MUST maintain audit logs for [NEEDS CLARIFICATION: retention period not specified] | +| **NFR-007** | System MUST maintain audit logs for [NEEDS CLARIFICATION: retention period not specified] | ### Quality Attributes Addressed -| Attribute | Target Metric | -|-----------|---------------| -| **Performance** | [e.g., "Response time < 200ms", "Throughput > 5000 TPS"] | -| **Scalability** | [e.g., "Support 100,000 concurrent users", "Linear scaling to 10 nodes"] | -| **Availability** | [e.g., "99.95% uptime", "Max 4 hours downtime per year"] | -| **Reliability** | [e.g., "MTBF > 720 hours", "Error rate < 0.01%"] | -| **Security** | [e.g., "OWASP Top 10 compliant", "SOC 2 Type II certified"] | -| **Maintainability** | [e.g., "Code coverage > 80%", "Cyclomatic complexity < 10"] | -| **Usability** | [e.g., "Task completion time < 2 minutes", "User satisfaction > 4.5/5"] | +| Attribute | Target Metric | +| ------------------- | ------------------------------------------------------------------------- | +| **Performance** | [e.g., "Response time < 200ms", "Throughput > 5000 TPS"] | +| **Scalability** | [e.g., "Support 100,000 concurrent users", "Linear scaling to 10 nodes"] | +| **Availability** | [e.g., "99.95% uptime", "Max 4 hours downtime per year"] | +| **Reliability** | [e.g., "MTBF > 720 hours", "Error rate < 0.01%"] | +| **Security** | [e.g., "OWASP Top 10 compliant", "SOC 2 Type II certified"] | +| **Maintainability** | [e.g., "Code coverage > 80%", "Cyclomatic complexity < 10"] | +| **Usability** | [e.g., "Task completion time < 2 minutes", "User satisfaction > 4.5/5"] | ### Constraints *(include if applicable)* -| Constraint | Description | -|------------|-------------| +| Constraint | Description | +| ------------------ | --------------------------------------------------------------------- | | **[Constraint 1]** | [Limitation or restriction, e.g., "Must run on Windows Server 2019+"] | -| **[Constraint 2]** | [Compliance requirement, e.g., "Must comply with GDPR"] | +| **[Constraint 2]** | [Compliance requirement, e.g., "Must comply with GDPR"] | ### Key Entities *(include if feature involves data)* -| Entity | Description | -|--------|-------------| +| Entity | Description | +| -------------- | ----------------------------------------------------------- | | **[Entity 1]** | [What it represents, key attributes without implementation] | -| **[Entity 2]** | [What it represents, relationships to other entities] | +| **[Entity 2]** | [What it represents, relationships to other entities] | --- diff --git a/README.md b/README.md index fa4d33d1..c3538716 100644 --- a/README.md +++ b/README.md @@ -200,23 +200,23 @@ For more info see [Deploy GitHub Pages site](https://github.com/marketplace/acti This table shows when each job runs based on the trigger scenario: -| Job | Open/Updated PR | Merged PR | Abandoned PR | Manual Run | -|-----|-----------------|-----------|--------------|------------| -| **Get-Settings** | ✅ Always | ✅ Always | ✅ Always | ✅ Always | -| **Lint-Repository** | ✅ Yes | ❌ No | ❌ No | ❌ No | -| **Build-Module** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **Build-Docs** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **Build-Site** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **Test-SourceCode** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **Lint-SourceCode** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **Test-Module** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **BeforeAll-ModuleLocal** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **Test-ModuleLocal** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **AfterAll-ModuleLocal** | ✅ Yes | ✅ Yes | ✅ Yes* | ✅ Yes | -| **Get-TestResults** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **Get-CodeCoverage** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | -| **Publish-Site** | ❌ No | ✅ Yes | ❌ No | ❌ No | -| **Publish-Module** | ✅ Yes** | ✅ Yes** | ✅ Yes*** | ✅ Yes** | +| Job | Open/Updated PR | Merged PR | Abandoned PR | Manual Run | +| ------------------------- | --------------- | ---------- | ------------ | ---------- | +| **Get-Settings** | ✅ Always | ✅ Always | ✅ Always | ✅ Always | +| **Lint-Repository** | ✅ Yes | ❌ No | ❌ No | ❌ No | +| **Build-Module** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **Build-Docs** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **Build-Site** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **Test-SourceCode** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **Lint-SourceCode** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **Test-Module** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **BeforeAll-ModuleLocal** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **Test-ModuleLocal** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **AfterAll-ModuleLocal** | ✅ Yes | ✅ Yes | ✅ Yes* | ✅ Yes | +| **Get-TestResults** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **Get-CodeCoverage** | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | +| **Publish-Site** | ❌ No | ✅ Yes | ❌ No | ❌ No | +| **Publish-Module** | ✅ Yes** | ✅ Yes** | ✅ Yes*** | ✅ Yes** | \* Runs for cleanup if tests were started \*\* Only when all tests/coverage/build succeed @@ -261,7 +261,7 @@ The following settings are available in the settings file: | `Publish.Module.AutoCleanup` | `Boolean` | Automatically cleanup old prerelease module versions | `true` | | `Publish.Module.AutoPatching` | `Boolean` | Automatically patch module version | `true` | | `Publish.Module.IncrementalPrerelease` | `Boolean` | Use incremental prerelease versioning | `true` | -| `Publish.Module.DatePrereleaseFormat` | `String` | Format for date-based prerelease ([.NET DateTime](https://learn.microsoft.com/dotnet/standard/base-types/standard-date-and-time-format-strings)) | `''` | +| `Publish.Module.DatePrereleaseFormat` | `String` | Format for date-based prerelease ([.NET DateTime][netdt]) | `''` | | `Publish.Module.VersionPrefix` | `String` | Prefix for version tags | `'v'` | | `Publish.Module.MajorLabels` | `String` | Labels indicating a major version bump | `'major, breaking'` | | `Publish.Module.MinorLabels` | `String` | Labels indicating a minor version bump | `'minor, feature'` | @@ -453,3 +453,5 @@ The process is compatible with: - [GitHub Flow specifications](https://docs.github.com/en/get-started/using-github/github-flow) - [SemVer 2.0.0 specifications](https://semver.org) - [Continuous Delivery practices](https://en.wikipedia.org/wiki/Continuous_delivery) + +[netdt]: https://learn.microsoft.com/dotnet/standard/base-types/standard-date-and-time-format-strings