@@ -24,18 +24,18 @@ tagged commit should be tested locally before it is uploaded::
24
24
25
25
In addition the following two tests should be run and manually inspected::
26
26
27
- python unit/memleak_hawaii3.py``
27
+ python unit/memleak_hawaii3.py
28
28
pushd examples/tests/
29
29
python backend_driver.py
30
30
popd
31
31
32
32
33
33
.. _release_ghstats :
34
34
35
- Github Stats
35
+ GitHub Stats
36
36
------------
37
37
38
- We automatically extract github issue, PRs, and authors from the github via the API::
38
+ We automatically extract GitHub issue, PRs, and authors from the GitHub via the API::
39
39
40
40
python tools/github_stats.py --since-tag $TAG --project 'matplotlib/matplotlib' --links --milestone v2.0.0 > doc/users/github_stats.rst
41
41
@@ -50,12 +50,12 @@ Check Docs
50
50
Before tagging, make sure that the docs build cleanly ::
51
51
52
52
pushd doc
53
- python make.py html pdf -n 16
53
+ python make.py html latex -n 16
54
54
popd
55
55
56
56
After the docs are built, check that all of the links, internal and external, are still
57
57
valid. We use ``linkchecker `` for this, which has not been ported to python3 yet. You will
58
- need to create a python2 enviroment with ``requests==2.9.0 `` and linkchecker ::
58
+ need to create a python2 environment with ``requests==2.9.0 `` and linkchecker ::
59
59
60
60
conda create -p /tmp/lnkchk python=2 requests==2.9.0
61
61
source activate /tmp/lnkchk
@@ -82,20 +82,36 @@ message ::
82
82
git tag -a -s v2.0.0
83
83
84
84
which will prompt you for your gpg key password and an annotation.
85
- For pre releases it is important to follow :pep: `440 ` so than the
86
- build artifacts will sort correctly in pypi. Finally, push the tag to github ::
85
+ For pre releases it is important to follow :pep: `440 ` so that the
86
+ build artifacts will sort correctly in pypi. Finally, push the tag to GitHub ::
87
87
88
88
git push -t DANGER v2.0.0
89
89
90
90
Congratulations, the scariest part is done!
91
91
92
92
To prevent issues with any down-stream builders which download the
93
- tarball from github it is important to move all branches away from the commit
94
- with the tag ::
93
+ tarball from GitHub it is important to move all branches away from the commit
94
+ with the tag [ # ]_ ::
95
95
96
96
git commit --allow-empty
97
97
git push DANGER master
98
98
99
+
100
+ .. [# ] The tarball that is provided by GitHub is produced using `git
101
+ archive <https://git-scm.com/docs/git-archive> `__. We use
102
+ `versioneer <https://github.com/warner/python-versioneer >`__
103
+ which uses a format string in
104
+ :file: `lib/matplotlib/_version.py ` to have ``git `` insert a
105
+ list of references to exported commit (see
106
+ :file: `.gitattributes ` for the configuration). This string is
107
+ then used by ``versioneer `` to produce the correct version,
108
+ based on the git tag, when users install from the tarball.
109
+ However, if there is a branch pointed at the tagged commit,
110
+ then the branch name will also be included in the tarball.
111
+ When the branch eventually moves, anyone how checked the hash
112
+ of the tarball before the branch moved will have an incorrect
113
+ hash.
114
+
99
115
If this is a final release, also create a 'doc' branch (this is not
100
116
done for pre-releases)::
101
117
@@ -110,18 +126,20 @@ micro release will be cut off of this branch)::
110
126
111
127
112
128
113
- .. _ release_tag :
129
+ .. _ release_DOI :
114
130
115
131
Release Management / DOI
116
132
------------------------
117
133
118
- Via the github UI (chase down link), turn the newly pushed tag into a
134
+ Via the GitHub UI (chase down link), turn the newly pushed tag into a
119
135
release. If this is a pre-release remember to mark it as such.
120
136
121
137
For final releases also get a DOI from `zenodo
122
138
<https://zenodo.org/> `__ and edit :file: `doc/_templates/citing.html `
123
- with DOI link and commit to the VER-doc branch and push to github ::
139
+ with DOI link and commit to the VER-doc branch and push to GitHub ::
124
140
141
+ git checkout v2.0.0-doc
142
+ emacs doc/_templates/citing.html
125
143
git push DANGER v2.0.0-doc:v2.0.0-doc
126
144
127
145
.. _release_bld_bin :
@@ -131,26 +149,25 @@ Building binaries
131
149
132
150
We distribute mac, windows, and many linux wheels as well as a source
133
151
tarball via pypi. Before uploading anything, contact the various
134
- builders. Mac and manylinux wheels are built on travis
135
- . You need to edit the
136
- :file: `.travis.yml ` file and push to master of `the build
152
+ builders. Mac and manylinux wheels are built on travis . You need to
153
+ edit the :file: `.travis.yml ` file and push to master of `the build
137
154
project <https://github.com/MacPython/matplotlib-wheels> `__.
138
155
139
156
Update the ``master `` branch (for pre-releases the ``devel `` branch)
140
157
of the `conda-forge feedstock
141
158
<https://github.com/conda-forge/matplotlib-feedstock> `__ via pull request.
142
159
143
- If this is a final release the following down-steam packagers should be contacted:
160
+ If this is a final release the following downsteam packagers should be contacted:
144
161
145
- - debian
146
- - fedora
147
- - arch
148
- - gentoo
149
- - macports
150
- - homebrew
162
+ - Debian
163
+ - Fedora
164
+ - Arch
165
+ - Gentoo
166
+ - Macports
167
+ - Homebrew
151
168
- Christoph Gohlke
152
- - continuum
153
- - enthought
169
+ - Continuum
170
+ - Enthought
154
171
155
172
This can be done ahead of collecting all of the binaries and uploading to pypi.
156
173
@@ -202,7 +219,7 @@ always the documentation for the latest stable release. Under that,
202
219
there are directories containing the documentation for older versions.
203
220
The documentation for current master are built on travis and push to
204
221
the `devdocs <https://github.com/matplotlib/devdocs/ >`__ repository.
205
- These are available `matplotlib.org/devdocs
222
+ These are available at `matplotlib.org/devdocs
206
223
<http://matplotlib.org/devdocs> `__.
207
224
208
225
Assuming you have this repository checked out in the same directory as
@@ -211,23 +228,23 @@ matplotlib ::
211
228
cd ../matplotlib.github.com
212
229
mkdir 2.0.0
213
230
rsync -a ../matplotlib/doc/build/html/* 2.0.0
214
- cp ../matplotlib/doc/build/html /Matplotlib.pdf 2.0.0
231
+ cp ../matplotlib/doc/build/latex /Matplotlib.pdf 2.0.0
215
232
216
233
which will copy the built docs over. If this is a final release, also
217
234
replace the top-level docs ::
218
235
219
236
rsync -a 2.0.0/* ./
220
237
221
238
You will need to manually edit :file: `versions.html ` to show the last
222
- 3 tagged versions. Now commit and push everything to github ::
239
+ 3 tagged versions. Now commit and push everything to GitHub ::
223
240
224
241
git add *
225
242
git commit -a -m 'Updating docs for v2.0.0
226
243
git push DANGER master
227
244
228
245
Congratulations you have now done the third scariest part!
229
246
230
- It typically takes about 5-10 minutes for github to process the push
247
+ It typically takes about 5-10 minutes for GitHub to process the push
231
248
and update the live web page (remember to clear your browser cache).
232
249
233
250
@@ -244,7 +261,7 @@ version of the release notes along with acknowledgments should be sent to
244
261
For final releases announcements should also be sent to the
245
262
numpy/scipy/jupyter mailing lists and python-announce.
246
263
247
- In addition, annoucments should be made on social networks (twitter,
248
- g+, FB). For major release, numFOCUS should be contacted for
249
- inclusion in their news letter and maybe to have something posted on
250
- their blog.
264
+ In addition, announcements should be made on social networks (twitter,
265
+ g+, FB). For major release, ` NumFOCUS < http://www.numfocus.org/ >`__
266
+ should be contacted for inclusion in their news letter and maybe to
267
+ have something posted on their blog.
0 commit comments