Skip to content

Latest commit

 

History

History
95 lines (80 loc) · 5.03 KB

File metadata and controls

95 lines (80 loc) · 5.03 KB

Managed Module Release Readiness

The managed module lifecycle is feature-complete against the stable Microsoft.PowerShell.PSResourceGet 1.2.0 module workflows. The authoritative behavior and intentional differences are documented in:

This page tracks only the evidence needed for a release claim. It is not a feature roadmap.

Completed Product Scope

  • Managed find, inventory, save, install, update, uninstall, publish, compression, and estate repair use shared C# engines behind thin PowerShell cmdlets.
  • Estate repair keeps physical roots, PowerShell editions, scopes, and local profiles independent; supplied inventories and maintenance receipts retain explicit destinations; cleanup replans after delivery, requires an error-free refreshed plan, batch-preflights exact-path uninstall safety, protects current-runspace loaded modules, validates global/profile/custom cross-root dependencies with per-profile visibility for global cleanup targets, treats unknown-edition roots conservatively, fails closed when a previously available inventory/dependency root cannot be inspected, preserves profile/edition visibility instead of pooling unrelated alternatives, orders selected dependents before dependencies, and returns post-apply convergence evidence without treating declined actions as success.
  • Common PowerShellGet and stable PSResourceGet module workflows have documented managed equivalents, including typed pipelines and version-range selection.
  • Supported module operations do not invoke PowerShellGet, PSResourceGet, PackageManagement, external executables, or embedded PowerShell scripts.
  • Windows PowerShell 5.1 and PowerShell 7 validation covers the supported lifecycle, compatibility contracts, generated help, and package artifacts.

Release Closure

  • Stable PSResourceGet 1.2.0 -AuthenticodeCheck behavior is covered by unsigned module-file and .mof no-promotion tests plus an exact-candidate install of the upstream PackageManagement 1.4.3 fixture. WinTrust accepted 26 signed files, including PackageManagement.cat, before promotion. The managed command fails closed on unsupported non-Windows hosts instead of continuing unchecked.
  • Repeated exact-candidate benchmark runs completed on PowerShell 7.6.3 and Windows PowerShell 5.1.26100.8875 with one warmup, three measured iterations, grouped rotation, correctness validation, and zero failures. Runs 20260718-104931-72cb50bd and 20260718-105032-37d8daf2 pinned runtime candidate 3dbb6e3af4c34df2d3bb267eae941ec1c53fb842; native provider install lanes were skipped because the current-profile benchmark intentionally does not mutate the maintainer's module roots.
  • The public README keeps the representative multi-scenario matrix rather than replacing it with a focused release spot check. Both use Managed as the 1.00x baseline, show raw times, and label non-equivalent or skipped lanes.
  • Generated and PSGallery 3.0.68 packages were imported under PowerShell 7 and Windows PowerShell 5.1 and exercised through documented managed-module repair, provenance, dependency-safety, and convergence workflows.

Exact-Candidate Performance Spot Check

The focused release run used PSScriptAnalyzer 1.25.0 against the normal PowerShell Gallery paths. Times are medians of three measured iterations after one warmup; install rows are Managed-only because native install benchmarking requires the isolated TemporaryLocalUser profile.

Host Operation Managed PSResourceGet PowerShellGet
PowerShell 7.6.3 Find 285 ms 321 ms 478 ms
PowerShell 7.6.3 Install 592 ms Skipped Skipped
PowerShell 7.6.3 Save 1.22 s 1.92 s 4.06 s
Windows PowerShell 5.1 Find 349 ms Unsupported 671 ms
Windows PowerShell 5.1 Install 912 ms Unsupported Skipped
Windows PowerShell 5.1 Save 1.34 s Unsupported 3.57 s

The pinned net10.0 assembly SHA-256 was F97858DE917D422A5D8FCCE388CD225B5B6F6D9400839DA03D532EB4E8459581; the net472 assembly SHA-256 was 79666E6C9C891F8CEEF0411435929DA6E29191F943846F8AAE3E8B864C203C32. The final documentation-only commit does not change this measured runtime source or either pinned assembly.

Explicit Non-Goals

These do not block the managed module lifecycle release:

  • remaining script find, update, uninstall, publish, and compression commands
  • DSC-resource, command-name, and role-capability package-content search
  • automatic repository-priority fanout
  • automatic credential-provider installation or bootstrap
  • Microsoft Artifact Registry ModulePrefix transport
  • direct discovery and conversion from the PowerShellGet v2 repository store

Add any future capability only through a reusable resource or repository model that preserves the current module-path behavior and performance.