Skip to content

Latest commit

 

History

History
264 lines (224 loc) · 10.7 KB

File metadata and controls

264 lines (224 loc) · 10.7 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • PSResourceGet dependency type providing first-class support for PowerShellGet v3 (Microsoft.PowerShell.PSResourceGet) alongside the existing PSGalleryModule handler (#179).
  • InstallLocal psake task that stages files and installs the module to CurrentUser scope from Output\, useful for validating pre-release bits locally without publishing (#180).
  • Chocolatey dependency type with handler script and Pester coverage, enabling Chocolatey packages alongside PowerShell modules in requirements.psd1.
  • Nuget dependency type for arbitrary NuGet feeds (not just the PowerShell Gallery), including custom DLL name support and the ability to extract .exe payloads.
  • Credential support across PSGalleryModule, PSGalleryNuget, and Invoke-PSDepend, including credentialed NuGet feed search and a warning when credential configuration looks wrong.
  • Core, macOS, and Linux platform tags on Nuget in PSDependMap.psd1, enabling cross-platform use.
  • SemVer / prerelease handling for module versions, with a PowerShell version guard so PSDepend's SemanticVersion does not collide with the native System.Management.Automation.SemanticVersion class in PS 6+; falls back to System.Version when a version string is not SemVer-compatible.
  • AcceptLicense parameter on PSRepositoryModule and matching AcceptLicense + AllowPrerelease plumbing on PSGalleryModule, splatted only when explicitly specified to preserve compatibility with older PowerShellGet versions.
  • Stale workflow (.github/workflows/stale.yml) for issues and PRs, with a workflow_dispatch trigger for on-demand sweeps.
  • CONTEXT.md documenting the PSDepend domain lexicon (Dependency, DependencyType, Target, Scope, PSDependAction, etc.) for both human and AI contributors.

Changed

  • Migrated the entire Pester test suite from v4 to v5 (#164), including new Pester v5 unit tests for individual dependency-type handler scripts and a reviewer checklist documenting the migration conventions (#166).
  • Build system rewritten on top of PowerShellBuild with GitHub Actions replacing the prior AppVeyor pipeline (#163); CI workflow actions were updated to current major versions across the board (#168).
  • Test bootstrap now runs through build.ps1 (Bootstrap / StageFiles / Test) rather than ad-hoc setup, so tests always import from Output\ and not the source tree (#171). See CLAUDE.md for the contract.
  • FunctionsToExport in PSDepend.psd1 is now an explicit list of the eight public commands instead of *, matching PowerShell module guidance and improving discoverability.
  • NuGet command-line bootstrap is now lazy: it runs only when a Nuget or PSGalleryNuget dependency is actually used, instead of on every module import (#175).
  • Default branch references updated from master to main across README, examples, the manifest's LicenseUri / ProjectUri / ReleaseNotes links, and build/CI scripts.
  • README and example dependency files updated to reflect the PowerShellOrg ownership of the project.
  • Github dependency type now allows overriding the imported name via the standard Name key, instead of always deriving it from the owner/repo slug (#121).
  • Github version matching now accepts a vX.Y.Z tag when the dependency requests X.Y.Z, so dependencies written without the v prefix resolve against the common GitHub release-tag convention (#123).
  • PSGalleryModule may now be invoked without an explicit Repository, in which case PSDepend defers to whatever repositories are currently registered via Get-PSRepository rather than forcing the PowerShell Gallery.

Fixed

  • Get-Dependency operator-precedence bug when DependencyType is set inside PSDependOptions: parenthesization was incorrect, so the global default failed to apply to dependencies without an explicit type (#131, #173).
  • Find-PSDependLocally now consults all installed versions of a module before querying the remote when an explicit version is requested, rather than short-circuiting on the first non-matching local copy and re-downloading unnecessarily (#176).
  • Import-PSDependModule now sanitizes the version string before passing it to Import-Module, preventing failures when prerelease segments or vX.Y.Z tags appear in the resolved version (#140).
  • Chocolatey install path now passes --yes to choco install (previously the script contained the typo --yess), so installs no longer hang waiting on confirmation, and the surrounding code was tidied for readability (#174).
  • Git handler now uses the full Dependency.Target path when the target directory doesn't yet exist, fixing a regression where relative targets would resolve against the wrong working directory (#169).
  • Git handler no longer depends on the .exe extension when invoking git, so it works on macOS / Linux installations where the binary is just git.
  • Github downloads suppress Invoke-RestMethod's progress stream, yielding a measurable speed-up on large release-asset downloads (#122).
  • PowerShellGet package handler now forwards -Scope correctly when Target=CurrentUser, instead of silently installing to the default scope (#167).
  • Version comparison logic for 'latest' upgrades in PSGalleryModule and Package scripts now compares [System.Version] values rather than strings, so 10.0.0 no longer sorts below 9.0.0 (#170).
  • Empty-string guard added alongside existing $null checks in dependency-name handling, preventing silent skips when a malformed requirements.psd1 produces a zero-length name (#102).
  • Test-Dependency and friends now emit a clearer error message when *.depend.psd1 is missing, instead of the previous opaque parse failure (#126).
  • DotnetSdk install test now mocks Install-Dotnet so the test suite no longer attempts a real SDK install on CI runners (#178).

Docs

  • Added a note that Save-Module may need to be rerun if a dependency's Target directory was removed between invocations (#177).
  • Credential help and a credential-misconfiguration warning added to the relevant handler scripts and Invoke-PSDepend help.

[0.3.0] - 2018-09-20

Added

  • DotnetSdk dependency type.

Changed

  • TLS 1.2 is now added to existing security protocols rather than replacing them (#85).
  • Parameterized help for Get-PSDependType.
  • GitHub download performance improvements (#84).

Fixed

  • AllowClobber placement in the PSGalleryModule splat (#83).
  • GitHub import path bug.

[0.2.1] - 2018-05-11

Added

  • PowerShell Core support (#79).
  • AllowClobber parameter on PSGalleryModule (#53).
  • Resolving of PSDrives.
  • Error-handling parameters on dependency scripts.

Changed

  • Local build-environment improvements (#78).
  • Tests now use TestDrive instead of TargetPath.
  • psake build task allows psd1 version overrides.
  • Unmarked Github as experimental.
  • Honor arbitrary target path logic for Github types.
  • Removed mkdir from the module.

Fixed

  • Path delimiter on Linux.
  • Conditional logic for removing parameters from splats.

[0.2.0] - 2018-03-22

Added

  • Linux support (#72).
  • Supported-platforms handling in PSDependMap (windows, core, macos, linux).
  • Support for .*requirements.psd1 filenames and hidden dependency files.
  • ImportName to override the imported module name.
  • TLS 1.2 added to the security protocol list.

Changed

  • Use capitalized Noop to avoid case-sensitivity issues on Linux.
  • Improved verbosity, descriptions, and variable naming across scripts.
  • Core-friendly TargetPath handling.

Fixed

  • Bug that missed hidden *.depend.psd1 files.
  • Alias resolution.

[0.1.63] - 2018-01-17

Added

  • GitHub dependency type rewrite: versioned folders, version targets, multiple-version support, "latest" GitHub version lookup, scope keyword support, examples.
  • SkipPublisherCheck for PSGallery modules (#46, #64).

Changed

  • AddToPath now applies on both install and subsequent imports (#60).
  • Performance: removed redundant Get-PSRepository calls (#52); reduced calls to find the latest version of a module/package (#58).

Fixed

  • Ensure the correct version of a module is imported (#57).
  • Doubled-folder bug, version bug, and import bug in the GitHub rewrite.
  • Resolve Target correctly (#56).

[0.1.56] - 2017-10-04

Added

  • Npm dependency type with unit tests.
  • PreScripts and PostScripts with injected variables.
  • Module extraction in the Git dependency script.
  • Initial simple-syntax with namespaces (#41).

Changed

  • Full-path resolution for AddToPath, including when relative.

Fixed

  • Documentation typos.
  • PreScripts and PostScripts feature bugs.

[0.1.49] - 2017-03-19

Added

  • Github dependency type with default target handling.
  • Command dependency type.
  • Package dependency type with examples and tests.
  • FileSystem dependency type.
  • Hashtable input support for Get-Dependency and Invoke-PSDepend.
  • PSDependOptions for global defaults (including global DependencyType, #15).
  • Invoke-DependencyScript and tests.
  • $DependencyFolder, $PWD, and . substitutions in psd1 files.
  • Sanitized environment-variable substitution in dependency definitions.
  • Per-dependency Target override.
  • -Quiet switch on Invoke-PSDepend.
  • Extending-PSDepend documentation.

Changed

  • Adjusted -Force behavior on Module dependency types (#15).
  • Hardcoded Repository removed from PSGalleryModule.ps1.
  • Changed NuGet download path in the curl/bash install.

Fixed

  • Dependency parsing / DependencyType issue.
  • Missing dependency type detection.
  • Comment-based help for Invoke-PSDepend.
  • Link to Install-PSDepend.
  • AddToPath behavior and example scenarios.
  • Module target doesn't exist + -Force.

[0.0.30] - 2016-08-28

Added

  • Test-Dependency, Import-Dependency, and Install-Dependency actions.
  • Git dependency type with branch/commit support.
  • PSGalleryNuget dependency type.
  • PSGalleryModule with Force, import-on-install option, and NuGet package-provider bootstrap.
  • FileDownload dependency type.
  • Support for requirements.psd1 filename.
  • AppVeyor CI hookup and initial test suite.
  • about_PSDepend help and notes about PSDeploy.

Fixed

  • Bug in Git account/repo regex.
  • Bug in PSGalleryNuget.
  • Default Git dependency type discovery.
  • Invoke-PSDepend -Force switch bug.

[0.0.1] - 2016-07-29

Added

  • Initial scaffolding, adapted from PSDeploy.