WIP: Semantic release numbering (GONRG-819)
Change Type:
-
Feature -
Bugfix -
Refactoring
Context and Scope
All OSDU microservices projects developed by the community. Those microservices are in the active development by different teams simultaneously, and when being merged to the community they should be versioned unambiguously and consistently. This is hard to achieve without some central point of registration and computation, and such stuff is not implemented yet.
Decision
Improve release management for all microservices projects by implementation of proposed technical solution and an agreement of proper usage of it in OSDU context.
Rational
We just performed an POC investigation and elaborated a suitable technical solution (scripts & Gitlab CICD template) which can be rather easily applied on the community pipelines.
Consequences
The solution will be implemented to manage release numbering:
- based on principles of Semantic Versioning 2.0.0,
- using technical implementation (script/pipeline template) developed as part of POC by EPAM,
- with involving repositories tags and CICD variables to the action
- by adding several specific steps to all community pipelines
- and sticking special labels (bump-major and bump-minor) to merge requests,
- and causing resulting pipelines' artifacts' names to be composed with produced release numbers inclusions
All CSPs will need to:
- follow the agreed strategy of version numbering (know, when to bump major, minor and patch parts of it);
- refactor pom.xml files (use ${revision} substitution instead of constant version number;
- include versioning solution template to pipelines;
- instruct maintainers to set bump-major and bump-minor labels on MRs