Skip to content

feat(build): add InstallLocal psake task for local pre-release installs#180

Merged
HeyItsGilbert merged 3 commits into
mainfrom
feat/install-local-task
May 21, 2026
Merged

feat(build): add InstallLocal psake task for local pre-release installs#180
HeyItsGilbert merged 3 commits into
mainfrom
feat/install-local-task

Conversation

@HeyItsGilbert
Copy link
Copy Markdown
Member

Summary

  • Adds InstallLocal psake task that stages the module and copies it to Documents\PowerShell\Modules\PSDepend\<version>-<label>\ so the dev build can be tested locally without shadowing the stable PSGallery version
  • Prerelease label defaults to pre-<git-short-hash> and can be overridden: .\build.ps1 InstallLocal -Properties @{PreReleaseLabel='rc1'}
  • Adds Prerelease = '' to PSDepend.psd1 PSData — required for Update-Metadata to stamp the staged manifest; empty string = stable for normal releases
  • Tidies .vscode config: adds debug launch profiles and editor formatting defaults

Test plan

  • .\build.ps1 InstallLocal completes without error and reports the install path
  • Get-Module PSDepend -ListAvailable shows the new pre-release entry alongside any stable version
  • .\build.ps1 InstallLocal -Properties @{PreReleaseLabel='rc1'} installs as 0.3.0-rc1
  • .\build.ps1 Test still passes (no regressions from manifest change)

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings May 21, 2026 00:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 extends PSDepend’s developer workflow by adding a local pre-release install task to the build, and it also introduces a new PSResourceGet dependency provider (plus tests) to support PSResourceGet-based module installs alongside the existing PowerShellGet v2 provider.

Changes:

  • Added a psake InstallLocal task that stamps a prerelease label into the staged manifest and copies the staged module into a version-labeled folder under the user module path.
  • Added a new PSResourceGet dependency type implementation (PSDependScripts/PSResourceGet.ps1) and a dedicated Pester test suite.
  • Updated the module manifest PSData metadata (ReleaseNotes URL + Prerelease key) and refreshed VS Code settings/debug profiles.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
Tests/PSResourceGet.Type.Tests.ps1 Adds Pester coverage for the new PSResourceGet provider contract/behavior.
PSDepend/PSDependScripts/PSResourceGet.ps1 New provider script implementing install/save/import/test flows via PSResourceGet.
PSDepend/PSDependMap.psd1 Registers the new PSResourceGet dependency type and updates map formatting/description text.
PSDepend/PSDepend.psd1 Adds PSData Prerelease field and points ReleaseNotes to CHANGELOG; reformats export list.
psakeFile.ps1 Adds InstallLocal task for staging + prerelease stamping + local install copy.
.vscode/settings.json Adds editor defaults and search excludes (notably Output/**).
.vscode/launch.json Adds new debug launch profiles intended for running tests and loading the module.

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

Comment thread .vscode/launch.json Outdated
Comment thread psakeFile.ps1
Comment thread psakeFile.ps1
Comment thread PSDepend/PSDependMap.psd1
HeyItsGilbert and others added 2 commits May 20, 2026 17:39
Adds a new `InstallLocal` task to psakeFile.ps1 that stages the module
and installs it to the CurrentUser PS 7 modules path with a prerelease
label derived from the short git commit hash, so it does not shadow the
stable PSGallery version. The label can be overridden via psake
-Properties @{PreReleaseLabel='rc1'}.

Also adds `Prerelease = ''` to PSDepend.psd1 PSData (required for
Update-Metadata to stamp the staged manifest) and tidies .vscode config
with debug launch profiles and editor formatting defaults.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@HeyItsGilbert HeyItsGilbert force-pushed the feat/install-local-task branch from 2b22c94 to 6c68073 Compare May 21, 2026 00:40
@github-actions
Copy link
Copy Markdown

Test Results

    4 files  ±0     76 suites  ±0   2m 3s ⏱️ -19s
1 320 tests ±0  1 232 ✅ ±0  88 💤 ±0  0 ❌ ±0 
1 616 runs  ±0  1 526 ✅ ±0  90 💤 ±0  0 ❌ ±0 

Results for commit 6c68073. ± Comparison against base commit 116084b.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Gilbert Sanchez <me@gilbertsanchez.com>
@HeyItsGilbert HeyItsGilbert merged commit 431dcad into main May 21, 2026
4 checks passed
@HeyItsGilbert HeyItsGilbert deleted the feat/install-local-task branch May 21, 2026 00:58
HeyItsGilbert added a commit that referenced this pull request May 21, 2026
## Summary
- Adds a `CHANGELOG.md` at the repo root, reconstructed retroactively
from the git history of `PSDepend/PSDepend.psd1`.
- Covers every published version from **0.0.1 (2016-07-29)** through
**0.3.0 (2018-09-20)**, plus an **[Unreleased]** section capturing the
large queue of work merged since 0.3.0 (PSResourceGet, Chocolatey,
Pester v5 migration, build modernization, numerous bug fixes — PRs #102
through #180).
- Follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) with
Added / Changed / Fixed groupings and SemVer headings.
- Resolves the dangling reference in `PSDepend/PSDepend.psd1` (line
109), where `PrivateData.PSData.ReleaseNotes` already points at
`CHANGELOG.md` on `main` but the file did not exist.

## Why retroactive
The module has shipped 8 versions but never carried a changelog.
Reconstructing it now gives a single place to read project history,
makes the existing `ReleaseNotes` link resolve, and creates a landing
spot for future releases to append to instead of starting from scratch.

## Test plan
- [x] Verify `CHANGELOG.md` renders correctly on GitHub.
- [x] Confirm the URL in `PSDepend/PSDepend.psd1` line 109
(`ReleaseNotes`) now resolves once merged to `main`.
- [x] Spot-check a couple of historical entries against `git log` to
confirm accuracy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.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