We have been hard at work building new experimental features for the Windows Package Manager. We have just released the Windows Package Manager v0.3 Preview. I would like to share the first major feature to exit experimental status. I also have the privilege of announcing support for Group Policy.
What’s New
Introducing Import
I have been through several Windows 10 environments over the last year. It is hard to describe how much pleasure I felt with the simplicity of winget install
as I set a new build up so I can become productive. Things have just gotten better with the Windows Package Manager v0.3 Preview. Now I use winget import
, and I can easily help others save time modifying those install scripts.
The import file format is JSON. We have provided a schema to make it easier to author and modify these files. They can include packages from multiple sources. You can also specify the exact version of a package to install on your machine.
Announcing Group Policy
One of the most important concerns facing enterprise customers is the ability to manage all the Windows 10 machines in their organization. With this release, IT professionals can configure Group Policy via ADMX ingestion. The .admx and .adml files are available to download in a .zip file at the GitHub releases page starting with the Windows Package Manager v0.3 Preview.
If you are running Windows 10 build 1809 and later, you should evaluate and configure these policies for your enterprise. The Windows Package Manager is distributed via the App Installer. When we ship 1.0, this will be an automatic update from the Microsoft Store to all 1809 and later devices.
These policies empower an organization to manage the Windows Package Manager, control the availability or behavior of several commands and arguments, as well as what sources the client connects to. I’ve included a screenshot from the Local Group Policy Editor below.
Experimental Features
We’ve implemented a feature toggle so you can try new features out and give us feedback. You can run winget features
to see what’s available. If you execute winget settings
your JSON editor will launch.
List
You can use winget list
to display the same list of installed apps found in your Add/Remove Programs in Windows 10. This command also takes several arguments including a search string. I’ve provided an example below showing PowerToys, Windows Terminal Preview, and Windows Terminal all installed on my system. This command is pivotal for the next few experimental features. As you can imagine, mapping all of the legacy applications on your machine with a manifest in the community repository is a daunting task to achieve. We expect to continue iterating in this area over time to continue improving the matching logic.
Upgrade
I love PowerShell. Occasionally, when I start up a new Windows Terminal session, I get a notice that a new version of PowerShell is available. What really gets me excited is when I see that notification, I know I can just winget upgrade Microsoft.PowerShell
. Of course, right after I hit [Enter] I remember the upgrade is going to abort my session. We have some more work to do here.
Uninstall
I mentioned how I wanted to get the space back on my C: drive by removing things I don’t need from my system. With this feature enabled you too can winget uninstall "some giant app"
. The truly great thing to point out here is that it doesn’t matter how you installed that giant application either.
Export
Our goal with winget export
is to make it easy to get the collection of packages installed on one machine so you can import them on another. This is where we have the most work related to the list command. Only a small subset of the programs installed on my Windows 10 system have good matching entries with the community repository. This is one of the main reasons we have experimental features. After a long scrolling list of “Installed package is not available from any source: “some program name” I have an output file I can work with.
What’s Next
When I look at our backlog (filtered to Features with the most 👍) it’s pretty easy to see what we need to tackle next. Right up in the top 10 Issues along with the ones we’re working on, I see .zip & .exe support, native PowerShell support, and dependencies. If you have a feature request, look at our backlog and add your “thumbs up”. If you can’t find the feature you’re looking for, create a new Issue.
How to get the Windows Package Manager
If you are a Windows Insider or part of our Package Manager Insider program, you should already have the latest version. The Windows Package Manager is delivered in the App Installer via the Microsoft Store. If you prefer to just download the client, head on over to the GitHub releases page and take it for a spin. You can also join the Windows Package Manager Insider Program if you’d like automatic updates from the store, and you want to run on a released version of Windows 10.
Be sure to check out the GitHub client issues and add a “+1” to any features you’d really like to see. If you encounter a bug in the Windows Package Manager v0.3 Preview you can use Feedback Hub ([Windows]+[f]) to let us know about the problem. Select “Apps” and “Windows Package Manager” in the “Choose a category” section to report the issue.
Love this release. One minor issue where it looks like build-level version numbers aren't correctly reflected in the upgrade list:
For all of the packages below, there were upgrades pending, I did the upgrades and in some cases upgrades were installed, for others it said no updates were pending... but the winget upgrade list still says there's an upgrade available. I suspect it is just that the version sniff on the installed version isn't including the...
Love it!
Can you compare/contrast this to programs like get-package (PS), nuget, oneget, etc. ?
It seems the link to the schema (https://aka.ms/winget-packages.schema.json) does not work.
Should probably be https://aka.ms/winget-manifest.singleton.1.0.0.schema.json