PowerShellGet in PowerShell 7.4 Updates
Version 3 previews of PowerShellGet will begin shipping in PowerShell 7.4 previews in June (preview 5) with the following updates. These changes include important plans to address migration and compatibility, and we would like to request feedback.
- The module name “PowerShellGet” for version 3 (
-PSResource cmdlets) will change to “Microsoft.PowerShell.PSResourceGet” begining with the next release (beta22).
- PowerShell v7.4 (LTS) will ship PowerShellGet v2.2.5 and PSResourceGet v3.0.x, side-by-side. This will help us get telemetry about usage of PSResourceGet. No compatibility layer will be shipped, meaning we will not wrap version 3 commandlets with version 2 names. This allows current scripts to work as-is, with or without fully qualified cmdlet names, while still allowing customers to test the new commandlets.
- Customers can use
-PSResourcecmdlets for perf improvements and new features. No new feature work will be done in
- In the first preview of PowerShell v7.5 we will include CompatPowerShellGet renamed as PowerShellGet v3.0.0, in addition to publishing the latest PSResourceGet module. In PowerShell v7.5 we will not ship PowerShellGet v2.2.5.
- In PowerShell v7.5 we plan to ship PowerShellGet v3.0.0 and the latest stable version of PSResourceGet, side-by-side.
- We will get community feedback about the compatibility layer that will help use decide on the final plans for PowerShell v7.5.
- We plan to ship PSResourceGet in addition to current PowerShellGet 22.214.171.124 in future builds of Windows so PSResourceGet can be made available by default in Windows PowerShell 5.1.
- We also plan to improve the experience of updating PowerShellGet/PSResourceGet in prior releases of Windows.
- We will update the PowerShellGet repository name on GitHub to reflect the new PSResourceGet name.
We would greatly appreciate your thoughtful feedback on these plans while there is still time to consider changes. Please comment on this github issue.
Considerations for this decision
We appreciate the feedback we have already been given by the community, at PowerShell events, by MVP’s, and by our peers. Some of the key factors that played into this decision were
- PowerShell 7.4 is an LTS release. We are merging releases later in the preview cycle than we wanted. We now need to be especially cautious about breaking changes that could impact existing scripts/automation.
- Using telemetry to track adoption of PowerShellGet v3 (now PSResourceGet) will help inform when we have an appropriate level of usage relative to feedback, to confirm public validation before release.
- In the future, we would like to be able to end new feature work for PowerShellGet v2 due to support difficulties with OneGet(PackageManagement) and focus on PSResourceGet. We recognize it will take time for mass adoption of PSResourceGet, so we will be moving cautiously.
- For a deeper look into other options we explored please refer to this github issue.
We look forward to reviewing community feedback!
Sydney PowerShell Team