From 5d1646b8840a0e571522482e380bacd63adc3464 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Thu, 27 Aug 2026 22:47:53 +0200 Subject: [PATCH 1/4] Migrate Process-PSModule caller to v8 Adopt the canonical v8 caller from the Process-PSModule v8.0.3 docs, moving from the SHA pinned v6.1.4 across the v7 and v8 breaking changes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/workflows/Process-PSModule.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/Process-PSModule.yml b/.github/workflows/Process-PSModule.yml index d48686d..1181c77 100644 --- a/.github/workflows/Process-PSModule.yml +++ b/.github/workflows/Process-PSModule.yml @@ -4,6 +4,9 @@ on: workflow_dispatch: schedule: - cron: '0 0 * * *' + push: + branches: + - main pull_request: branches: - main @@ -13,20 +16,21 @@ on: - reopened - synchronize - labeled + - unlabeled concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: false permissions: - contents: write - pull-requests: write - statuses: write + contents: read pages: write id-token: write jobs: Process-PSModule: - uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@da180bac16b13bfbcdf08b2e4e221b5b49e5ff28 # v6.1.4 + uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v8 secrets: - APIKey: ${{ secrets.APIKey }} + PSGALLERY_API_KEY: ${{ secrets.PSGALLERY_API_KEY }} + GitHubAppClientId: ${{ secrets.SHELLY_CLIENT_ID }} + GitHubAppPrivateKey: ${{ secrets.SHELLY_PRIVATE_KEY }} From 1af6899d57639d59c55d95360457e03cd20d7130 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Thu, 27 Aug 2026 22:59:50 +0200 Subject: [PATCH 2/4] Convert tests to Pester 6 Should-* assertion syntax The file already required Pester 6 but its body was still classic v5 syntax. Move to the v6 Should-* assertions and align the requirement with the Process-PSModule v8 convention of 6.1.0. - Should -Not -BeNullOrEmpty -> Should-NotBeNull - Should -Not -Throw -> direct call (no Should-NotThrow in v6) Verified with Pester 6.1.0 and Should.DisableV5 = $true, which rejects any remaining classic syntax. All 3 tests pass. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- tests/GoogleFonts.Tests.ps1 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/GoogleFonts.Tests.ps1 b/tests/GoogleFonts.Tests.ps1 index cf8f30a..f8126d3 100644 --- a/tests/GoogleFonts.Tests.ps1 +++ b/tests/GoogleFonts.Tests.ps1 @@ -1,29 +1,29 @@ -#Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '6.0.0'; MaximumVersion = '6.*' } +#Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '6.1.0'; MaximumVersion = '6.*' } Describe 'Module' { Context 'Function: Get-GoogleFont' { It 'Returns all fonts' { $fonts = Get-GoogleFont Write-Verbose ($fonts | Out-String) -Verbose - $fonts | Should -Not -BeNullOrEmpty + $fonts | Should-NotBeNull } It 'Returns a specific font' { $font = Get-GoogleFont -Name 'Roboto' Write-Verbose ($font | Out-String) -Verbose - $font | Should -Not -BeNullOrEmpty + $font | Should-NotBeNull } } Context 'Function: Install-GoogleFont' { It '[Install-GoogleFont] - Installs a font' { - { Install-GoogleFont -Name 'Akshar' } | Should -Not -Throw - Get-Font -Name 'Akshar*' | Should -Not -BeNullOrEmpty + Install-GoogleFont -Name 'Akshar' + Get-Font -Name 'Akshar*' | Should-NotBeNull } # It '[Install-GoogleFont] - Installs all fonts' { - # { Install-GoogleFont -All -Verbose } | Should -Not -Throw - # Get-Font -Name 'Nabla*' | Should -Not -BeNullOrEmpty + # Install-GoogleFont -All -Verbose + # Get-Font -Name 'Nabla*' | Should-NotBeNull # } } } From 42109aac68592bc39609f288c634b288a76acc8d Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Fri, 28 Aug 2026 07:21:28 +0200 Subject: [PATCH 3/4] Adopt Zensical documentation site config Process-PSModule v8 builds the documentation site with Zensical and resolves its config from .github/zensical.toml, docs/zensical.toml, or zensical.toml. No v8 action or workflow reads mkdocs.yml, so the docs build would fail on the missing config. Carry every setting from the mkdocs.yml site definition into the Zensical TOML schema and remove the file it replaces. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/mkdocs.yml | 75 ------------------------------------------- .github/zensical.toml | 69 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 75 deletions(-) delete mode 100644 .github/mkdocs.yml create mode 100644 .github/zensical.toml diff --git a/.github/mkdocs.yml b/.github/mkdocs.yml deleted file mode 100644 index df5e17a..0000000 --- a/.github/mkdocs.yml +++ /dev/null @@ -1,75 +0,0 @@ -site_name: -{{ REPO_NAME }}- -theme: - name: material - language: en - font: - text: Roboto - code: Sono - logo: Assets/icon.png - favicon: Assets/icon.png - palette: - # Palette toggle for automatic mode - - media: "(prefers-color-scheme)" - toggle: - icon: material/link - name: Switch to dark mode - # Palette toggle for dark mode - - media: '(prefers-color-scheme: dark)' - scheme: slate - toggle: - primary: black - accent: green - icon: material/toggle-switch-off-outline - name: Switch to light mode - # Palette toggle for light mode - - media: '(prefers-color-scheme: light)' - scheme: default - toggle: - primary: indigo - accent: green - icon: material/toggle-switch - name: Switch to system preference - icon: - repo: material/github - features: - - navigation.instant - - navigation.instant.progress - - navigation.indexes - - navigation.top - - navigation.tracking - - navigation.expand - - search.suggest - - search.highlight - -repo_name: -{{ REPO_OWNER }}-/-{{ REPO_NAME }}- -repo_url: https://github.com/-{{ REPO_OWNER }}-/-{{ REPO_NAME }}- - -plugins: - - search - -markdown_extensions: - - toc: - permalink: true # Adds a link icon to headings - - attr_list - - admonition - - md_in_html - - pymdownx.details # Enables collapsible admonitions - -extra: - social: - - icon: fontawesome/brands/discord - link: https://discord.gg/jedJWCPAhD - name: -{{ REPO_OWNER }}- on Discord - - icon: fontawesome/brands/github - link: https://github.com/-{{ REPO_OWNER }}-/ - name: -{{ REPO_OWNER }}- on GitHub - consent: - title: Cookie consent - description: >- - We use cookies to recognize your repeated visits and preferences, as well - as to measure the effectiveness of our documentation and whether users - find what they're searching for. With your consent, you're helping us to - make our documentation better. - actions: - - accept - - reject diff --git a/.github/zensical.toml b/.github/zensical.toml new file mode 100644 index 0000000..650af9f --- /dev/null +++ b/.github/zensical.toml @@ -0,0 +1,69 @@ +[project] +site_name = "-{{ REPO_NAME }}-" +repo_name = "-{{ REPO_OWNER }}-/-{{ REPO_NAME }}-" +repo_url = "https://github.com/-{{ REPO_OWNER }}-/-{{ REPO_NAME }}-" + +[project.theme] +variant = "classic" +language = "en" +logo = "Assets/icon.png" +favicon = "Assets/icon.png" +features = [ + "navigation.instant", + "navigation.instant.progress", + "navigation.indexes", + "navigation.top", + "navigation.tracking", + "navigation.expand", + "search.suggest", + "search.highlight", + "content.code.copy" +] + +[[project.theme.palette]] +media = "(prefers-color-scheme)" +toggle.icon = "lucide/sun-moon" +toggle.name = "Switch to dark mode" + +[[project.theme.palette]] +media = "(prefers-color-scheme: dark)" +scheme = "slate" +primary = "black" +accent = "green" +toggle.icon = "lucide/moon" +toggle.name = "Switch to light mode" + +[[project.theme.palette]] +media = "(prefers-color-scheme: light)" +scheme = "default" +primary = "indigo" +accent = "green" +toggle.icon = "lucide/sun" +toggle.name = "Switch to system preference" + +[project.theme.icon] +repo = "fontawesome/brands/github" + +[project.markdown_extensions.toc] +permalink = true + +[project.markdown_extensions.attr_list] +[project.markdown_extensions.admonition] +[project.markdown_extensions.md_in_html] +[project.markdown_extensions.pymdownx.details] +[project.markdown_extensions.pymdownx.superfences] + +[[project.extra.social]] +icon = "fontawesome/brands/discord" +link = "https://discord.gg/jedJWCPAhD" +name = "-{{ REPO_OWNER }}- on Discord" + +[[project.extra.social]] +icon = "fontawesome/brands/github" +link = "https://github.com/-{{ REPO_OWNER }}-/" +name = "-{{ REPO_OWNER }}- on GitHub" + +[project.extra.consent] +title = "Cookie consent" +description = "We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better." +actions = ["accept", "reject"] From d2541b587f267e3c35f70ff2d73fce69e4d6a892 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Fri, 28 Aug 2026 20:00:29 +0200 Subject: [PATCH 4/4] Trigger the release path on automation and test changes The default ImportantFilePatterns match only ^src/ and ^README.md$, so a change to the workflow caller, the site config, the settings file, or the tests never enters the build, test, and publish path and ships without being exercised. List those paths alongside the two defaults, which the setting replaces in full. Disable the zizmor GitHub Actions linter to match the current module template, and point the reference comment at the settings page now that the README anchor it named is gone. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/PSModule.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/PSModule.yml b/.github/PSModule.yml index dab0ebe..d5c7cd5 100644 --- a/.github/PSModule.yml +++ b/.github/PSModule.yml @@ -1,6 +1,14 @@ # This file is used to configure the Process-PSModule workflow. # Reference: -# - https://github.com/PSModule/Process-PSModule?tab=readme-ov-file#configuration +# - https://github.com/PSModule/Process-PSModule/blob/main/docs/content/reference/settings.md + +ImportantFilePatterns: + - '^src/' + - '^README\.md$' + - '^tests/' + - '^\.github/PSModule\.yml$' + - '^\.github/zensical\.toml$' + - '^\.github/workflows/' Test: CodeCoverage: @@ -24,6 +32,7 @@ Linter: env: VALIDATE_BIOME_FORMAT: false VALIDATE_BIOME_LINT: false + VALIDATE_GITHUB_ACTIONS_ZIZMOR: false VALIDATE_JSCPD: false VALIDATE_JSON_PRETTIER: false VALIDATE_MARKDOWN_PRETTIER: false