{"id":18589,"date":"2020-09-10T11:21:07","date_gmt":"2020-09-10T19:21:07","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/powershell\/?p=18589"},"modified":"2022-04-21T12:02:17","modified_gmt":"2022-04-21T20:02:17","slug":"powershellget-3-0-preview-10-release","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/powershellget-3-0-preview-10-release\/","title":{"rendered":"PowerShellGet 3.0 Preview 10 Release"},"content":{"rendered":"<h1 class=\"rich-diff-level-zero\"><span style=\"font-size: 1rem;\">In this blog post we are excited to share:<\/span><\/h2>\n<ul class=\"added rich-diff-level-zero\">\n<li class=\"rich-diff-level-one\"><a href=\"https:\/\/www.powershellgallery.com\/packages\/PowerShellGet\/3.0.0-beta10\" rel=\"nofollow\">PowerShellGet 3.0 preview 10<\/a>\u00a0is now available on the PowerShell Gallery<\/li>\n<li class=\"rich-diff-level-one\"><a href=\"https:\/\/github.com\/PowerShell\/CompatPowerShellGet\">CompatPowerShellGet<\/a>\u00a0compatibility module is now publicly available on\u00a0<a href=\"https:\/\/github.com\/PowerShell\/CompatPowerShellGet\">GitHub<\/a>\u00a0and\u00a0<a href=\"https:\/\/www.powershellgallery.com\/packages\/CompatPowerShellGet\/0.0.2\" rel=\"nofollow\">PowerShell Gallery<\/a><\/li>\n<li class=\"rich-diff-level-one\">Our current thoughts on migrating to PowerShellGet 3.0<\/li>\n<\/ul>\n<h2 class=\"rich-diff-level-zero\">PowerShellGet 3.0 Preview Updates<\/h2>\n<p class=\"rich-diff-level-zero\">PowerShellGet 3.0 preview 10 is now available on the PowerShell Gallery. This blog post will cover all of the feature updates since we last published a blog post ( <a class=\"rich-diff-level-one\" href=\"https:\/\/devblogs.microsoft.com\/powershell\/powershellget-3-0-preview-6-release\/\" rel=\"nofollow\">preview 6<\/a>). These versions include completed functionality for updating PSResources, input-object support for installing PSResources as well as several bug fixes. To install the latest version of the module, open any console any run:<\/p>\n<p class=\"rich-diff-level-zero\"><code class=\"rich-diff-level-one\">Install-Module PowerShellGet -AllowPrerelease -Force -Repository PSGallery -SkipPublisherCheck<\/code><\/p>\n<p>&nbsp;<\/p>\n<h3 class=\"rich-diff-level-zero\">What&#8217;s new in the preview releases<\/h3>\n<h4 class=\"rich-diff-level-zero\">New Features<\/h4>\n<ul class=\"added rich-diff-level-zero\">\n<li class=\"rich-diff-level-one\">Completed functionality for Update-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Input-Object parameter for Install-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Add &#8216;sudo&#8217; check for admin privileges in Unix in Install-PSResource<\/li>\n<li>Adds DSCResources<\/li>\n<\/ul>\n<h4 class=\"rich-diff-level-zero\">Bug Fixes<\/h4>\n<ul class=\"added rich-diff-level-zero\">\n<li class=\"rich-diff-level-one\">Improved experience when loading module for different frameworks<\/li>\n<li class=\"rich-diff-level-one\">Bug fix for assembly loading error in Publish-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Allow for relative paths when registering a PSRepository<\/li>\n<li class=\"rich-diff-level-one\">Improved error handling for Install-PSResource and Update-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Remove prerelease tag from module version directory<\/li>\n<li class=\"rich-diff-level-one\">Fix error getting thrown from paths with incorrectly formatted module versions<\/li>\n<li class=\"rich-diff-level-one\">Fix bug with retrieving installed scripts in Get-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Fix bug with AllUsers scope in Windows in Install-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Fix bug with Uninstall-PSResource sometimes not fully uninstalling<\/li>\n<li class=\"rich-diff-level-one\">Change installed file paths to contain original version number instead of normalized version<\/li>\n<li class=\"rich-diff-level-one\">Fix bug related to finding dependencies that do not have a specified version in Find-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Fix bug related to parsing &#8216;RequiredModules&#8217; in .psd1 in Publish-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Improve error handling for when repository in Publish-PSResource does not exist<\/li>\n<li class=\"rich-diff-level-one\">Fix for unix paths in Get-PSResource, Install-PSResource, and Uninstall-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Add debugging statements for Get-PSResource and Install-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Fix bug related to paths in Uninstall-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Bug fix for -ModuleName (used with -Version) in Find-PSResource returning incorrect resource type<\/li>\n<li class=\"rich-diff-level-one\">Make repositories unique by name<\/li>\n<li class=\"rich-diff-level-one\">Add tab completion for -Name parameter in Get-PSResource, Set-PSResource, and Unregister-PSResource<\/li>\n<li class=\"rich-diff-level-one\">Remove credential argument from Register-PSResourceRepository<\/li>\n<li class=\"rich-diff-level-one\">Change returned version type from &#8216;NuGet.Version&#8217; to &#8216;System.Version&#8217;<\/li>\n<li class=\"rich-diff-level-one\">Have Install output verbose message on successful installation (error for unsuccessful installation)<\/li>\n<li class=\"rich-diff-level-one\">Ensure that not passing credentials does not throw an error if searching through multiple repositories<\/li>\n<li class=\"rich-diff-level-one\">Remove attempt to remove loaded assemblies in psm1<\/li>\n<\/ul>\n<h3 class=\"rich-diff-level-zero\">What&#8217;s Next<\/h3>\n<p class=\"rich-diff-level-zero\">We plan to have a minimum of three more releases as we approach general availability (GA) of the 3.0 module. Our next planned release, preview 11 will address\u00a0<a class=\"rich-diff-level-one\" href=\"https:\/\/github.com\/PowerShell\/PowerShellGet\/projects\/10\">these issues<\/a>. Once we are feature complete we will have the release candidate (RC) version. If no high risk or high impact issues are reported after this, we will ship that version of the module (plus any small bug fixes) as the GA version of PowerShellGet 3.0.<\/p>\n<p class=\"rich-diff-level-zero\">Once we reach this important milestone, we will re-evaluate next steps for the module by assessing the flow of incoming issues and re-evaluating issues marked with the &#8220;vNext&#8221; milestone in the repository. After we reach GA of this module, we will continue to invest in making PowerShell&#8217;s package management experience great.<\/p>\n<h3 class=\"rich-diff-level-zero\">Availability in PowerShell<\/h3>\n<p class=\"rich-diff-level-zero\">We plan to begin shipping PowerShellGet 3.0 in PowerShell 7.2 previews. In these releases of PowerShell 7.2 we will include 2 related modules:<\/p>\n<ul class=\"added rich-diff-level-zero\">\n<li class=\"rich-diff-level-one\">PowerShellGet 3.0<\/li>\n<li class=\"rich-diff-level-one\">CompatPowerShellGet<\/li>\n<\/ul>\n<h3 class=\"rich-diff-level-zero\">Introducing CompatPowerShellGet<\/h3>\n<p class=\"rich-diff-level-zero\">CompatPowerShellGet is a compatibility module that allows use of PowerShellGet 2.x (and below) cmdlet syntax with PowerShellGet 3.0 (and newer) functionality by making a best effort mapping between the cmdlet interfaces of both versions of the module. For example, if a user has the CompatPowerShellGet module installed and runs the command:\u00a0<code class=\"rich-diff-level-one\">Install-Module PowerShellGet -MinimumVersion 1 -MaximumVersion 2 -AllowPrerelease<\/code>\u00a0The CompatPowerShellGet module will get auto loaded into the PowerShell Session and will map the command to PowerShellGet 3.0 syntax:\u00a0<code class=\"rich-diff-level-one\">Install-PSResource PowerShellGet -Version \"[1,2]\" -Prerelease\"<\/code>\u00a0The command will then be executed by the PowerShellGet 3.0 implementation. The user will also get a warning to update their script to the new cmdlet interface:\u00a0<code class=\"rich-diff-level-one\">WARNING: The cmdlet 'Install-Module' is deprecated, please use 'Install-PSResource\u2019.<\/code><\/p>\n<p class=\"rich-diff-level-zero\">This module is designed so that users will not need to immediately update their scripts in order to update to the latest version of PowerShell or to begin taking advantage of the performance improvements already available in PowerShellGet 3.0. We still do recommend that authors begin making the minimal changes required to update their scripts to the new cmdlet interface.<\/p>\n<p class=\"rich-diff-level-zero\">This compatibility module is designed so that it takes precedence over legacy versions of PowerShellGet. If you have this compatibility module installed and would not like it to be used, you can remove it from the PowerShell session using the\u00a0<code class=\"rich-diff-level-one\">Remove-Module<\/code>\u00a0command.<\/p>\n<p class=\"rich-diff-level-zero\">Please note that this flow is only possible if the user has both the CompatPowerShellGet module installed and the PowerShellGet 3.0 preview module installed. Once PowerShellGet 3.0 is generally available it will be a dependency of CompatPowerShellGet.<\/p>\n<p class=\"rich-diff-level-zero\">Please also note that this compatibility module will not be called if you use fully qualified cmdlets. For example, if you use\u00a0<code class=\"rich-diff-level-one\">PowerShellGet\\Install-Module<\/code>\u00a0this will call a legacy version of PowerShellGet. If this is a common scenario for you, and will be a barrier to migrating to PowerShellGet 3.0 we would appreciate that feedback in our\u00a0<a class=\"rich-diff-level-one\" href=\"https:\/\/github.com\/PowerShell\/PowerShellGet\/issues\">GitHub repository<\/a><\/p>\n<h4 class=\"rich-diff-level-zero\">Goals of Migration to PowerShellGet 3.0<\/h4>\n<p class=\"rich-diff-level-zero\">While creating a migration plan for PowerShellGet users we had the following goals in mind.<\/p>\n<ul class=\"added rich-diff-level-zero\">\n<li class=\"rich-diff-level-one\">Have the quality of PowerShellGet 3.0 be so high that users want to migrate their scripts<\/li>\n<li class=\"rich-diff-level-one\">Reduce friction for users to take immediate advantage of improvements in PowerShellGet 3.0<\/li>\n<li class=\"rich-diff-level-one\">Not break any scripts in the short term for user who adopt the latest available version of PowerShell<\/li>\n<li class=\"rich-diff-level-one\">Create a low friction migration path for script and module owners<\/li>\n<li class=\"rich-diff-level-one\">Have a single, widely used version of PowerShellGet (for supportability, and improvement reasons)<\/li>\n<\/ul>\n<p class=\"rich-diff-level-zero\">Look forward to the next blog post (coordinated with our RC release of PowerShellGet 3.0) detailing the feature and performance improvements in PowerShellGet 3.0. We hope this post will give insight into why we believe users will have the best possible experience by migrating to PowerShellGet 3.0.<\/p>\n<h4 class=\"rich-diff-level-zero\">Migration Timeline<\/h4>\n<p class=\"rich-diff-level-zero\">Beginning with PowerShell 7.2 preview 1 release we will ship the latest versions of the PowerShellGet 3.0 and CompatPowerShellGet modules.<\/p>\n<p class=\"rich-diff-level-zero\">As we continue to track usage and feedback around the compatibility layer, as well as the PowerShellGet 3.0 module, we hope to move towards a long term goal of only shipping the latest version of PowerShellGet in new versions of PowerShell.<\/p>\n<h2 class=\"rich-diff-level-zero\">Feedback and Support<\/h2>\n<p class=\"rich-diff-level-zero\">At this stage in our development of the module user feedback is critical. For support or feedback on PowerShellGet please open an issue in this\u00a0<a class=\"rich-diff-level-one\" href=\"https:\/\/github.com\/PowerShell\/PowerShellGet\">GitHub repository<\/a>. For support or feedback on the CompatPowerShellGet module, or the migration plan please open an issue in this\u00a0<a class=\"rich-diff-level-one\" href=\"https:\/\/github.com\/PowerShell\/CompatPowerShellGet\">GitHub Repository<\/a>.<\/p>\n<p class=\"rich-diff-level-zero\">Sydney Smith<br class=\"rich-diff-level-one\" \/>PowerShell Team<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog post we are excited to share: PowerShellGet 3.0 preview 10\u00a0is now available on the PowerShell Gallery CompatPowerShellGet\u00a0compatibility module is now publicly available on\u00a0GitHub\u00a0and\u00a0PowerShell Gallery Our current thoughts on migrating to PowerShellGet 3.0 PowerShellGet 3.0 Preview Updates PowerShellGet 3.0 preview 10 is now available on the PowerShell Gallery. This blog post will cover [&hellip;]<\/p>\n","protected":false},"author":2299,"featured_media":13641,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[274],"class_list":["post-18589","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","tag-powershellget"],"acf":[],"blog_post_summary":"<p>In this blog post we are excited to share: PowerShellGet 3.0 preview 10\u00a0is now available on the PowerShell Gallery CompatPowerShellGet\u00a0compatibility module is now publicly available on\u00a0GitHub\u00a0and\u00a0PowerShell Gallery Our current thoughts on migrating to PowerShellGet 3.0 PowerShellGet 3.0 Preview Updates PowerShellGet 3.0 preview 10 is now available on the PowerShell Gallery. This blog post will cover [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/18589","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/users\/2299"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=18589"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/18589\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/13641"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=18589"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=18589"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=18589"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}