{"id":7744,"date":"2022-08-03T09:00:33","date_gmt":"2022-08-03T16:00:33","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/commandline\/?p=7744"},"modified":"2022-11-30T07:58:59","modified_gmt":"2022-11-30T15:58:59","slug":"windows-package-manager-1-3","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/commandline\/windows-package-manager-1-3\/","title":{"rendered":"Windows Package Manager 1.3"},"content":{"rendered":"<p>Today I get to announce Windows Package Manager 1.3 has been released. The team has been adding several enhancements to manifests to improve your package installation experience. We\u2019ve enabled better package version reporting. A new setting allows verbose logs to be on by default. If you run <code>winget --info<\/code> the system architecture is now displayed. The progress bar was improved with more fine-grained blocks. And the Windows Package Manager now supports portable applications.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/winget-1.3.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/winget-1.3.png\" alt=\"Running `winget` in Windows Terminal\" width=\"1153\" height=\"657\" class=\"alignnone size-full wp-image-7800\" srcset=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/winget-1.3.png 1153w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/winget-1.3-300x171.png 300w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/winget-1.3-1024x583.png 1024w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/winget-1.3-768x438.png 768w\" sizes=\"(max-width: 1153px) 100vw, 1153px\" \/><\/a><\/p>\n<h2>Manifest Improvements<\/h2>\n<h3>Display Documentation<\/h3>\n<p>Some packages include documentation associated with a package version. You will now be able to see the documentation and an associated URL when you run <code>winget show &lt;package&gt;<\/code>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Display-Documentation-1.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Display-Documentation-1.png\" alt=\"Documentation displayed via `winget show`\" width=\"1734\" height=\"987\" class=\"alignnone size-full wp-image-7765\" srcset=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Display-Documentation-1.png 1734w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Display-Documentation-1-300x171.png 300w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Display-Documentation-1-1024x583.png 1024w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Display-Documentation-1-768x437.png 768w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Display-Documentation-1-1536x874.png 1536w\" sizes=\"(max-width: 1734px) 100vw, 1734px\" \/><\/a><\/p>\n<h3>Installation Notes<\/h3>\n<p>Most command-line packages require a terminal restart for the environment variables to be loaded. Some other packages have nuances related to what a user should understand before running them the first time. Installation notes will be displayed after the package is installed. We\u2019ve also added arguments and settings to manage these notes. The default behavior is to display these notes. You can add \u201csuppressInstallNotes\u201d as a setting to prevent them from being displayed. You can also pass \u201c&#8211;display-notes\u201d or \u201c&#8211;suppress-notes\u201d to override settings.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Installation-Notes-1.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Installation-Notes-1.png\" alt=\"Installation Notes after an installation\" width=\"1155\" height=\"657\" class=\"alignnone size-full wp-image-7767\" srcset=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Installation-Notes-1.png 1155w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Installation-Notes-1-300x171.png 300w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Installation-Notes-1-1024x582.png 1024w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Installation-Notes-1-768x437.png 768w\" sizes=\"(max-width: 1155px) 100vw, 1155px\" \/><\/a><\/p>\n<h3>Expected Return Code Response URL<\/h3>\n<p>Most .exe-based installers can provide custom responses for various failure scenarios. We\u2019ve added an enhancement to provide not only a standard error message, but now a URL can also be included. We\u2019re hoping this will help with troubleshooting why something didn\u2019t go quite right. Manifest authors can add a \u201cReturnResponseURL\u201d to the array of \u201cInstallerReturnCode\u201d values.<\/p>\n<p><strong><em>Note:<\/em><\/strong> The following example shows an error that was intentionally forced to occur.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Expected-Return-Code-Response-URL.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Expected-Return-Code-Response-URL.png\" alt=\"Expected Return Code Response URL displayed\" width=\"1387\" height=\"250\" class=\"alignnone size-full wp-image-7761\" srcset=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Expected-Return-Code-Response-URL.png 1387w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Expected-Return-Code-Response-URL-300x54.png 300w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Expected-Return-Code-Response-URL-1024x185.png 1024w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/Expected-Return-Code-Response-URL-768x138.png 768w\" sizes=\"(max-width: 1387px) 100vw, 1387px\" \/><\/a><\/p>\n<h2>New Settings<\/h2>\n<p>The Windows Package Manager settings file is opened with your default JSON editor when you run <code>winget settings<\/code>. If you happen to have Visual Studio Code installed and configured, you also get the benefit of the JSON schema for tooltips and code completion. If you don\u2019t, you can run <code>winget install vscode<\/code>.<\/p>\n<h3 id=\"installation-notes-1\">Installation Notes<\/h3>\n<p>The Windows Package Manager was designed to behave in a predictable manner by default and give users the ability to customize those behaviors. The \u201csuppressInstallNotes\u201d setting was added for users who prefer not to see install notes included in manifests.<\/p>\n<h3>Verbose Logs<\/h3>\n<p>If you add \u201c&#8211;verbose-logs\u201d to any command, the Windows Package Manager adds additional information to the logs. This is often helpful for troubleshooting or digging deeper into exactly what the Windows Package Manager is doing. Users can now specify what level of logging they want. The \u201cLogging\u201d levels available are \u201cverbose\u201d, \u201cinfo\u201d, \u201cwarning\u201d, \u201cerror\u201d, and \u201ccritical\u201d.<\/p>\n<h2>New Version Reporting<\/h2>\n<p>Some packages like the Microsoft .NET SDK display versions to users that are slightly different from their build numbers. Unfortunately, this caused confusion during the upgrade process, and it caused frustration for manifest authors. The Windows Package Manager will now honor the preferred version publishers would like to display, and the tooling will still be able to make the correct comparisons when determining if a newer version is available.<\/p>\n<p>In the example below from Windows Apps &amp; Features, you can see the Microsoft .NET Runtime packages and the Microsoft .NET SDK package versions displayed start with \u201c6.0\u201d. The but the Microsoft .NET SDK version below the display name starts with \u201c6.3\u201d. Manifests can now use the display version (\u201cpackageVersion\u201d in the manifest) to show users what version is installed or which upgrade is available, but it can still use the build version (\u201cdisplayVersion\u201d manifest key from the registry and \u201cAppsAndFeatures\u201d from the manifest) for comparison.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/AppsAndFeatures.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/AppsAndFeatures.png\" alt=\"AppsAndFeatures filtered on Microsoft.NET\" width=\"1050\" height=\"675\" class=\"alignnone size-full wp-image-7751\" srcset=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/AppsAndFeatures.png 1050w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/AppsAndFeatures-300x193.png 300w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/AppsAndFeatures-1024x658.png 1024w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/AppsAndFeatures-768x494.png 768w\" sizes=\"(max-width: 1050px) 100vw, 1050px\" \/><\/a><\/p>\n<h2>Display System Architecture<\/h2>\n<p>Not all packages run natively on every architecture. Sometimes packages are run under emulation. We\u2019ve updated <code>winget --info<\/code> so it now displays the system architecture so you can quickly see what architecture your hardware has. This might help with troubleshooting why a particular package doesn\u2019t have a matching installer, or why it might not behave exactly as you expect.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/Architecture.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/Architecture.png\" alt=\"Running `winget --info` displays system architecture.\" width=\"1153\" height=\"657\" class=\"alignnone size-full wp-image-7802\" srcset=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/Architecture.png 1153w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/Architecture-300x171.png 300w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/Architecture-1024x583.png 1024w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/08\/Architecture-768x438.png 768w\" sizes=\"(max-width: 1153px) 100vw, 1153px\" \/><\/a><\/p>\n<h2>An Even Better Progress Bar<\/h2>\n<p>One of our most popular features is the customizable progress bar. Thanks to a community contribution, it just got better. Additional fine-grained blocks make that progress bar buttery smooth. If you didn\u2019t know, you can customize your progress bar in settings. I use:<\/p>\n<p>&#8220;visual&#8221;: {&#8220;progressBar&#8221;: &#8220;rainbow&#8221;}<\/p>\n<p>Don\u2019t worry, all the styles get the improved progress bar.<\/p>\n<h2>Support for Portable Packages<\/h2>\n<p>Is there a portable package you wish you could manage with the Windows Package Manager? These are essentially just executable programs that don\u2019t have an installer. Maybe you would like to <code>winget install Microsoft.NuGet<\/code> or <code>winget upgrade Microsoft.NuGet<\/code>. We wanted to make sure you could manage these portable packages, so we add the appropriate entries in Windows Apps &amp; Features when you install them. That allows you to see them as installed applications. You can even uninstall them from there if you don\u2019t want to type <code>winget uninstall Microsoft.NuGet<\/code>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/uninstall.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/uninstall.png\" alt=\"Uninstall via Apps &#038; Features\" width=\"1050\" height=\"676\" class=\"alignnone size-full wp-image-7771\" srcset=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/uninstall.png 1050w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/uninstall-300x193.png 300w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/uninstall-1024x659.png 1024w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/uninstall-768x494.png 768w\" sizes=\"(max-width: 1050px) 100vw, 1050px\" \/><\/a><\/p>\n<p><strong><em>Note:<\/em><\/strong> We\u2019ve added Microsoft.NuGet to the repository so you can test this out. It will fail on Windows Package Manager versions lower than 1.3 as shown in the image below.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/error.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/error.png\" alt=\"Error on 1.2 when trying to install a portable package\" width=\"1155\" height=\"657\" class=\"alignnone size-full wp-image-7774\" srcset=\"https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/error.png 1155w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/error-300x171.png 300w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/error-1024x582.png 1024w, https:\/\/devblogs.microsoft.com\/commandline\/wp-content\/uploads\/sites\/33\/2022\/07\/error-768x437.png 768w\" sizes=\"(max-width: 1155px) 100vw, 1155px\" \/><\/a><\/p>\n<h3>Submitting Manifests for Portable Packages<\/h3>\n<p>The Windows <a href=\"https:\/\/github.com\/microsoft\/winget-pkgs\" rel=\"noopener\" target=\"_blank\">Package Manager Community Repository<\/a> will begin accepting submissions for other portable packages after the upgrade has rolled out to a majority of the user base. This should take about one week. If you want to submit a pull request, go ahead. We\u2019ll mark it as blocked for now, and as soon as we begin to accept portable packages, we will run them all through validation.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I get to announce Windows Package Manager 1.3 has been released. The team has been adding several enhancements to manifests to improve your package installation experience. We\u2019ve enabled better package version reporting. A new setting allows verbose logs to be on by default. If you run winget &#8211;info the system architecture is now displayed. [&hellip;]<\/p>\n","protected":false},"author":27535,"featured_media":7800,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,1535,1728,5,1577],"tags":[29,1548,1576,1579],"class_list":["post-7744","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-commandline","category-open-source","category-windows","category-windows-10","category-windows-package-manager","tag-command-line","tag-open-source","tag-windows-package-manager","tag-winget"],"acf":[],"blog_post_summary":"<p>Today I get to announce Windows Package Manager 1.3 has been released. The team has been adding several enhancements to manifests to improve your package installation experience. We\u2019ve enabled better package version reporting. A new setting allows verbose logs to be on by default. If you run winget &#8211;info the system architecture is now displayed. [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/posts\/7744","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/users\/27535"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/comments?post=7744"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/posts\/7744\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/media\/7800"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/media?parent=7744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/categories?post=7744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/commandline\/wp-json\/wp\/v2\/tags?post=7744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}