diff --git a/docs/release_process.md b/docs/release_process.md new file mode 100644 index 00000000..da94ea6b --- /dev/null +++ b/docs/release_process.md @@ -0,0 +1,95 @@ +# Torrust Index Release Process (v2.2.2) + +## Version: +> **The `[semantic version]` is bumped according to releases, new features, and breaking changes.** +> +> *The `develop` branch uses the (semantic version) suffix `-develop`.* + +## Process: + +**Note**: this guide assumes that the your git `torrust` remote is like this: + +```sh +git remote show torrust +``` + +```s +* remote torrust + Fetch URL: git@github.com:torrust/torrust-index.git + Push URL: git@github.com:torrust/torrust-index.git +... +``` + + +### 1. The `develop` branch is ready for a release. +The `develop` branch should have the version `[semantic version]-develop` that is ready to be released. + +### 2. Stage `develop` HEAD for merging into the `main` branch: + +```sh +git fetch --all +git push --force torrust develop:staging/main +``` + +### 3. Create Release Commit: + +```sh +git stash +git switch staging/main +git reset --hard torrust/staging/main +# change `[semantic version]-develop` to `[semantic version]`. +git add -A +git commit -m "release: version [semantic version]" +git push torrust +``` + +### 4. Create and Merge Pull Request from `staging/main` into `main` branch. + +Pull request title format: "Release Version `[semantic version]`". + +This pull request merges the new version into the `main` branch. + +### 5. Push new version from `main` HEAD to `releases/v[semantic version]` branch: + +```sh +git fetch --all +git push torrust main:releases/v[semantic version] +``` + +> **Check that the deployment is successful!** + +### 6. Create Release Tag: + +```sh +git switch releases/v[semantic version] +git tag --sign v[semantic version] +git push --tags torrust +``` + +### 7. Create Release on Github from Tag. +This is for those who wish to download the source code. + +### 8. Stage `main` HEAD for merging into the `develop` branch: +Merge release back into the develop branch. + +```sh +git fetch --all +git push --force torrust main:staging/develop +``` +### 9. Create Comment that bumps next development version: + +```sh +git stash +git switch staging/develop +git reset --hard torrust/staging/develop +# change `[semantic version]` to `(next)[semantic version]-develop`. +git add -A +git commit -m "develop: bump to version (next)[semantic version]-develop" +git push torrust +``` + +### 10. Create and Merge Pull Request from `staging/develop` into `develop` branch. + +Pull request title format: "Version `[semantic version]` was Released". + +This pull request merges the new release into the `develop` branch and bumps the version number.