git.iko.soy/typeable/servant
on master help sign in
Add release process outline [ci skip]
commite431de453f30d6c9d32a025be6d4b34af675ad1c authorOleg Grenrus <oleg.grenrus@iki.fi> dateTue 7 Nov 2017, 16:10 (9 years ago) parentc5d3460
1 file changed+20
README.md+20
README.md+20
@@ -38,3 +38,23 @@ release of `servant` package.
3838## Contributing
3939
4040See `CONTRIBUTING.md`
41+
42+## Release process outline (by phadej)
43+
44+- Update changelog and bump versions in `master`
45+ - `git log --oneline v0.12.. | grep 'Merge pull request'` is a good starting point (use correct previous release tag)
46+- Create a release branch, e.g. `release-0.13`, and *protect it* from accidental force pushes.
47+ - Release branch is useful for backporting fixes from `master`
48+- Smoke test in [`servant-universe`](https://github.com/phadej/servant-universe)
49+ - `git submodule foreach git checkout master` and `git submodule foreach git pull` to get newest of everything.
50+ - `cabal new-build --enable-tests all` to verify that everything builds, and `cabal new-test all` to run tests
51+ - It's a good idea to separate these steps, as tests often pass, if they compile :)
52+ - See `cabal.project` to selectively `allow-newer`
53+ - If some packages are broken, on your discretisation there are two options:
54+ - Fix them and make PRs: it's good idea to test against older `servant` version too.
55+ - Temporarily comment out broken package
56+ - If you make a commit for `servant-universe`, you can use it as submodule in private projects to test even more
57+- When ripples are cleared out:
58+ - `git tag -s` the release
59+ - `git push --tags`
60+ - `cabal sdist` and `cabal upload`