Universal Packages bring large, generic artifact management to VSTS

Until now, Package Management has hosted packages that are part of a development ecosystem: NuGet packages for .NET development, npm packages for Node.js and web frontend development, and Maven packages for Java development. We’re also continuing to expand our support for new development ecosystem, with support for Python’s PyPI packages and more in the coming months.

However, we’ve also seen an unmet need in the market for what we call “a versioned bunch of files”. This might be a tool, a build drop, some AI training data, test data, or pretty much any fileset you can imagine. To meet that need, I’m excited to introduce our new Universal Packages. These packages are a lightweight, easy-to-use, and efficient way to transfer around a file or set of files, without the overhead of a traditional package manager with dependency management and other such features.

Lightweight and efficient

Universal Packages are designed to be a very minimal layer on top of a cloud blob storage provider. They provide a few key benefits:

  • Universal Packages version files together as a set, so you can download that version later and not worry about individual files having been overwritten by a later publish
  • Universal Packages provide client- and server-side deduplication, which can substantially reduce the network traffic you’re using to move files around
  • Universal Packages are published and downloaded through the VSTS CLI, so you can stay in your shell and easily access tools and other files
  • Universal Packages are managed as part of feeds in Package Management, so you can easily control access to them

Preview coming soon

We’re currently testing the first version of Universal Packages to ensure it’s ready for public preview. Keep an eye on the release notes: when Universal Packages is available as a preview feature, we’ll announce it first there.

13