Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 634ee03

Browse filesBrowse files
authored
Merge pull request #27702 from tacaswell/pol/adopt_effver
GOV: adopt EffVer
2 parents 5fc82d1 + cce8690 commit 634ee03
Copy full SHA for 634ee03

File tree

Expand file treeCollapse file tree

13 files changed

+88
-53
lines changed
Filter options
Expand file treeCollapse file tree

13 files changed

+88
-53
lines changed

‎doc/api/prev_api_changes/api_changes_1.3.x.rst

Copy file name to clipboardExpand all lines: doc/api/prev_api_changes/api_changes_1.3.x.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ API Changes in 1.3.x
77
Changes in 1.3.1
88
----------------
99

10-
It is rare that we make an API change in a bugfix release, however,
10+
It is rare that we make an API change in a micro release, however,
1111
for 1.3.1 since 1.3.0 the following change was made:
1212

1313
- ``text.Text.cached`` (used to cache font objects) has been made into a

‎doc/conf.py

Copy file name to clipboardExpand all lines: doc/conf.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ def js_tag_with_cache_busting(js):
482482
"switcher": {
483483
# Add a unique query to the switcher.json url. This will be ignored by
484484
# the server, but will be used as part of the key for caching by browsers
485-
# so when we do a new minor release the switcher will update "promptly" on
485+
# so when we do a new meso release the switcher will update "promptly" on
486486
# the stable and devdocs.
487487
"json_url": f"https://matplotlib.org/devdocs/_static/switcher.json?{SHA}",
488488
"version_match": (

‎doc/devel/MEP/MEP13.rst

Copy file name to clipboardExpand all lines: doc/devel/MEP/MEP13.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ The following steps can be done simultaneously: 1, 2, and 3; 4 and 5;
6363

6464
Only the following steps must be done in the same release: 4, 5,
6565
and 6. All other changes can be done in separate releases. 8 should
66-
be done several major releases after everything else.
66+
be done several macro releases after everything else.
6767

6868
Backward compatibility
6969
======================

‎doc/devel/api_changes.rst

Copy file name to clipboardExpand all lines: doc/devel/api_changes.rst
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ prevents unexpected breaking of code.
5454

5555
Rules
5656
^^^^^
57-
- Deprecations are targeted at the next :ref:`minor release <pr-milestones>` (e.g. 3.x)
57+
- Deprecations are targeted at the next :ref:`meso release <pr-milestones>` (e.g. 3.x)
5858
- Deprecated API is generally removed (expired) two point-releases after introduction
5959
of the deprecation. Longer deprecations can be imposed by core developers on
6060
a case-by-case basis to give more time for the transition
@@ -200,7 +200,7 @@ For example::
200200

201201
For classes and functions, the directive should be placed before the
202202
*Parameters* section. For parameters, the directive should be placed at the
203-
end of the parameter description. The patch release version is omitted and
203+
end of the parameter description. The micro release version is omitted and
204204
the directive should not be added to entire modules.
205205

206206
Release notes

‎doc/devel/min_dep_policy.rst

Copy file name to clipboardExpand all lines: doc/devel/min_dep_policy.rst
+5-4Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
Dependency version policy
55
=========================
66

7-
For the purpose of this document, 'minor version' is in the sense of
8-
SemVer (major, minor, patch) and includes both major and minor
9-
releases. For projects that use date-based versioning, every release
10-
is a 'minor version'.
7+
For the purpose of this document, 'minor version' is in the sense of SemVer
8+
(major, minor, patch) or 'meso version' in the sense of `EffVer
9+
<https://jacobtomlinson.dev/effver/>`_ (macro, meso, micro). It includes both
10+
major/macro and minor/meso releases. For projects that use date-based
11+
versioning, every release is a 'minor version'.
1112

1213
Matplotlib follows `NEP 29
1314
<https://numpy.org/neps/nep-0029-deprecation_policy.html>`__.

‎doc/devel/pr_guide.rst

Copy file name to clipboardExpand all lines: doc/devel/pr_guide.rst
+9-9Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,11 @@ Milestones
151151

152152
Set the milestone according to these guidelines:
153153

154-
* *New features and API changes* are milestoned for the next minor release
154+
* *New features and API changes* are milestoned for the next meso release
155155
``v3.N.0``.
156156

157157
* *Bugfixes, tests for released code, and docstring changes* may be milestoned
158-
for the next patch release ``v3.N.M``.
158+
for the next micro release ``v3.N.M``.
159159

160160
* *Documentation changes* (only .rst files and examples) may be milestoned
161161
``v3.N-doc``.
@@ -250,15 +250,15 @@ Current branches
250250
The current active branches are
251251

252252
*main*
253-
The current development version. Future minor releases (*v3.N.0*) will be
253+
The current development version. Future meso (*v3.N.0*) or macro (*v4.0.0*) will be
254254
branched from this.
255255

256256
*v3.N.x*
257-
Maintenance branch for Matplotlib 3.N. Future patch releases will be
258-
branched from this.
257+
Maintenance branch for Matplotlib 3.N. Future micro releases will be
258+
tagged from this.
259259

260260
*v3.N.M-doc*
261-
Documentation for the current release. On a patch release, this will be
261+
Documentation for the current micro release. On a micro release, this will be
262262
replaced by a properly named branch for the new release.
263263

264264

@@ -279,14 +279,14 @@ work.
279279
Backport strategy
280280
-----------------
281281

282-
Backports to the patch release branch (*v3.N.x*) are the changes that will be
282+
Backports to the micro release branch (*v3.N.x*) are the changes that will be
283283
included in the next patch (aka bug-fix) release. The goal of the patch
284284
releases is to fix bugs without adding any new regressions or behavior changes.
285285
We will always attempt to backport:
286286

287287
- critical bug fixes (segfault, failure to import, things that the
288288
user cannot work around)
289-
- fixes for regressions introduced in the last two minor releases
289+
- fixes for regressions introduced in the last two meso releases
290290

291291
and may attempt to backport fixes for regressions introduced in older releases.
292292

@@ -296,7 +296,7 @@ effort and risk of re-implementing the bug fix vs the severity of the bug.
296296
When in doubt, err on the side of not backporting.
297297

298298
When backporting a Pull Request fails or is declined, re-milestone the original
299-
PR to the next minor release and leave a comment explaining why.
299+
PR to the next meso release and leave a comment explaining why.
300300

301301
The only changes backported to the documentation branch (*v3.N.M-doc*)
302302
are changes to :file:`doc` or :file:`galleries`. Any changes to :file:`lib`

‎doc/devel/release_guide.rst

Copy file name to clipboardExpand all lines: doc/devel/release_guide.rst
+55-24Lines changed: 55 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,51 @@ Release guide
1212
A guide for developers who are doing a Matplotlib release.
1313

1414

15-
.. note::
1615

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.
1944

2045

2146
.. _release_feature_freeze:
2247

2348
Making the release branch
2449
=========================
2550

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.
2758
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
2960
feature freeze (i.e. newly implemented features will be going into vX.Y+1).
3061
This does not necessarily mean that no further changes will be made prior to release,
3162
just that those changes will be made using the backport system.
@@ -50,12 +81,12 @@ Micro versions should instead read::
5081
on-merge: backport to v3.7.x
5182

5283
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
5485
``v3.6.x`` and ``v3.7.x`` once the ``v3.7.x`` branch exists and while PR backports are
5586
still targeting ``v3.6.x``)
5687

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,
5990
this milestone can help with longer term planning, especially around deprecation
6091
cycles.
6192

@@ -142,15 +173,15 @@ are going to tag on and delete the doc branch on GitHub.
142173
Update supported versions in Security Policy
143174
--------------------------------------------
144175

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
146177
Policy in :file:`SECURITY.md`.
147178

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.
150181

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
154185
basis.
155186

156187
Update release notes
@@ -159,7 +190,7 @@ Update release notes
159190
What's new
160191
^^^^^^^^^^
161192

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
163194
features.*
164195

165196
Merge the contents of all the files in :file:`doc/users/next_whats_new/` into a single
@@ -169,8 +200,8 @@ files.
169200
API changes
170201
^^^^^^^^^^^
171202

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.*
174205

175206
Merge the contents of all the files in :file:`doc/api/next_api_changes/` into a single
176207
file :file:`doc/api/prev_api_changes/api_changes_{X}.{Y}.{Z}.rst` and delete the
@@ -181,7 +212,7 @@ Release notes TOC
181212

182213
Update :file:`doc/users/release_notes.rst`:
183214

184-
- For major and minor releases add a new section
215+
- For macro and meso releases add a new section
185216

186217
.. code:: rst
187218
@@ -193,7 +224,7 @@ Update :file:`doc/users/release_notes.rst`:
193224
prev_whats_new/whats_new_X.Y.0.rst
194225
../api/prev_api_changes/api_changes_X.Y.0.rst
195226
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
197228
the existing X.Y section
198229

199230
.. code:: rst
@@ -206,8 +237,8 @@ Update version switcher
206237

207238
Update ``doc/_static/switcher.json``:
208239

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}
211242
(dev)` and :samp:`name: {X}.{Y} (stable)` as well as adding a new version for the
212243
previous stable (:samp:`name: {X}.{Y-1}`).
213244

@@ -259,8 +290,8 @@ Finally, push the tag to GitHub::
259290

260291
Congratulations, the scariest part is done!
261292
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)
264295

265296
.. [#] The tarball that is provided by GitHub is produced using `git archive`_.
266297
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
298329
on-merge: backport to v3.7.0-doc
299330

300331
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``
302333
if the ``v3.7.x`` branch exists)
303334

304335

‎doc/devel/triage.rst

Copy file name to clipboardExpand all lines: doc/devel/triage.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ The following workflow is a good way to approach issue triaging:
160160

161161
While we strive for a bug-free library, regressions are the highest
162162
priority. If we have broken user-code that *used to* work, we should
163-
fix that in the next patch release!
163+
fix that in the next micro release!
164164

165165
Try to determine when the regression happened by running the
166166
reproduction code against older versions of Matplotlib. This can

‎doc/users/prev_whats_new/whats_new_1.3.rst

Copy file name to clipboardExpand all lines: doc/users/prev_whats_new/whats_new_1.3.rst
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ What's new in Matplotlib 1.3 (Aug 01, 2013)
1313
New in 1.3.1
1414
------------
1515

16-
1.3.1 is a bugfix release, primarily dealing with improved setup and
16+
1.3.1 is a micro release, primarily dealing with improved setup and
1717
handling of dependencies, and correcting and enhancing the
1818
documentation.
1919

‎lib/matplotlib/_api/deprecation.py

Copy file name to clipboardExpand all lines: lib/matplotlib/_api/deprecation.py
+6-3Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,17 @@ def _generate_deprecation_warning(
2929
raise ValueError(
3030
"A pending deprecation cannot have a scheduled removal")
3131
else:
32-
removal = f"in {removal}" if removal else "two minor releases later"
32+
if not removal:
33+
macro, meso, *_ = since.split('.')
34+
removal = f'{macro}.{int(meso) + 2}'
35+
removal = f"in {removal}"
3336
if not message:
3437
message = (
3538
("The %(name)s %(obj_type)s" if obj_type else "%(name)s")
3639
+ (" will be deprecated in a future version"
3740
if pending else
38-
(" was deprecated in Matplotlib %(since)s"
39-
+ (" and will be removed %(removal)s" if removal else "")))
41+
" was deprecated in Matplotlib %(since)s and will be removed %(removal)s"
42+
)
4043
+ "."
4144
+ (" Use %(alternative)s instead." if alternative else "")
4245
+ (" %(addendum)s" if addendum else ""))

‎lib/matplotlib/tests/test_pyplot.py

Copy file name to clipboardExpand all lines: lib/matplotlib/tests/test_pyplot.py
+2-2Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ def test_pyplot_up_to_date(tmp_path):
4343

4444

4545
def test_copy_docstring_and_deprecators(recwarn):
46-
@mpl._api.rename_parameter("(version)", "old", "new")
47-
@mpl._api.make_keyword_only("(version)", "kwo")
46+
@mpl._api.rename_parameter(mpl.__version__, "old", "new")
47+
@mpl._api.make_keyword_only(mpl.__version__, "kwo")
4848
def func(new, kwo=None):
4949
pass
5050

‎src/ft2font_wrapper.cpp

Copy file name to clipboardExpand all lines: src/ft2font_wrapper.cpp
+3-3Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ static PyObject *PyFT2Image_draw_rect(PyFT2Image *self, PyObject *args)
7575
{
7676
char const* msg =
7777
"FT2Image.draw_rect is deprecated since Matplotlib 3.8 and will be removed "
78-
"two minor releases later as it is not used in the library. If you rely on "
79-
"it, please let us know.";
78+
"in Matplotlib 3.10 releases later as it is not used in the library. "
79+
"If you rely on it, please let us know.";
8080
if (PyErr_WarnEx(PyExc_DeprecationWarning, msg, 1)) {
8181
return NULL;
8282
}
@@ -841,7 +841,7 @@ static PyObject *PyFT2Font_get_xys(PyFT2Font *self, PyObject *args, PyObject *kw
841841
{
842842
char const* msg =
843843
"FT2Font.get_xys is deprecated since Matplotlib 3.8 and will be removed two "
844-
"minor releases later as it is not used in the library. If you rely on it, "
844+
"meso releases later as it is not used in the library. If you rely on it, "
845845
"please let us know.";
846846
if (PyErr_WarnEx(PyExc_DeprecationWarning, msg, 1)) {
847847
return NULL;

‎tools/github_stats.py

Copy file name to clipboardExpand all lines: tools/github_stats.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ def report(issues, show_urls=False):
169169
parser.add_argument(
170170
'--since-tag', type=str,
171171
help='The git tag to use for the starting point '
172-
'(typically the last major release).')
172+
'(typically the last macro release).')
173173
parser.add_argument(
174174
'--milestone', type=str,
175175
help='The GitHub milestone to use for filtering issues [optional].')

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.