UPack Documentation

UPack Overview

  • Last Modified: 2020-03-30

UPack is a technology-neutral packaging platform that allows you to uniformly distribute your applications and components across environments to enable consistent deployment and testing.


Universal Package Feeds were designed to be provide immediate, out-of-the-box functionality for most packaging needs, and also to serve as a platform that you can easily extend or interact with.

Universal Feed API Versions

Version Notes
1.4.0 Added shortDescription to package manifest
1.3.0 Added Feed Metadata Endpoint
Added Download VPack Endpoint
1.2.0 Added Virtual Packages
Added tags to packages
Added Repackaging
Added package hash to package identification string (dependencies, package history)
1.1.1 Increased group length from 50 to 250
1.1.0 Added Download Package File Endpoint
1.0.0 Introduction

Universal Package Versions

The Universal Package Files themselves are designed to be both backwards- and forwards-compatible. This is easily accomplished because the minimum requirements for what makes a universal package are incredibly minimal. Thus, changes will always be additive and their usage will be optional.

In the extremely unlikely event that a future version of this specification is not compatible (we can think of absolutely no reason this would ever be), these would likely be exposed as a totally different format (like a .upack2 extension).

UPack Specifications:

All of the UPack tools adhere to the following set of specifications. The specifications were designed to be easy to understand and implement for your own use cases.

Universal Package

A ZIP archive containing any sort of content, along with a simple, JSON-formatted manifest file describing that content using built-in or additional metadata.

Virtual Package

A JSON-formatted file that behaves like a universal package, but with contents that are downloaded and assembled at install time.

Universal Package Registry

A JSON-formatted file that describes what packages are installed in a particular context (on a server, in an application), as well as when it was installed, who installed it, and why it was installed. It also provides for a package cache, in case packages need to be reinstalled or audited.

Universal Feed

An HTTP-based API used to list, download, and publish universal package files to a web-based package manager like ProGet.

Is this documentation incorrect or incomplete? Help us by contributing!

This documentation is licensed under CC-BY-SA-4.0 and stored in GitHub.

Generated from commit 50ab5958 on master