Skip to content

Commit

Permalink
Upgrade the doc about release
Browse files Browse the repository at this point in the history
  • Loading branch information
Pierre-Sassoulas committed Feb 28, 2021
1 parent f3a7c35 commit fd90613
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 30 deletions.
74 changes: 74 additions & 0 deletions doc/release.md
Original file line number Diff line number Diff line change
@@ -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.
30 changes: 0 additions & 30 deletions doc/release.txt

This file was deleted.

0 comments on commit fd90613

Please sign in to comment.