@@ -12,20 +12,51 @@ Release guide
12
12
A guide for developers who are doing a Matplotlib release.
13
13
14
14
15
- .. note ::
16
15
17
- This assumes that a read-only remote for the canonical repository is
18
- ``remote `` and a read/write remote is ``DANGER ``
16
+ Versioning Scheme
17
+ =================
18
+
19
+ Maplotlib follows the `Intended Effort Versioning (EffVer) <https://jacobtomlinson.dev/effver/ >`_
20
+ versioning scheme: *macro.meso.micro *.
21
+
22
+
23
+ *macro *
24
+ A release that we expect a large effort from our users to upgrade to. The v1 to v2 transition
25
+ included a complete overhaul of the default styles and the v2 to v3 transition involved
26
+ dropping support for Python 2.
27
+
28
+ Future macro versions would include changes of a comparable scale that can not be done
29
+ incrementally in meso releases.
30
+
31
+ *meso *
32
+ A release that we expect some effort from our users to upgrade to. We target a
33
+ *Meso * release every 6 months. These release are primarily intended to release
34
+ new features to our users, however they also contain intentional feature deprecations and
35
+ removals per :ref: `our policy <deprecation-guidelines >`.
36
+
37
+ *micro *
38
+ A release that we expect users to require little to no effort to upgrade to. Per
39
+ our :ref: `backport-strategy ` we only backport bug fixes to the maintenance branch.
40
+ We expect minimal impact on users other than possibly breaking work arounds to a
41
+ fixed bug or `bugs being used as features <https://xkcd.com/1172/ >`_.
42
+
43
+ These are released as-needed, but typically every 1-2 months between meso releases.
19
44
20
45
21
46
.. _release_feature_freeze :
22
47
23
48
Making the release branch
24
49
=========================
25
50
26
- When a new minor release (vX.Y.0) is approaching, a new release branch must be made.
51
+ .. note ::
52
+
53
+ This assumes that a read-only remote for the canonical repository is
54
+ ``remote `` and a read/write remote is ``DANGER ``
55
+
56
+
57
+ When a new meso release (vX.Y.0) is approaching, a new release branch must be made.
27
58
When precisely this should happen is up to the release manager, but this point is where
28
- most new features intended for the minor release are merged and you are entering a
59
+ most new features intended for the meso release are merged and you are entering a
29
60
feature freeze (i.e. newly implemented features will be going into vX.Y+1).
30
61
This does not necessarily mean that no further changes will be made prior to release,
31
62
just that those changes will be made using the backport system.
@@ -50,12 +81,12 @@ Micro versions should instead read::
50
81
on-merge: backport to v3.7.x
51
82
52
83
Check all active milestones for consistency. Older milestones should also backport
53
- to higher minor versions (e.g. ``v3.6.3 `` and ``v3.6-doc `` should backport to both
84
+ to higher meso versions (e.g. ``v3.6.3 `` and ``v3.6-doc `` should backport to both
54
85
``v3.6.x `` and ``v3.7.x `` once the ``v3.7.x `` branch exists and while PR backports are
55
86
still targeting ``v3.6.x ``)
56
87
57
- Create the milestone for the next-next minor release (i.e. ``v3.9.0 ``, as ``v3.8.0 ``
58
- should already exist). While most active items should go in the next minor release,
88
+ Create the milestone for the next-next meso release (i.e. ``v3.9.0 ``, as ``v3.8.0 ``
89
+ should already exist). While most active items should go in the next meso release,
59
90
this milestone can help with longer term planning, especially around deprecation
60
91
cycles.
61
92
@@ -142,15 +173,15 @@ are going to tag on and delete the doc branch on GitHub.
142
173
Update supported versions in Security Policy
143
174
--------------------------------------------
144
175
145
- When making major or minor releases, update the supported versions in the Security
176
+ When making macro or meso releases, update the supported versions in the Security
146
177
Policy in :file: `SECURITY.md `.
147
178
148
- For minor version release update the table in :file: `SECURITY.md ` to specify that the
149
- two most recent minor releases in the current major version series are supported.
179
+ For meso version release update the table in :file: `SECURITY.md ` to specify that the
180
+ two most recent meso releases in the current macro version series are supported.
150
181
151
- For a major version release update the table in :file: `SECURITY.md ` to specify that the
152
- last minor version in the previous major version series is still supported. Dropping
153
- support for the last version of a major version series will be handled on an ad-hoc
182
+ For a macro version release update the table in :file: `SECURITY.md ` to specify that the
183
+ last meso version in the previous macro version series is still supported. Dropping
184
+ support for the last version of a macro version series will be handled on an ad-hoc
154
185
basis.
155
186
156
187
Update release notes
@@ -159,7 +190,7 @@ Update release notes
159
190
What's new
160
191
^^^^^^^^^^
161
192
162
- *Only needed for major and minor releases. Bugfix releases should not have new
193
+ *Only needed for macro and meso releases. Bugfix releases should not have new
163
194
features. *
164
195
165
196
Merge the contents of all the files in :file: `doc/users/next_whats_new/ ` into a single
@@ -169,8 +200,8 @@ files.
169
200
API changes
170
201
^^^^^^^^^^^
171
202
172
- *Primarily needed for major and minor releases. We may sometimes have API
173
- changes in bugfix releases. *
203
+ *Primarily needed for macro and meso releases. We may sometimes have API
204
+ changes in micro releases. *
174
205
175
206
Merge the contents of all the files in :file: `doc/api/next_api_changes/ ` into a single
176
207
file :file: `doc/api/prev_api_changes/api_changes_{ X } .{ Y } .{ Z } .rst ` and delete the
@@ -181,7 +212,7 @@ Release notes TOC
181
212
182
213
Update :file: `doc/users/release_notes.rst `:
183
214
184
- - For major and minor releases add a new section
215
+ - For macro and meso releases add a new section
185
216
186
217
.. code :: rst
187
218
@@ -193,7 +224,7 @@ Update :file:`doc/users/release_notes.rst`:
193
224
prev_whats_new/whats_new_X.Y.0.rst
194
225
../api/prev_api_changes/api_changes_X.Y.0.rst
195
226
prev_whats_new/github_stats_X.Y.0.rst
196
- - For bugfix releases add the GitHub stats and (if present) the API changes to
227
+ - For micro releases add the GitHub stats and (if present) the API changes to
197
228
the existing X.Y section
198
229
199
230
.. code :: rst
@@ -206,8 +237,8 @@ Update version switcher
206
237
207
238
Update ``doc/_static/switcher.json ``:
208
239
209
- - If a bugfix release, :samp: `{ X } .{ Y } .{ Z } `, no changes are needed.
210
- - If a major release, :samp: `{ X } .{ Y } .0 `, change the name of :samp: `name: { X } .{ Y+1 }
240
+ - If a micro release, :samp: `{ X } .{ Y } .{ Z } `, no changes are needed.
241
+ - If a macro release, :samp: `{ X } .{ Y } .0 `, change the name of :samp: `name: { X } .{ Y+1 }
211
242
(dev) ` and :samp: `name: { X } .{ Y } (stable) ` as well as adding a new version for the
212
243
previous stable (:samp: `name: { X } .{ Y-1 } `).
213
244
@@ -259,8 +290,8 @@ Finally, push the tag to GitHub::
259
290
260
291
Congratulations, the scariest part is done!
261
292
This assumes the release branch has already been made.
262
- Usually this is done at the time of feature freeze for a minor release (which often
263
- coincides with the last patch release of the previous minor version)
293
+ Usually this is done at the time of feature freeze for a meso release (which often
294
+ coincides with the last micro release of the previous meso version)
264
295
265
296
.. [# ] The tarball that is provided by GitHub is produced using `git archive `_.
266
297
We use setuptools_scm _ which uses a format string in
@@ -298,7 +329,7 @@ with the ``v3.7-doc`` milestone to both the ``v3.7.x`` branch and the ``v3.7.0-d
298
329
on-merge: backport to v3.7.0-doc
299
330
300
331
Check all active milestones for consistency. Older doc milestones should also backport to
301
- higher minor versions (e.g. ``v3.6-doc `` should backport to both ``v3.6.x `` and ``v3.7.x ``
332
+ higher meso versions (e.g. ``v3.6-doc `` should backport to both ``v3.6.x `` and ``v3.7.x ``
302
333
if the ``v3.7.x `` branch exists)
303
334
304
335
0 commit comments