Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7a7a40f

Browse files
authored
Merge pull request #13421 from tacaswell/doc_release_notes
DOC: update release guide
2 parents 6013532 + 7aaa02d commit 7a7a40f

File tree

2 files changed

+86
-35
lines changed

2 files changed

+86
-35
lines changed

doc/api/api_changes.rst

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,25 @@ This pages lists API changes for the most recent version of Matplotlib.
1717

1818
api_changes_old
1919

20-
..
2120

22-
.. note::
21+
.. note::
2322

24-
The list below is a table of contents of individual files from the 'next_api_changes' folder.
25-
When a release is made
23+
The list below is a table of contents of individual files from the
24+
'next_api_changes' folder.
2625

27-
- The full text list below should be moved into its own file in 'prev_api_changes'
28-
- All the files in 'next_api_changes' should be moved to the bottom of this page
29-
- This note, and the toctree below should be commented out
26+
When a release is made
3027

28+
- The full text list below should be moved into its own file in
29+
'prev_api_changes'
30+
- All the files in 'next_api_changes' should be moved to the bottom of this page
31+
- This note, and the toctree below should be commented out
3132

32-
.. toctree::
33-
:glob:
34-
:maxdepth: 1
3533

36-
next_api_changes/*
34+
.. toctree::
35+
:glob:
36+
:maxdepth: 1
37+
38+
next_api_changes/*
3739

3840

3941
API Changes for 3.0.1

doc/devel/release_guide.rst

Lines changed: 73 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,16 @@
66
Release Guide
77
===============
88

9-
A guide for developers who are doing a matplotlib release.
9+
10+
.. admonition:: This document is only relevant for matplotlib release managers.
11+
12+
A guide for developers who are doing a matplotlib release.
13+
14+
15+
.. note::
16+
17+
This assumes that a read-only remote for the canonical repository is
18+
``remote`` and a read/write remote is ``DANGER``
1019

1120
All Releases
1221
============
@@ -43,18 +52,40 @@ We automatically extract GitHub issue, PRs, and authors from GitHub via the API:
4352
Review and commit changes. Some issue/PR titles may not be valid rst (the most common issue is
4453
``*`` which is interpreted as unclosed markup).
4554

55+
.. note
56+
57+
Make sure you authenticate against the github API (either via
58+
keyring or via putting an oauth token in :file:`~/.ghoauth`). If you
59+
do not you will get blocked by github for going over the API rate
60+
limits.
61+
4662
4763
.. _release_chkdocs:
4864

49-
Check Docs
50-
----------
65+
Update and Validate the Docs
66+
----------------------------
67+
68+
Before tagging, update the "what's new" and "API changes" listings.
69+
70+
for the "what's new"
71+
72+
1. copy the current content to a file in :file:`doc/users/prev_whats_new`
73+
2. merge all of the files in :file:`doc/users/next_whats_new/` into
74+
:file:`doc/users/whats_new.rst` and delete the individual files
75+
3. comment out the next whats new glob at the top
5176

52-
Before tagging, update the what's new listing in :file:`doc/users/whats_new.rst`
53-
by merging all files in :file:`doc/users/next_whats_new/` coherently. Also,
54-
temporarily comment out the include and toctree glob; re-instate these after a
55-
release. Finally, make sure that the docs build cleanly ::
77+
Similarly for the "API changes"
5678

57-
make -Cdoc O=-n$(nproc) html latexpdf
79+
1. copy the current api changes to a file is :file:`doc/api/prev_api_changes`
80+
2. merge all of the files in :file:`doc/api/next_api_changes/` into
81+
:file:`doc//whats_new.rst`
82+
3. comment out the next API changes at the top.
83+
84+
In both cases step 3 will have to be un-done right after the release.
85+
86+
Finally, make sure that the docs build cleanly ::
87+
88+
make -Cdoc O=-j$(nproc) html latexpdf
5889

5990
After the docs are built, check that all of the links, internal and external, are still
6091
valid. We use ``linkchecker`` for this, which has not been ported to python3 yet. You will
@@ -130,21 +161,27 @@ and if this is a major or minor release, also create a bug-fix branch (a
130161
micro release will be cut off of this branch)::
131162

132163
git branch v2.0.x
164+
165+
On this branch un-comment the globs from :ref:`release_chkdocs`. And then ::
166+
133167
git push DANGER v2.0.x
134168

135169

136170

171+
137172
.. _release_DOI:
138173

139174
Release Management / DOI
140175
------------------------
141176

142-
Via the GitHub UI (chase down link), turn the newly pushed tag into a
143-
release. If this is a pre-release remember to mark it as such.
177+
Via the `GitHub UI
178+
<https://github.com/matplotlib/matplotlib/releases>`__, turn the newly
179+
pushed tag into a release. If this is a pre-release remember to mark
180+
it as such.
144181

145182
For final releases also get a DOI from `zenodo
146-
<https://zenodo.org/>`__ and edit :file:`doc/_templates/citing.html`
147-
with DOI link and commit to the VER-doc branch and push to GitHub ::
183+
<https://zenodo.org/>`__ and edit :file:`doc/citing.rst` with DOI link
184+
and commit to the VER-doc branch and push to GitHub ::
148185

149186
git checkout v2.0.0-doc
150187
emacs doc/_templates/citing.html
@@ -158,12 +195,20 @@ Building binaries
158195
We distribute mac, windows, and many linux wheels as well as a source
159196
tarball via pypi. Before uploading anything, contact the various
160197
builders. Mac and manylinux wheels are built on travis . You need to
161-
edit the :file:`.travis.yml` file and push to master of `the build
162-
project <https://github.com/MacPython/matplotlib-wheels>`__.
198+
edit the :file:`.travis.yml` file and push to the correct branch of
199+
`the build project
200+
<https://github.com/MacPython/matplotlib-wheels>`__. For new minor
201+
versions create a new branch, for bug-fixes continue to use the current
202+
release branch.
203+
204+
The auto-tick bot should open a pull request into the `conda-forge
205+
feedstock <https://github.com/conda-forge/matplotlib-feedstock>`__.
206+
Review and merge (if you have the power to).
207+
208+
.. warning::
163209

164-
Update the ``master`` branch (for pre-releases the ``devel`` branch)
165-
of the `conda-forge feedstock
166-
<https://github.com/conda-forge/matplotlib-feedstock>`__ via pull request.
210+
Because this is automated, it is extremely important to bump all branches
211+
away from the tag as discussed in :ref:`release_tag`.
167212

168213
If this is a final release the following downstream packagers should be contacted:
169214

@@ -179,12 +224,14 @@ If this is a final release the following downstream packagers should be contacte
179224

180225
This can be done ahead of collecting all of the binaries and uploading to pypi.
181226

227+
182228
.. _release_upload_bin:
183229

184230
make distribution and upload to pypi / SF
185231
-----------------------------------------
186232

187-
Once you have collected all of the wheels, generate the tarball ::
233+
Once you have collected all of the wheels (expect this to take about a
234+
day), generate the tarball ::
188235

189236
git checkout v2.0.0
190237
git clean -xfd
@@ -228,7 +275,7 @@ there are directories containing the documentation for older versions.
228275
The documentation for current master are built on travis and push to
229276
the `devdocs <https://github.com/matplotlib/devdocs/>`__ repository.
230277
These are available at `matplotlib.org/devdocs
231-
<http://matplotlib.org/devdocs>`__.
278+
<https://matplotlib.org/devdocs>`__.
232279

233280
Assuming you have this repository checked out in the same directory as
234281
matplotlib ::
@@ -252,6 +299,8 @@ You will need to manually edit :file:`versions.html` to show the last
252299

253300
Congratulations you have now done the third scariest part!
254301

302+
If you have access, clear the cloudflare caches.
303+
255304
It typically takes about 5-10 minutes for GitHub to process the push
256305
and update the live web page (remember to clear your browser cache).
257306

@@ -267,9 +316,9 @@ version of the release notes along with acknowledgments should be sent to
267316
268317

269318
For final releases announcements should also be sent to the
270-
numpy/scipy/jupyter mailing lists and python-announce.
319+
numpy/scipy/scikit-image mailing lists.
271320

272-
In addition, announcements should be made on social networks (twitter,
273-
g+, FB). For major release, `NumFOCUS <http://www.numfocus.org/>`__
274-
should be contacted for inclusion in their newsletter and maybe to
275-
have something posted on their blog.
321+
In addition, announcements should be made on social networks (twitter
322+
via the ``@matplotlib`` account, any other via personal accounts).
323+
`NumFOCUS <https://www.numfocus.org/>`__ should be contacted for
324+
inclusion in their newsletter.

0 commit comments

Comments
 (0)