Skip to content

Version numbers and PX NuGet packages

petroslikidis edited this page May 25, 2021 · 2 revisions

The PX components can be dowloaded as NuGet packages on https://www.nuget.org/.

The PX NuGet packages uses semantic versioning.

Given a version number MAJOR.MINOR.PATCH:

  1. MAJOR version is incremented when incompatible API changes have been made,
  2. MINOR version is incremented when functionality have been added in a backwards compatible manner, and
  3. PATCH version is incremented when backwards compatible bug fixes have been made.

Version 1.0.0 defines the public API for the PX NuGet package. The way in which the version number is incremented after this release is dependent on this public API and how it changes.

Pre-release versions

Before version 1.0.0 of a PX NuGet package is released, pre-release versions may exist. A pre-release version is denoted by appending a hyphen and a string describing the pre-release version:

  • -alpha: Alpha release, typically used for work-in-progress and experimentation.
  • -beta: Beta release, typically one that is feature complete for the next planned release, but may contain known bugs.
  • -rc: Release candidate, typically a release that's potentially final (stable) unless significant bugs emerge.

Pre-release versions may also be incremented. Version 1.0.0-beta.1 may be followed by version 1.0.0-beta.2 and so on.

For more information about semantic versioning, see: https://semver.org/

For more information about NuGet package versioning, see: https://docs.microsoft.com/en-us/nuget/concepts/package-versioning

Deplying new releases of the PX components to nuget.org

Deploying new version is done by doing a release in Github. Then there is an Github action that atomatically checks out the code and build and do a release build of the PX component and finally deplys it to nuget.org.

Please make sure to use a proper tag for the release using samatning versioning for the tag name and prefixed by a v. e.g. v1.0.0

Note that you should not set the version number in the proj file manually any more. Instead we use minver that hooks in the build process and uses the git tags to determine the version.