astroid/doc/release.md

46 lines
1.3 KiB
Markdown
Raw Normal View History

2022-11-14 17:01:35 +08:00
# Releasing an astroid version
So, you want to release the `X.Y.Z` version of astroid ?
## Process
1. Check if the dependencies of the package are correct
2. Check the result (Do `git diff vX.Y.Z-1 ChangeLog` in particular).
3. Install the release dependencies `pip3 install pre-commit tbump`
4. Bump the version and release by using `tbump X.Y.Z --no-push`.
5. Push the tag.
6. Release the version on GitHub with the same name as the tag and copy and paste the
appropriate changelog in the description. This trigger the pypi release.
## Post release
### Back to a dev version
Move back to a dev version with `tbump`:
```bash
tbump X.Y.Z+1-dev0 --no-tag --no-push # You can interrupt during copyrite
git commit -am "Upgrade the version to x.y.z+1-dev0 following x.y.z release"
```
Check the result and then upgrade the main branch
### Milestone handling
We move issue that were not done in the next milestone and block release only if it's an
issue labelled as blocker.
## Post release
### Merge tags in main for pre-commit
If the tag you just made is not part of the main branch, merge the tag `vX.Y.Z` in the
main branch by doing a history only merge. It's done in order to signal that this is an
official release tag, and for `pre-commit autoupdate` to works.
```bash
git checkout main
git merge --no-edit --strategy=ours vX.Y.Z
git push
```