Skip to content

⚙️ [Maintenance]: Adopt Process-PSModule v6.1.4 and require Pester 6.x in tests#13

Closed
Marius Storhaug (MariusStorhaug) wants to merge 3 commits into
mainfrom
maintenance/lock-pester-major-6
Closed

⚙️ [Maintenance]: Adopt Process-PSModule v6.1.4 and require Pester 6.x in tests#13
Marius Storhaug (MariusStorhaug) wants to merge 3 commits into
mainfrom
maintenance/lock-pester-major-6

Conversation

@MariusStorhaug

@MariusStorhaug Marius Storhaug (MariusStorhaug) commented Jul 7, 2026

Copy link
Copy Markdown
Member

This module now runs on the latest Process-PSModule automation (v6.1.4) and pins its test suite to Pester 6, so continuous integration uses the current build, test, and publish pipeline and the tests fail fast if Pester 6 is ever missing.

Changed: CI runs on Process-PSModule v6.1.4

The reusable workflow pin moves to v6.1.4 from the module's previously pinned v5 release, adopting the current pipeline, including the Pester 6 test runner and the consolidated TestData secret model. No caller changes are required — the existing secrets wiring keeps passing everything the pipeline needs.

Changed: Tests require Pester 6.x

Every test file now declares the Pester 6 requirement, so the suite always resolves Pester 6 and fails with a clear message if only an older Pester is available, instead of silently running on it.

Technical Details

  • .github/workflows/Process-PSModule.yml: pin bumped to workflow.yml@da180bac16b13bfbcdf08b2e4e221b5b49e5ff28 # v6.1.4.
  • tests/*.Tests.ps1: added #Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '6.0.0'; MaximumVersion = '6.*' }.
  • Classic Should assertions are left unchanged. Pester 6 is backward-compatible, so converting to the new Should-* syntax is intentionally out of scope for this maintenance change.
  • Supersedes any stale Dependabot bump of the Process-PSModule pin.

Copilot AI review requested due to automatic review settings July 7, 2026 15:45
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

No Significant Changes Detected

This PR does not contain changes to files that would trigger a new release:

Path Description
src/** Module source code
README.md Documentation

Build, test, and publish stages will be skipped for this PR.

If you believe this is incorrect, please verify that your changes are in the correct locations.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds an explicit PowerShell #Requires -Modules declaration to the Pester test script so the tests only run when Pester 6.x is available, aligning test discovery/runtime with the intended dependency constraints.

Changes:

  • Add #Requires -Modules @{ ModuleName = 'Pester'; ModuleVersion = '6.0.0'; MaximumVersion = '6.*'; GUID = 'a699dea5-2c73-4616-a270-1f7abb777e71' } at the top of the test file to enforce Pester 6.x at discovery time.
  • Insert a blank line after the #Requires directive, keeping the rest of the test file unchanged.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

Super-linter summary

Language Validation result
CHECKOV Pass ✅
GITHUB_ACTIONS Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
MARKDOWN Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

The GUID pins module identity (precise pinning), a stricter control than the lock-to-major risk appetite. Keep only the version range.
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

No Significant Changes Detected

This PR does not contain changes to files that would trigger a new release:

Path Description
src/** Module source code
README.md Documentation

Build, test, and publish stages will be skipped for this PR.

If you believe this is incorrect, please verify that your changes are in the correct locations.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

Super-linter summary

Language Validation result
CHECKOV Pass ✅
GITHUB_ACTIONS Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
MARKDOWN Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

@MariusStorhaug
Marius Storhaug (MariusStorhaug) marked this pull request as draft July 12, 2026 09:54
Copilot AI review requested due to automatic review settings July 12, 2026 09:54
@MariusStorhaug Marius Storhaug (MariusStorhaug) changed the title ⚙️ [Maintenance]: Require Pester 6.x in test files ⚙️ [Maintenance]: Adopt Process-PSModule v6.1.4 and require Pester 6.x in tests Jul 12, 2026
@github-actions

Copy link
Copy Markdown

No Significant Changes Detected

This PR does not contain changes to files that would trigger a new release:

Pattern Description
^src/ Matches files where path matches this pattern
^README\.md$ Matches files where path matches this pattern

Build, test, and publish stages will be skipped for this PR.

If you believe this is incorrect, please verify that your changes are in the correct locations.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/Process-PSModule.yml
@github-actions

Copy link
Copy Markdown

Super-linter summary

Language Validation result
CHECKOV Pass ✅
GITHUB_ACTIONS Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
MARKDOWN Pass ✅
NATURAL_LANGUAGE Pass ✅
POWERSHELL Pass ✅
PRE_COMMIT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter

@MariusStorhaug
Marius Storhaug (MariusStorhaug) marked this pull request as ready for review July 12, 2026 10:15
Marius Storhaug (MariusStorhaug) added a commit that referenced this pull request Jul 25, 2026
# Conflicts:
#	.github/workflows/Process-PSModule.yml
@MariusStorhaug

Copy link
Copy Markdown
Member Author

Closing because the exact PR head is contained in release/v1.0.0 and consolidated in draft release PR #16.

@MariusStorhaug
Marius Storhaug (MariusStorhaug) deleted the maintenance/lock-pester-major-6 branch July 25, 2026 22:59
Marius Storhaug (MariusStorhaug) added a commit that referenced this pull request Jul 26, 2026
Domeneshop users gain authenticated access to the module's domain, DNS,
forwarding, DDNS, and invoice capabilities through a consolidated
pre-1.0 release candidate.

## New: Domeneshop API capabilities

The module adds Context-based credential handling and commands for
querying domains, managing DNS records and forwards, updating DDNS, and
retrieving invoices. Command safety, validation, focused tests, and
command-group documentation are included in the release candidate.

## New: Guided credential setup

Running `Connect-DomeneshopAccount` without `-Secret` or its `-Key`
alias opens the Domeneshop API settings page and securely prompts for
the secret. If a browser is unavailable, the command warns and continues
to the secure prompt. Explicit string and SecureString inputs remain
supported, and `-WhatIf` does not open the browser, prompt, or change
stored contexts.

## Changed: Release tooling and documentation

The release candidate adopts Process-PSModule v6.1.13, enforces Pester
6.x across every test file, consolidates public command tests into
root-level group suites, migrates the generated documentation site to
Zensical, replaces README placeholders with the standard module landing
page, and links each public command's help to its canonical generated
documentation.

---

<details>
<summary>Technical details</summary>

- Integrated PR #11, PR #13, the preserved pull ref for PR #12, PR #14,
and stacked PR #15 in the requested order; each exact source head is
verified as an ancestor of this branch. All five source PRs are now
closed and their remote branches deleted.
- Resolved the PR #11/PR #13 workflow overlap in favor of PR #13's
Process-PSModule v6.1.4 baseline, then updated the consolidated release
to latest Process-PSModule v6.1.13 at immutable commit
`fb1bdb8fefd243292f779d2a856a38db6fe6daf4`.
- Migrated `.github/mkdocs.yml` to `.github/zensical.toml`, satisfying
v6.1.13's Zensical-only documentation pipeline.
- PR #14 was merged explicitly before PR #15; PR #15's existing ancestry
was retained, so only its four standards-hardening commits were
introduced by the later merge.
- Added an integration commit applying PR #13's exact Pester 6.x
requirement to the command tests introduced by PR #15.
- Uses the Standard test-layout profile: grouped public commands are
covered by root-level `tests/<Group>.Tests.ps1` suites (`Auth`, `Ddns`,
`Dns`, `Domains`, `Forwards`, and `Invoices`), while ungrouped and
cross-cutting suites remain separate at the root. Deterministic layout
coverage verifies every public command has a matching `Describe` block
in its expected suite.
- Added interactive credential setup as a separate micro-commit,
including the exact `https://domene.shop/admin?view=api` launch,
`Read-Host -AsSecureString`, `Key` alias, side-effect-free `-WhatIf`
behavior, and a warning-only browser fallback that preserves secure
prompting.
- Added group-aware canonical links first in all 14 public function help
blocks: `https://psmodule.io/Domeneshop/Functions/<FunctionName>/` for
ungrouped commands and
`https://psmodule.io/Domeneshop/Functions/<Group>/<FunctionName>/` for
grouped commands. Deterministic tests require the exact trailing-slash
route and reject missing, incorrect, or secondary-first links.
- Linked clearly owned private Auth helpers to the published public
commands they support while retaining useful secondary Context links.
- Requires PowerShell 7.6, the latest LTS. The generated module manifest
declares `PowerShellVersion = 7.6` and `CompatiblePSEditions = Core`;
legacy Windows PowerShell compatibility branches are intentionally
excluded.
- Rejects whitespace-only API tokens, DDNS values, DNS filters, domain
filters, forward hosts, and smoke-test names before state changes or URI
construction.
- Addressed generated-document lint, reserved context names, empty
secrets, missing context diagnostics, strict WhatIf mutation boundaries,
portable test paths, output contracts, and automated-review findings
discovered during integration.
- Local validation: 83 Pester tests pass, PSScriptAnalyzer reports zero
findings across `src` and `tests`, and `git diff --check` passes.
- Exact-head Process-PSModule v6.1.13 CI succeeds on `9834688` (run
`30180761797`), including Build-Site and all module-local suites across
Linux, macOS, and Windows.
- PSModule/docs PR #86 and Process-PSModule PR #419 are merged, making
latest-LTS support and ternary allowance effective on their default
branches.

</details>

<details>
<summary>Relevant issues (or links)</summary>

- Fixes #2
- #11
- #12
- #13
- #14
- #15
- PSModule/docs#86
- PSModule/Process-PSModule#419

</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants