summaryrefslogtreecommitdiff
path: root/doc/release.txt
blob: e3556561321d5af042659899a3a452572355cac5 (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
Release Process
===============

Pre-developing
--------------


1. create a new section in the ChangeLog, with the name of the
   release and the estimated date when it is going to be published.
   If no date can be known at that time, we should use ``Undefined``.

2. create a new ``What's new in Pylint X.Y`` document. Take a look
   at the examples from doc/whatsnew.

Pre-release
-----------

1. Preparation
   0. Run the acceptance tests to see if everything is alright with this release.
      We don't run them on CI:

      pytest -m acceptance

   1. Check if the dependencies of the package are correct
   2. Update the version number in __pkginfo__
   3. Put the version number and the release date into the changelog
   4. Put the release date into the ``What's new`` section.
   5. If releasing a major or minor version, generate the new copyright notices for this release:
      $ copyrite --contribution-threshold 1 --change-threshold 3 --backend-type git --aliases=.copyrite_aliases . --jobs=8

   6. Submit your changes.

2. Make sure the tests are passing on Travis:
   https://travis-ci.org/PyCQA/pylint/

3. Add a new tag 'pylint-$VERSION'

5. Publish all remaining changes to the GitHub repository:
   https://github.com/PyCQA/pylint


Release by running the following:

   $ git clean -fdx && find . -name '*.pyc' -delete
   $ python setup.py sdist --formats=gztar bdist_wheel
   $ twine upload dist/*