It is necessary to have a unified way to version the artifacts produced by different OPNFV projects and store them on OPNFV Artifact Repository and Docker Hub.
The artifacts that are produced are including but not limited to
Only the released OPNFV artifacts were versioned for the Arno release. In order to track and record produced and used versions of artifacts, it is needed to apply versions to artifacts produced during development as well.
OPNFV uses Semantic Versioning to version released artifacts as shown below.
<release_name>.<minor>.<patch>
This essentially becomes
<major>.<minor>.<patch> = <release_name>.<minor>.<patch>
For example for Brahmaputra release, the released artifacts will be versioned like below
R1: brahmaputra.1.0 SR1: brahmaputra.2.0
The proposal to step version numbers as below:
An example scenario for Brahmaputra and C-River releases can be seen on below diagram.
Please note that functionality/NBC changes have not been taken into account for the above scenario.
Releng will provide a script which will calculate the next version to use by checking the latest version that exists on OPNFV Artifact Repository and/or Docker Hub and stepping it by one.
In order to increase the traceability and make cross referencing between artifacts and source code easier, it is possible to apply tags to git repo on SHA1 that is used for building certain version of the artifact.