This is a procedure for release of all TMT repositories. Each repository has it's own RELEASING.md file checked in
which states releasing procedure for that particular repository in detail.
Release TMT software repositories in following order because of interdependency between repos. So after release, version in dependent repos need to be updated. For example, After release of msocket, update msocket version in csw before releasing csw.
- msocket
- embedded-keycloak
- sbt-docs
- kotlin-plugin
- rtm
- CSW
- pycsw
- csw-c
- csw.g8
- ESW
- ESW-web-app-template.g8
- esw-web-app-example
- esw-ts
- esw-gateway-ui-template.g8
- esw-gateway-ui-example
- sequencer-scripts
- esw-ocs-eng-ui
- esw-observing-simulation
Note: After the release of above repos, upgrade the versions in the apps.json(Only if it is the final release e.g., 4.0.0 etc.)
- Upgrade third party repo versions. (libs + plugins)
- Check for unused library dependencies if any.
- Check
release.ymlfor any modifications needed. - Update
Releasing.mdif any new release step is added for each repo.
- Dev pipeline is green.
- Tagging of repository is done using
release.shchecked in inside each repository. - Follow semantic versioning scheme. major.minor.patch version. Each tag version is prefixed with
v. - For repos which don't have any changes, we can skip release for those repositories and use previously released version.
If a third party lib/ plugin has milestone release after latest stable / rc releases. Correct default is to pick latest stable version of it.
For ex: A library has
- Latest Milestone Version : 7.4.0-M4
- Latest Stable Version : 7.3.2 <= will be picked in the next release