diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-02-28 19:44:28 +0100 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-02-28 20:21:45 +0100 |
commit | fd9061317eccfc1ac8d4eb258fc2e57964e1470e (patch) | |
tree | b0980835998e9074e7722f83fe39b74c645988a8 /doc/release.md | |
parent | f3a7c35599d8134dc4696a008cbf86d0e105b3b9 (diff) | |
download | astroid-git-fd9061317eccfc1ac8d4eb258fc2e57964e1470e.tar.gz |
Upgrade the doc about release
Diffstat (limited to 'doc/release.md')
-rw-r--r-- | doc/release.md | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/doc/release.md b/doc/release.md new file mode 100644 index 00000000..66df2e99 --- /dev/null +++ b/doc/release.md @@ -0,0 +1,74 @@ +# Releasing an astroid version + +So, you want to release the ``X.Y.Z`` version of astroid ? + +## Process + +1. Preparation + 1. Check if the dependencies of the package are correct + 2. Update ``numversion`` in ``__pkginfo__``, ``dev_version`` should also be None when you tag. + 3. Put the version numbers, and the release date into the changelog + 4. Put the release date into the ``What's new`` section. + 5. Generate the new copyright notices for this release: + +```bash +pip3 install copyrite +copyrite --contribution-threshold 1 --change-threshold 3 --backend-type \ +git --aliases=.copyrite_aliases . --jobs=8 +# During the commit pre-commit and pyupgrade will remove the encode utf8 +# automatically +``` + + 6. Submit your changes in a merge request. + +2. Make sure the tests are passing on Travis/GithubActions: + https://travis-ci.org/PyCQA/astroid/ + +3. Do the actual release by tagging the master with ``astroid-X.Y.Z`` (ie ``astroid-1.6.12`` + for example). Travis should deal with the release process once the tag is pushed + with `git push origin --tags` + +## Manual Release + +Following the previous steps, for a manual release run the following commands: + +```bash +git clean -fdx && find . -name '*.pyc' -delete +python setup.py sdist --formats=gztar bdist_wheel +twine upload dist/* +# don't forget to tag it as well +``` + +## Post release + +### New branch to create for major releases + +The master branch will have all the new features for the ``X.Y+1`` version + +If you're doing a major release, you need to create the ``X.Y`` branch +where we will cherry-pick bugs to release the ``X.Y.Z+1`` minor versions + +### 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. + +### Files to update after releases + +#### Changelog + +* Create a new section, with the name of the release ``X.Y.Z+1`` on the ``X.Y`` branch. +* If it's a major release, also create a new section for ``X.Y+1.0`` on the master branch + +You need to add the estimated date when it is going to be published. If +no date can be known at that time, we should use ``Undefined``. + +#### Whatsnew + +If it's a major release, create a new ``What's new in astroid X.Y+1`` document +Take a look at the examples from ``doc/whatsnew``. + +### Versions + +Update ``numversion`` to ``X.Y+1.0`` in ``__pkginfo__`` for ``master`` and to ``X.Y.Z+1`` for the ``X.Y`` branch. +``dev_version`` should also be back to an integer after the tag. |