### Release process 1. Have all your code merged to `develop`. 2. Have the version bumped. (Consult `How to do versioning`) 3. Create a PR to merge `develop` to `master/main`. (Consult `How to create a release PR`) 4. Merge using the `merge` strategy. 5. Create a release (consult `How to create a release`) 6. Wait for the action `Deploy to DockerHub` to finish. 7. A deployable docker image has been created. --- ### How to do versioning - The proper format is `0.X.Y`. - `X` is a major version and `Y` is a minor version. - `0.X.0` has breaking changes with the previous version; - ??`0.X.Y` are patches, fixes and new features without breaking changes. ### How to create a release 1. Go to https://github.com/alkem-io/XXX/releases, where `XXX` is a repository, i.e https://github.com/alkem-io/server/releases. 1. Start via the `Draft a new release` button. 1. Create a NEW tag via the `Choose a tag` button. 1. For the target branch put the branch from which you create this release - typically `master` or `main`. - ?? If a version is already released consult `How to do patches` 1. For the title put the summary of features in the release 1. Click on `Generate release notes`. This will fill the description with all the PRs merged in this version. Remove the PRs that are not feature, like version bumping. 1. Publish the release 1. A Github action is triggered, which will publish a docker image tagged with this version. 1. Create a new branch on remote, which the name of the version, tracking the just merged develop. Never merge develop back into it until the end of it's life. ### How to create a release PR 1. In the title use `[version] Summary of features in the release` 2. Leave the description empty 3. After releasing put the release notes inside the description ### How to do patches [Draft] - Ideally we don't want new features inside patches. - Branch off the release branch and never merge develop into it. - merge fixes into the release branch - release patched versions off the release branch - ?? when you are happy with the state merge the release branch into develop - ?? merge the release branch into master