Skip to content

Latest commit

 

History

History
27 lines (20 loc) · 2.35 KB

VERSIONING.md

File metadata and controls

27 lines (20 loc) · 2.35 KB

Versioning in the CNB project

For context on how the CNB project thinks about versioning, see RFC#10 and RFC#11. The CNB project versions our spec components and implementations following separate schemas, detailed below:

Spec component versioning

The spec describes two components that are separately versioned. These APIs are versioned as follows:

Platform API Version

Given by CNB platforms to the lifecycle, this version indicates which platform API versions that platform currently support. In review, in PR#67, this version indicates the compatibility between a CNB platform and a given lifecycle according to the following rules:

  • When <major> is 0, the platform is only compatible with lifecycles implementing that exact Platform API.
  • When <major> is greater than 0, the platforms is only compatible with lifecycles implementing platform API <major>.<minor>, where <major> of the lifecycle equals

Buildpack API Version

Documented in the buildpack spec this field indicate compatibility with a given lifecycle according to the following rules:

  • When <major> is 0, the buildpack is only compatible with lifecycles implementing that exact buildpack API.
  • When <major> is greater than 0, the buildpack is only compatible with lifecycles implementing buildpack API <major>.<minor>, where <major> of the lifecycle equals <major> of the buildpack and <minor> of the lifecycle is greater than or equal to <minor> of the buildpack.

Implementation versioning

We aim to release the core implementations of the project at a time-based cadence, per buildpacks/rfcs#33. These implementations are versioned as follows:

  • Pack: Pack is released via Github releases and its versions follow semver conventions.
  • Lifecycle: Pack is released via Github releases and its versions follow semver conventions.
  • libcnb: libcnb is released via Github releases and its versions follow semver conventions.