@@ -6,6 +6,36 @@ Release Guide
66
77A guide for developers who are doing a matplotlib release.
88
9+ Development (beta/RC) release checklist
10+ ---------------------------------------
11+
12+ - [ ] Testing
13+ - [ ] Create empty REL: commit
14+ - [ ] Create tag
15+ - [ ] Push tags + branches to GH
16+ - [ ] Notify mac/windows/conda builders
17+ - [ ] Merge everything to master
18+ - [ ] announce release
19+
20+ Final release checklist
21+ -----------------------
22+
23+ - [ ] Testing
24+ - [ ] update gh states
25+ - [ ] Create empty REL: commit
26+ - [ ] Create tag
27+ - [ ] Create branches
28+ - [ ] Push tags + branches to GH
29+ - [ ] release / DOI management
30+ - [ ] Notify mac/windows/conda builders
31+ - [ ] Merge everything to master
32+ - [ ] build documentation
33+ - [ ] upload to pypi / sf
34+ - [ ] deploy updated documentation
35+ - [ ] announce release
36+
37+ Details
38+ -------
939
1040.. _release-testing :
1141
@@ -14,19 +44,25 @@ Testing
1444
1545We use `travis-ci <https://travis-ci.org/matplotlib/matplotlib >`__ for
1646continuous integration. When preparing for a release, the final
17- tagged commit should be tested locally before it is uploaded. In
18- addition ::
47+ tagged commit should be tested locally before it is uploaded::
1948
20- python unit/memleak_hawaii3.py
49+ python tests.py --processes=8 --process-timeout=300
50+
51+ In addition ::
52+
53+ python unit/memleak_hawaii3.py
2154
2255should be run to check for memory leaks. Optionally, make sure ::
2356
24- python examples/tests/backend_driver.py
57+ cd examples/tests/
58+ python backend_driver.py
2559
2660runs without errors and check the output of the PNG, PDF, PS and SVG
2761backends.
2862
2963
64+ .. _release_ghstats :
65+
3066Github Stats
3167============
3268
@@ -39,6 +75,29 @@ stats. In the project root run ::
3975where `$TAG ` is the tag of the last major release. This will generate
4076stats for all work done since that release.
4177
78+ - [ ] review and commit changes
79+ - [ ] check for valid rst
80+ - [ ] re-add github-stats link
81+
82+ .. _release_tag :
83+
84+ Create Tag
85+ ==========
86+
87+ On the tip of the current branch::
88+
89+ git commit --allow-empty
90+ git tag -a -s v1.5.0
91+
92+ The commit and tag message should be very terse release notes should look something
93+ like
94+
95+ REL: vX.Y.Z
96+
97+ Something brief description
98+
99+ Development releases should be post-fixed with the proper string following
100+ `PEP 440<https://www.python.org/dev/peps/pep-0440/> `__ conventions.
42101
43102.. _release-branching :
44103
@@ -52,27 +111,6 @@ the second part of the version number changes::
52111 git checkout -b v1.1.x
53112 git push [email protected] :matplotlib/matplotlib.git v1.1.x 54113
55- On the branch, do any additional testing you want to do, and then build
56- binaries and source distributions for testing as release candidates.
57-
58- For each release candidate as well as for the final release version,
59- please `git tag ` the commit you will use for packaging like so::
60-
61- git tag -a v1.1.0rc1
62-
63- The `-a ` flag will allow you to write a message about the tag, and
64- affiliate your name with it. A reasonable tag message would be something
65- like ``v1.1.0 Release Candidate 1 (September 24, 2011) ``. To tag a
66- release after the fact, just track down the commit hash, and::
67-
68- git tag -a v1.0.1rc1 a9f3f3a50745
69-
70- Tags allow developers to quickly checkout different releases by name,
71- and also provides source download via zip and tarball on github.
72-
73- Then push the tags to the main repository::
74-
75- git push upstream v1.0.1rc1
76114
77115.. _release-packaging :
78116
0 commit comments