{"id":14325,"date":"2018-09-12T11:26:19","date_gmt":"2018-09-12T18:26:19","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/powershell\/?p=14325"},"modified":"2019-11-18T19:02:48","modified_gmt":"2019-11-19T03:02:48","slug":"new-look-and-features-for-powershell-gallery","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/powershell\/new-look-and-features-for-powershell-gallery\/","title":{"rendered":"New Look and Features for PowerShell Gallery"},"content":{"rendered":"<p><span style=\"font-family: Calibri\"><span style=\"color: #000000\">The <\/span><a href=\"https:\/\/powershellgallery.com\/\"><span>PowerShell Gallery<\/span><\/a><\/span><span style=\"font-family: Calibri\"><span style=\"color: #000000\"> and <a href=\"https:\/\/www.powershellgallery.com\/packages\/PowerShellGet\/\">PowerShellGet<\/a> have just been updated to provide new features, performance improvements, and a new modern design.<span> \u00a0<\/span><\/span><\/span><\/p>\n<p><span><span style=\"color: #000000;font-family: Calibri\"><strong>NOTE<\/strong>: This post has important information for publishers in the <i>\u201cAccounts and publishing\u201d<\/i> section.\u00a0<\/span><\/span><\/p>\n<p><figure id=\"attachment_14345\" aria-labelledby=\"figcaption_attachment_14345\" class=\"wp-caption alignnone\" ><a href=\"https:\/\/msdnshared.blob.core.windows.net\/media\/2018\/09\/PSGallery_HomePage_forBlog1.png\"><img decoding=\"async\" width=\"1054\" height=\"368\" class=\"size-full wp-image-14345\" alt=\"PowerShell Gallery Home Page\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/2018\/09\/PSGallery_HomePage_forBlog1.png\" srcset=\"https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2018\/09\/PSGallery_HomePage_forBlog1.png 1054w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2018\/09\/PSGallery_HomePage_forBlog1-300x105.png 300w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2018\/09\/PSGallery_HomePage_forBlog1-768x268.png 768w, https:\/\/devblogs.microsoft.com\/powershell\/wp-content\/uploads\/sites\/30\/2018\/09\/PSGallery_HomePage_forBlog1-1024x358.png 1024w\" sizes=\"(max-width: 1054px) 100vw, 1054px\" \/><\/a><figcaption id=\"figcaption_attachment_14345\" class=\"wp-caption-text\">PowerShell Gallery Home Page<\/figcaption><\/figure><\/p>\n<p><span style=\"margin: 0px;color: black;font-family: 'Calibri',sans-serif\">The PowerShell Gallery is <b>the<\/b> place to find PowerShell code that is shared by the community, Microsoft, and other companies. The site has averaged over 21 million downloads per month for the past 6 months, and has more than 3,800 unique packages available for use. It\u2019s amazing when we consider we were handling just under 4 million downloads in July 2017. We clearly needed to invest in the PowerShell Gallery to support that kind of growth.<\/span><\/p>\n<p style=\"cursor: text\"><span style=\"margin: 0px;color: black;font-family: 'Calibri',sans-serif\">We have been working for some time to improve the performance of the PowerShell Gallery. The result is now available to everyone, and includes new features, performance enhancements, security improvements to accounts and publishing keys, and better alignment with the NuGet.org codebase that we rely on for our service and cmdlets.<\/span><\/p>\n<h2>New features and performance enhancements<\/h2>\n<p><span style=\"color: #000000;font-family: Calibri\">Most users should see an improvement in package download speeds from the PowerShell Gallery. The new release takes advantage of CDN to provide faster downloads, particularly for those outside the United States. This should be most noticeable when installing a module with many dependencies. <\/span><span style=\"color: #000000;font-family: Calibri\">\u00a0<\/span><\/p>\n<p><span style=\"color: #000000;font-family: Calibri\">The new updates include things users have requested for a long time, including:<\/span><\/p>\n<ul type=\"disc\">\n<li style=\"margin: 0px;color: #000000;font-family: 'Calibri',sans-serif;font-size: 11pt;font-style: normal;font-weight: 400\"><span>A <a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/gallery\/how-to\/working-with-items\/manual-download\">manual download<\/a> option from the PowerShell Gallery. It cannot replace install-module \/ install-script, but does solve some specific issues for those with private repositories or older versions of PowerShell. <\/span><\/li>\n<li style=\"margin: 0px;color: #000000;font-family: 'Calibri',sans-serif;font-size: 11pt;font-style: normal;font-weight: 400\"><span>A change to Install-Module and Install-Script to simply install to the current user scope when not running in an elevated PowerShell session. <\/span><\/li>\n<\/ul>\n<p><span style=\"margin: 0px;font-family: 'Calibri',sans-serif;font-size: 11pt\"><span style=\"color: #000000\">The new user experience is more than just a face-lift, as providing a modern UI also improves the performance. The PowerShell Gallery pages now display only the most critical information initially, and move the details to expanding sections in the UI. This makes the pages faster and easier for users to find the content they want to see. <\/span><\/span><b><u><span style=\"color: #000000;font-family: Calibri\"><\/span><\/u><\/b><\/p>\n<h2>Accounts and publishing improvements<\/h2>\n<p><span style=\"color: #000000;font-family: Calibri\">The changes with the most immediate impact in this release are for publishers and users with PowerShell Gallery accounts.\u00a0 <\/span><span style=\"color: #000000;font-family: Calibri\">\u00a0<\/span><\/p>\n<p><span style=\"font-family: Calibri\"><span style=\"color: #000000\"><b><i>Most important:<\/i><\/b> Publishers must update to <\/span><span><a href=\"https:\/\/www.powershellgallery.com\/packages\/PowerShellGet\/\">PowerShellGet module version 1.6.8 or higher<\/a><\/span><\/span><span style=\"color: #000000;font-family: Calibri\"> to publish to the PowerShell Gallery. Older versions of PowerShellGet are fine for find, save, install, and update functions, but not for publishing. \u00a0 <\/span><span style=\"color: #000000;font-family: Calibri\">\u00a0<\/span><\/p>\n<p><span style=\"color: #000000;font-family: Calibri\">The PowerShell Gallery implemented several security best practices:<\/span><\/p>\n<ul type=\"disc\">\n<li style=\"margin: 0px;color: #000000;font-family: 'Calibri',sans-serif;font-size: 11pt;font-style: normal;font-weight: 400\"><span>New API keys you create will have an expiration that ranges from 1 to 365 days. <\/span><\/li>\n<li style=\"margin: 0px;color: #000000;font-family: 'Calibri',sans-serif;font-size: 11pt;font-style: normal;font-weight: 400\"><span>We will not show the value of an API key in the UI, and the value must be copied immediately after creating or regenerating it. <\/span><\/li>\n<li style=\"margin: 0px;color: #000000;font-family: 'Calibri',sans-serif;font-size: 11pt;font-style: normal;font-weight: 400\"><span>Multiple API keys can be created, and defined for specific uses \u2013 such as only being available to publish packages with specific names. <\/span><\/li>\n<li style=\"margin: 0px;color: #000000;font-family: 'Calibri',sans-serif;font-size: 11pt;font-style: normal;font-weight: 400\"><span>Your existing API key will still work, and will be listed as a \u201cFull access API key\u201d. However, you will not be able to view the current API key value or refresh it. If you lose the key value, you will need to create a new key that has an expiration date. <\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: Calibri\"><span style=\"color: #000000\">These changes are explained in more detail in the PowerShell Gallery <\/span><span><a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/gallery\/how-to\/managing-profile\/creating-APIkeys\">documentation<\/a><\/span><\/span><span style=\"color: #000000;font-family: Calibri\">, and are the most significant changes included in this release. <\/span><\/p>\n<p><span style=\"color: #000000;font-family: Calibri\">Account management in the Powershell Gallery is also improved, and adds support for<\/span><\/p>\n<ul type=\"disc\">\n<li style=\"margin: 0px;color: #000000;font-family: 'Calibri',sans-serif;font-size: 11pt;font-style: normal;font-weight: 400\"><span>Two factor authentication for accessing the PowerShell Gallery account. This is a security best practice and is highly recommended.<\/span><\/li>\n<li style=\"margin: 0px;color: #000000;font-family: 'Calibri',sans-serif;font-size: 11pt;font-style: normal;font-weight: 400\"><span>Changing the email address or login account associated with their PowerShell Gallery ID<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: Calibri\"><span style=\"color: #000000\">You can find out more about the new Account settings features <\/span><span><a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/gallery\/how-to\/managing-profile\/managing-account\">here<\/a><\/span><\/span><span style=\"color: #000000;font-family: Calibri\">. <\/span><\/p>\n<h2>Aligning with NuGet<\/h2>\n<p><span style=\"color: #000000;font-family: Calibri\">The previous versions of PowerShell Gallery and PowerShellGet were based on older versions of NuGet. With this change we are aligning much more closely with the current state of the NuGet server and client. Many of the changes listed above \u2013 including the account and API key management \u2013 came directly from the NuGet updates. Another feature NuGet implemented is the ability to delete a package they have published accidentally, within the first hour after publishing. <\/span><\/p>\n<p><span style=\"color: #000000;font-family: Calibri\">\u00a0<\/span><span style=\"color: #000000;font-family: Calibri\">As we move closer to alignment with how NuGet.org works, we expect to provide new features that are available from the NuGet team.\u00a0 Other changes we are considering that are available today at NuGet.org include support for namespaces and organizational accounts. <\/span><\/p>\n<h2>Let us know what you think<\/h2>\n<p><span style=\"font-family: Calibri\"><span style=\"color: #000000\">If you have any feedback on the changes we have made, or future changes we should consider, please do let us know. Visit <\/span><span><a href=\"https:\/\/aka.ms\/PowerShellGalleryIssues\">https:\/\/aka.ms\/PowerShellGalleryIssues<\/a><\/span><\/span><span style=\"color: #000000;font-family: Calibri\"> to review what others are saying, or to let us know of other things we should be looking into.<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The PowerShell Gallery and PowerShellGet have just been updated to provide new features, performance improvements, and a new modern design.  <\/p>\n<p>NOTE: This post has important information for publishers in the \u201cAccounts and publishing\u201d section. <\/p>\n","protected":false},"author":600,"featured_media":14345,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[248,259,274],"class_list":["post-14325","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-powershell","tag-powershell","tag-powershell-gallery","tag-powershellget"],"acf":[],"blog_post_summary":"<p>The PowerShell Gallery and PowerShellGet have just been updated to provide new features, performance improvements, and a new modern design.  <\/p>\n<p>NOTE: This post has important information for publishers in the \u201cAccounts and publishing\u201d section. <\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/14325","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\/600"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/comments?post=14325"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/posts\/14325\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media\/14345"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/media?parent=14325"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/categories?post=14325"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/powershell\/wp-json\/wp\/v2\/tags?post=14325"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}