ProGet Documentation

Universal Feeds in ProGet

Super simple package management that’s actually meant for your applications!

Previously, this was done by shoehorning your builds into packages designed for .NET libraries or Maven projects, and using the often-awkward clients . Now, ProGet's Universal Feeds and Packages give you all the same value and control of package managers for your application. You’re able to manage your applications as simply as you develop them.

Universal Packages already support most of the metadata that most organizations need for application packaging, but they allow you to add as much additional metadata as needed. And because they're hosted in a ProGet feed, you can use connectors and retention policies as you would with any other feed.

Universal Feeds as a Platform

In addition to serving as a repository for your application, Universal Feeds and Packages can be easily extended to serve for more specific packaging needs.

Example: Auto-Installing Packages

Although Chocolatey packages are already designed as machine packages, its specific behavior may not be desired by all organizations. Instead of forking and modifying Chocolatey's source code, it may be a lot easier to simply build a platform on top of Universal Packages.

The package format allows any additional metadata or meta-files (such as scripts) in a package, meaning nothing special on the ProGet Universal Feed would need to change. The packages could be manually created or built with a script using another tool.

The installer client could be built with any language, and would use the Universal Feed API to download packages (and, optionally, their dependencies), unzip them, and run a built-in installation script.

Example: Extensions & Plug-ins

As an application release automation tool, BuildMaster has a lot of integrations with Continuous Integration servers, Issue Trackers, etc. These are delivered through a fully proprietary extension gallery that was built long ago... but it would have saved quite a bit of effort to use ProGet's Universal Feeds instead:

Built-in / Universal Data Needed / Extended Data
  • Name
  • Version
  • Title
  • Icon Url
  • Description
  • Download Count
  • Dependencies
  • Compatible SDK Version
  • Extension Source Code URL

Because Universal Feeds allow extended metadata, these two missing metadata elements would be trivially simple to add as properties. Additionally, BuildMaster customers would be able to set-up a Universal Feed in their own ProGet server (perhaps with a connector to Inedo's feed), and then have BuildMaster point to that instead.