Merge pull request #69 from LemmyNet/release-process

Add documentation for release process
This commit is contained in:
Dessalines 2021-04-27 10:18:22 -04:00 committed by GitHub
commit 67389c2cde
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 0 deletions

View file

@ -28,4 +28,5 @@
- [Local Development](contributing/local_development.md) - [Local Development](contributing/local_development.md)
- [Tests](contributing/tests.md) - [Tests](contributing/tests.md)
- [Federation Development](contributing/federation_development.md) - [Federation Development](contributing/federation_development.md)
- [Release Process](contributing/release_process.md)
- [Code of Conduct](code_of_conduct.md) - [Code of Conduct](code_of_conduct.md)

View file

@ -0,0 +1,19 @@
# Branching and Releases
## Branches
In general, our handling of branches is the one described in [A stable mainline branching model for Git](https://www.bitsnbites.eu/a-stable-mainline-branching-model-for-git/). One difference is that we avoid rebase, and instead merge the base branch into the current working branch. This helps to avoid force pushes and conflicts.
## Releases
- For major release: make a new branch `release/v0.x`
- For minor release: cherry-pick desired changes onto `release/v0.x` branch
- Make a beta or release candidate version with `docker/prod/deploy.sh`
- Do the same for `lemmy-ui`: `./deploy.sh 0.x.0-rc-x`
- Deploy to federation test instances
- Keeping one instance at the last stable version to test federation compatibility (automate this with ansible)
- `ansible-playbook -i federation playbooks/site.yml --vault-password-file vault_pass -e rc_version=0.x.0-rc.x`
- Test that everything works as expected, make new beta/rc releases if needed
- Deploy to lemmy.ml, to discover remaining problems
- If that went well, make the official `0.x.0` release with `docker/prod/deploy.sh`
- Announce the release on Lemmy, Matrix, Mastodon