September 22nd, 2020

Windows Package Manager Preview (v0.2.2521)

Demitrius Nelon
Senior Product Manager

We have been humbled by all the positive support for the Windows Package Manager. You have taken us from zero to over one thousand packages in six months. This is an amazing start to the beginning of an open Windows catalog. Thank you!

Our newest feature is support for installing Apps from the Microsoft Store. Yes, you read that correctly. Our goal is to make it easier to install software on Windows. We also recently released tab completion in PowerShell, and a feature toggle. As we work towards building our 1.0 version I wanted to share the next few features along the roadmap. Our immediate focus is on rounding out critical features. These include list, upgrade, uninstall, and import/export.

I also wanted to share some thoughts we had leading up to Ignite in terms of future enterprise features. We will be enabling Group Policy support so IT professionals can ensure they have the ability to successfully manage their environments. Additional features included in the category of enterprise support are delivery optimization, metered networks, proxy support, and parallel downloads.

What’s New

Feature Toggle

If you would like to try out experimental features, use winget settings to open your default JSON editor. If you don’t have one I’d reccomend running winget install vscode. From there you can enable or disable features. I’ve included an example configuration below with our two experimental features for testing purposes (experimantalCMD, and experimentalArg) as well as the “experimentalMSStore” feature.

Image Experimental Feature Settings
Experimental Feature Settings
Once you’ve enabled the experimentalCMD and the experimentalArg, execute winget experimental --arg to see an example. There is a little “Easter Egg” in the “flag”.

PowerShell autocomplete

You’re going to want to see this next feature in action on your machine. Head on over to the instructions and configure your PowerShell profile, I’ll wait. If the image below doesn’t play, please click on it.

PowerShell Autocomplete

I told you I’d wait. We don’t like unnecessary typing either. This quickly became my favorite way to figure out which versions of a package are available. Type winget[space][tab][space]pow[tab][space]-v[space][tab][tab][tab] and voila.

Microsoft Store

One of our most requested features was the ability to install Apps from the Microsoft Store. We’ve taken the first steps on this journey by adding a curated list of about 300 Apps to a new source. These apps are all free and rated E for everyone. Once you enable the experimental feature, we will automatically add the source for the store manifests. The search will span multiple sources to show results. Below, you will see results for winget search nightingale. Image winget search nightingale Next you will see the installation from the command winget install "Nightingale REST Client". Image winget install nightingale

What’s Next

List

One of the critical features of a package manager is the ability to see what’s been installed. Our challenge here is to include Apps that may have been installed outside of the package manager and are available in the Control Panel or via Add Remove Software. We didn’t want to just consider what was installed via the Windows Package Manager. We will, however, keep track of what we installed so we can help you keep things upgraded to the current version.

Upgrade

Speaking of upgrade, wouldn’t it be nice if you could just winget upgrade powershell or winget upgrade and have all your apps upgraded. We thought so too. One of our more vocal (and helpful) community members (@megamorf) also pointed out you don’t always want a package upgraded. We’re going to give you the option to pin a package to a specific version, so it doesn’t get changed on you.

Uninstall

Sometimes you don’t need or want an app anymore. Generally, in my case, I want the space back on my C: drive. winget uninstall "some giant app" would come in handy. It would be cool if it could remove things that were installed outside of the package manager, so we’re going to see about getting that to work as well.

Import / Export

We couldn’t pass up the opportunity to perform a little more magic for the sake of convenience. It’s getting close to the time where I’ll be getting a new machine for work. I’m looking forward to be able to winget export packages.json from this computer and winget import packages.json on the new one. I’m looking forward to being able to share the results of that one with you.

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. Launch the store and check for updates if you’re an insider and you don’t have it. If you prefer to just download the client, head on over to 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 the 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.

Author

Demitrius Nelon
Senior Product Manager

I'm a product manager at Microsoft working on the Windows Package Manager. I've worked at a few other companies you might have heard of like Amazon, Verizon and VMWare, and a few you might not have heard of like FlashNet and Unbound Technologies. I love building products and digging into useless trivia.

7 comments

Discussion is closed. Login to edit/delete existing comments.

  • Clint Anderson

    Any particular reason you choose to create an inferior product to Chocolatey that directly competes with it rather than just supporting their vastly better open solution?

    • Demitrius NelonMicrosoft employee Author

      From: https://devblogs.microsoft.com/commandline/windows-package-manager-preview/

      "What about insert any other package manager here? We think they are great. If they want to leverage our repository of validated packages, they can. If they want to see how we are doing it, it is open source. We’re open to feedback and suggestions.

      We have already talked with a few of the well-known package manager teams. Chocolatey has a vibrant community with a massive collection of applications, and a rich history supporting both...

      Read more
  • Devin Goble

    The post says “We will, however, keep track of what we installed so we can help you keep things upgraded to the current version.”

    Does this include the possibility of “adopting” software installed by other means and keeping them up to date?

    • Demitrius NelonMicrosoft employee Author

      That depends on whether we can correctly determine an "exact match" for a package, and it's availability via one of your configured sources. For example, if you installed Visual Studio Code via direct download, and the package manager correctly matched that to the package in the default source we could keep it upgraded. If we're not able to determine a match with something installed on a machine with a valid package in one of your...

      Read more
  • Greg Ingram

    Is it possible or planned to also add support to use GitHub Packages or Azure DevOps Artifacts? I could see where you have some private things stored on those platforms you might want to install from. Just curious. Thx

    • Demitrius NelonMicrosoft employee Author

      If I understood your scenario correctly, it sounds like you might want a “source” of your own. It’s likely that will be supported when we implement the REST API.

      • Greg Ingram

        Yes, I could see hosting a few packages on a private GitHub repo and would like to allow co-workers to point to that source to pull down and install. Thx, this is a nifty feature 🙂