Skip to content

Scone Semantic Versioning

Following Semantic Versioning, the SCONE platform is automatically assigned a version number

SCONE_VERSION_NUMBER = MAJOR.MINOR.PATCH

whereby

  • MAJOR is incremented when some breaking change happens like an underlying protocol changes or we disable some deprecated feature.
  • MINOR is incremented whenever we add a new feature that is backward compatible.
  • PATCH is incremented whenever we fix some bug or cleanup the code.

The version is automatically computed by our system, i.e., for each release our build system computes the new version of the platform. Since we started to release periodically (the current plan is every week), you will see a frequent increase in version numbers. This does not mean that clients of the SCONE platform need to update every week as well.

Setting your own speed of upgrades

We keep the old version of our curated docker images on docker hub and in this way, everybody can set their own speed for upgrading to newer versions of SCONE. One can stay, for example, cutting edge with the newest version of SCONE or one can upgrade only if a new major version is released.

Our recommendation is to upgrade all your images at the same time to the same SCONE version. In particular, try to avoid to mix and match versions with two different major versions. Moreover, we recommend to integrate the upgrade process into your CI (Continuous Integration) pipeline: try to upgrade to newer versions automatically to ensure that you stay up-to-date with bug fixes. If you do so, pull in your application a specific image version and even better the image with the specific image digest that you tested in your CI pipeline.

The most important point is to always upgrade SCONE CAS (Configuration and Attestation Service) first! This ensures that in case we introduce a breaking change that SCONE CAS can attest new applications as well as old applications (that are not yet updated). While we might have some fallback such that an older CAS can attest a newer version of an application, we strongly recommend to first upgrade CAS before upgrading an application.

SCONE CURATED IMAGE VERSIONING

Each of the SCONE curated images has a version number. Actually, we push the same image with multiple names to support multiple pull / upgrade strategies. For example, consider image pypy3. We are releasing different versions of pypy3 for different versions of Alpine Linux and for different versions of the SCONE platform - just to make sure that everybody can find the version they need:

Image name = {Application Name and Version}-{Operating System Version}[-SCONE Versions]

For the application, we might define various versions like:

  • pypy3: latest supported pypy3 version - use this if you want to keep cutting edge
  • pypy3-6: latest supported pypy3 version with major version 6
  • pypy3-6.0: latest supported pypy3 version with major version 6 and minor version 0
  • pypy3-6.0.0: pypy3 version 6.0.0 - use this if you do not want to upgrade automatically

For the operating system, we might define various versions like:

  • alpine3.6: an old, stable version of Alpine Linux
  • alpine3.7: a little less old, stable version of Alpine Linux
  • ...
  • alpine: the latest stable version of Alpine Linux that we support - use this to keep up to date with current image.
  • alpine-edge: the newest, not yet stable version of Alpine Linux (i.e, development version of Alpine) - use this for example in development if you need the newest version of an image.

For the SCONE platform itself, we will provide various versions:

  • EMPTY: do not specify the SCONE version if you want to keep up to date with the most recent version of the SCONE platform
  • -scone2: latest supported SCONE version with major version 2
  • -scone3: latest supported SCONE version with major version 3
  • ...
  • -scone2.0: latest supported SCONE version with major version 2 and minor version 0
  • -scone2.1: latest supported SCONE version with major version 2 and minor version 1
  • ...
  • -scone2.0.0: SCONE version 2.0.0 - use this if you do not want to upgrade automatically to any other version than 2.0.0
  • -scone2.0.1: SCONE version 2.0.1 - use this if you do not want to upgrade automatically to any other version than 2.0.1
  • ...

Note that not all version combinations will be available in the community version of the SCONE platform.