summaryrefslogtreecommitdiff
path: root/doc/release.txt
blob: 2be61bbc19a10281e26c921d8d6e9a87e1f08fe1 (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
57
58
59
60
61
62
63
64
65
66
Release Management
==================

After pylint 2.0, which is scheduled to be released somewhere around in
July, we are planning to do releases more often. The intentional plan is
to have a minor release for each two or three weeks, having also the next
major bump planned in advance.

In order for these short minor releases to be manageable, the plan is to
have at most ten issues assigned per minor release. We can try, though,
to assign few than ten issues per release, so we could schedule a fix
really quickly, if the need arises, thus giving ourselves time for the
unplanned.

Although, to advance the capabilities of the inference engine
and of Pylint in general, we cannot focus ourselves completely on working
only for minor releases and as such, the release schedule will have gaps
for working for the next major release of astroid, indifferent on the
corresponding version.



Release Process
===============


When starting developing a new release, a couple of things needs
to be tackled, in order to simplify the late management:

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
   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. 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 -fd && find . -name '*.pyc' -delete
   $ python setup.py sdist --formats=gztar bdist_wheel
   $ twine upload dist/*