-
Notifications
You must be signed in to change notification settings - Fork 4
Components Versioning
The entire Sirius Test Automation Platform is designed to use modular structure where each specific module can be developed independently on the others. At the same time there's a need of the snap of the entire platform to make some common base line. This leads to the following release types:
- Component release - the release of component in isolation from others. It is performed during the development on regular basis after some specific set of commits. If build is successful it is published at the remote storage (either Maven repository or different package manager storages like NuGet or RubyGems ).
- Platform Release - the release of all components simultaneously making the base line for all component versions. It is done on demand and performed less frequently than component releases. Also, it's reflected with the publication of the entire archive on the downloads page in addition to publications to package manager repositories. In this release type all the components have the same version which indicates that they are part of the entire platform release.
Both those release types require different versioning to be able to indicate what the release type the specific version belongs to.
Each component in isolation is versioned using 3-number identifier which has the following structure:
<Major Version>.<Minor Version>.<Build Number>
Where:
- Major Version - the major component version which is switched annually
- Minor Version - the minor component version which is switched on monthly basis
- Build Number - the number of the build done for current component
Each platform release is versioned using 4-number notation. Since these are not frequent releases they're mostly reflect the date of the release. So, the version number reflects the date and uses the following format:
YYYY.M.D.N
Where:
- YYYY - 4-digit year of the release
- M - the number of month where release was performed
- D - the day of month number where the release was performed
- N - the number of the release performed during the day. In some cases there's a need to re-release the platform. So, in order to keep versions consistent this value is used
Given the above information we can get the following from the version number of each particular component:
- Separate component releases are numbered using 3-digit notation
- Platform releases are numbered with 4-digit notation and the same version number can be found for every platform component which was involved into the platform release