-
-
Notifications
You must be signed in to change notification settings - Fork 277
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
f3a7c35
commit fd90613
Showing
2 changed files
with
74 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |
This file was deleted.
Oops, something went wrong.