- 14 Mar 2023
- 2 Minutes to read
- Updated on 14 Mar 2023
- 2 Minutes to read
What is UPack
UPack is a technology-neutral packaging platform that allows you to deploy your applications and components uniformly across different environments for consistent deployment and testing.
Package your applications and components directly from the Visual Studio Extension or Jenkins plug-in, or use free and open-source tools such as Universal Package Explorer or the cross-platform UPack Command-line Interface.
Include any metadata, such as the Git branch name or commit ID, or custom package information; or even extend the package format itself to provide content and functionality within your own applications and services using UPackLib.NET or the API.
Securely distribute your packages to any number of clients and endpoints using ProGet's universal feeds, or simply store them on disk or a network share. Use virtual packages to mix and match other packages and external content to simplify and standardize distribution.
You can use upack or UPackLib.NET to find out which packages have been installed on a machine. NET shows you where the package came from, which tool installed it, and which user triggered the installation. Universal Packages also have a built-in audit history that lets you track changes or repackaging back to the source.
Universal Package Feeds are designed to provide out-of-the-box, out-of-the-box functionality for most packaging needs and also serve as a platform that you can easily extend or interact with.
Universal Feed API Versions
|1.5.0||Added version ranges to |
|1.3.0||Added Feed Metadata Endpoint|
Added Download VPack Endpoint
|1.2.0||Added Virtual Packages|
Added package hash to package identification string (dependencies, package history)
|1.1.0||Added Download Package File Endpoint|
Universal Package Versions
The Universal Package Files themselves are designed to be both backward- and forward-compatible. This is easy to do because the minimum requirements for a Universal Package are incredibly low. Therefore, changes will always be additive and their use will be optional.
In the extremely unlikely event that a future version of this specification is incompatible (we can think of absolutely no reason why this would ever be the case), it would likely be released in a completely different format (e.g., with the .upack2 extension).
All UPack tools adhere to the following specifications. The specifications have been designed to be easy to understand and implement for your own use cases.
A ZIP archive containing any type of content, along with a simple JSON-formatted manifest file describing that content with built-in or additional metadata.
A JSON-formatted file behaves like a universal package, but its contents are downloaded and compiled at install time.
A JSON-formatted file that describes which packages are installed in a given context (on a server, in an application), when they were installed, who installed them, and why they were installed. It also contains a package cache in case packages need to be reinstalled or audited.
An HTTP-based API that's used to list, download, and publish universal package files in a web-based package manager such as ProGet.