summaryrefslogtreecommitdiff
path: root/doc/release.md
blob: 7354b2e21e5ff5392b5b636695fe3e63c24be26b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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. Install the release dependencies `pip3 install pre-commit tbump`
3. Bump the version and release by using `tbump X.Y.Z --no-push`.
4. Check the result.
5. Until the release is done via GitHub actions on tag, run the following commands:

```bash
git clean -fdx && find . -name '*.pyc' -delete
python3 -m venv venv
source venv/bin/activate
pip3 install twine wheel setuptools
python setup.py sdist --formats=gztar bdist_wheel
twine upload dist/*
```

6. Push the tag.

## Post release

### Back to a dev version

Move back to a dev version with `tbump`:

```bash
tbump X.Y.Z-dev0 --no-tag --no-push
```

Check the result and then upgrade the master 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.

### Files to update after releases

#### Changelog

If it was a minor release add a `X.Y+1.0` title following the template:

```text
What's New in astroid x.y.z?
============================
Release Date: TBA
```

#### Whatsnew

If it was a minor release, create a new `What's new in Astroid X.Y+1` document. Take a
look at the examples from `doc/whatsnew`.