diff --git a/SECURITY.md b/SECURITY.md
index ce022ca60a0f..4400a4501b51 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -8,14 +8,13 @@ versions.
| Version | Supported |
| ------- | ------------------ |
+| 3.10.x | :white_check_mark: |
| 3.9.x | :white_check_mark: |
-| 3.8.x | :white_check_mark: |
+| 3.8.x | :x: |
| 3.7.x | :x: |
| 3.6.x | :x: |
| 3.5.x | :x: |
-| 3.4.x | :x: |
-| 3.3.x | :x: |
-| < 3.3 | :x: |
+| < 3.5 | :x: |
## Reporting a Vulnerability
diff --git a/doc/_static/zenodo_cache/14249941.svg b/doc/_static/zenodo_cache/14249941.svg
new file mode 100644
index 000000000000..f9165f17fdf0
--- /dev/null
+++ b/doc/_static/zenodo_cache/14249941.svg
@@ -0,0 +1,35 @@
+
\ No newline at end of file
diff --git a/doc/_static/zenodo_cache/14436121.svg b/doc/_static/zenodo_cache/14436121.svg
new file mode 100644
index 000000000000..1e4a7cd5b7a4
--- /dev/null
+++ b/doc/_static/zenodo_cache/14436121.svg
@@ -0,0 +1,35 @@
+
\ No newline at end of file
diff --git a/doc/api/next_api_changes/behavior/26000-t.rst b/doc/api/next_api_changes/behavior/26000-t.rst
deleted file mode 100644
index 054feb0887e6..000000000000
--- a/doc/api/next_api_changes/behavior/26000-t.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-onselect argument to selector widgets made optional
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The *onselect* argument to `.EllipseSelector`, `.LassoSelector`, `.PolygonSelector`, and
-`.RectangleSelector` is no longer required.
diff --git a/doc/api/next_api_changes/behavior/27744-FM.rst b/doc/api/next_api_changes/behavior/27744-FM.rst
deleted file mode 100644
index ae0d86336f81..000000000000
--- a/doc/api/next_api_changes/behavior/27744-FM.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-``NavigationToolbar2.save_figure`` now returns filepath of saved figure
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-``NavigationToolbar2.save_figure`` function may return the filename of the saved figure.
-
-If a backend implements this functionality it should return `None`
-in the case where no figure is actually saved (because the user closed the dialog without saving).
-
-If the backend does not or can not implement this functionality (currently the Gtk4 backends
-and webagg backends do not) this method will return ``NavigationToolbar2.UNKNOWN_SAVED_STATUS``.
diff --git a/doc/api/next_api_changes/behavior/27833-JA.rst b/doc/api/next_api_changes/behavior/27833-JA.rst
deleted file mode 100644
index 59323f56108f..000000000000
--- a/doc/api/next_api_changes/behavior/27833-JA.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-SVG output: improved reproducibility
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Some SVG-format plots `produced different output on each render `__, even with a static ``svg.hashsalt`` value configured.
-
-The problem was a non-deterministic ID-generation scheme for clip paths; the fix introduces a repeatable, monotonically increasing integer ID scheme as a replacement.
-
-Provided that plots add clip paths themselves in deterministic order, this enables repeatable (a.k.a. reproducible, deterministic) SVG output.
diff --git a/doc/api/next_api_changes/behavior/27891-ES.rst b/doc/api/next_api_changes/behavior/27891-ES.rst
deleted file mode 100644
index f60b4b320a44..000000000000
--- a/doc/api/next_api_changes/behavior/27891-ES.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-ft2font classes are now final
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The ft2font classes `.ft2font.FT2Font`, and `.ft2font.FT2Image` are now final
-and can no longer be subclassed.
diff --git a/doc/api/next_api_changes/behavior/27996-REC.rst b/doc/api/next_api_changes/behavior/27996-REC.rst
deleted file mode 100644
index fe81a34073b8..000000000000
--- a/doc/api/next_api_changes/behavior/27996-REC.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-``InsetIndicator`` artist
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-`~.Axes.indicate_inset` and `~.Axes.indicate_inset_zoom` now return an instance
-of `~matplotlib.inset.InsetIndicator`. Use the
-`~matplotlib.inset.InsetIndicator.rectangle` and
-`~matplotlib.inset.InsetIndicator.connectors` properties of this artist to
-access the objects that were previously returned directly.
diff --git a/doc/api/next_api_changes/behavior/28061-JMK.rst b/doc/api/next_api_changes/behavior/28061-JMK.rst
deleted file mode 100644
index e3ffb783b394..000000000000
--- a/doc/api/next_api_changes/behavior/28061-JMK.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-``imshow`` *interpolation_stage* default changed to 'auto'
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The *interpolation_stage* parameter of `~.Axes.imshow` has a new default
-value 'auto'. For images that are up-sampled less than a factor of
-three or down-sampled, image interpolation will occur in 'rgba' space. For images
-that are up-sampled by a factor of 3 or more, then image interpolation occurs
-in 'data' space.
-
-The previous default was 'data', so down-sampled images may change subtly with
-the new default. However, the new default also avoids floating point artifacts
-at sharp boundaries in a colormap when down-sampling.
-
-The previous behavior can achieved by setting the *interpolation_stage* parameter
-or :rc:`image.interpolation_stage` to 'data'.
-
-imshow default *interpolation* changed to 'auto'
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The *interpolation* parameter of `~.Axes.imshow` has a new default
-value 'auto', changed from 'antialiased', for consistency with *interpolation_stage*
-and because the interpolation is only anti-aliasing during down-sampling. Passing
-'antialiased' still works, and behaves exactly the same as 'auto', but is discouraged.
diff --git a/doc/api/next_api_changes/behavior/28156-AL.rst b/doc/api/next_api_changes/behavior/28156-AL.rst
deleted file mode 100644
index af9c2b142261..000000000000
--- a/doc/api/next_api_changes/behavior/28156-AL.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-dark_background and fivethirtyeight styles no longer set ``savefig.facecolor`` and ``savefig.edgecolor``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When using these styles, :rc:`savefig.facecolor` and :rc:`savefig.edgecolor`
-now inherit the global default value of "auto", which means that the actual
-figure colors will be used. Previously, these rcParams were set to the same
-values as :rc:`figure.facecolor` and :rc:`figure.edgecolor`, i.e. a saved
-figure would always use the theme colors even if the user manually overrode
-them; this is no longer the case.
-
-This change should have no impact for users that do not manually set the figure
-face and edge colors.
diff --git a/doc/api/next_api_changes/behavior/28177-REC.rst b/doc/api/next_api_changes/behavior/28177-REC.rst
deleted file mode 100644
index d7ea8ec0e947..000000000000
--- a/doc/api/next_api_changes/behavior/28177-REC.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-(Sub)Figure.get_figure
-~~~~~~~~~~~~~~~~~~~~~~
-
-...in future will by default return the direct parent figure, which may be a SubFigure.
-This will make the default behavior consistent with the
-`~matplotlib.artist.Artist.get_figure` method of other artists. To control the
-behavior, use the newly introduced *root* parameter.
diff --git a/doc/api/next_api_changes/behavior/28354-YN.rst b/doc/api/next_api_changes/behavior/28354-YN.rst
deleted file mode 100644
index 69c25575c516..000000000000
--- a/doc/api/next_api_changes/behavior/28354-YN.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Add zorder option in QuiverKey
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-``zorder`` can be used as a keyword argument to `.QuiverKey`. Previously,
-that parameter did not have any effect because the zorder was hard coded.
diff --git a/doc/api/next_api_changes/behavior/28363-TS.rst b/doc/api/next_api_changes/behavior/28363-TS.rst
deleted file mode 100644
index 2242f3929e04..000000000000
--- a/doc/api/next_api_changes/behavior/28363-TS.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Subfigures
-~~~~~~~~~~
-
-`.Figure.subfigures` are now added in row-major order to be consistent with
-`.Figure.subplots`. The return value of `~.Figure.subfigures` is not changed,
-but the order of ``fig.subfigs`` is.
diff --git a/doc/api/next_api_changes/behavior/28375-MP.rst b/doc/api/next_api_changes/behavior/28375-MP.rst
deleted file mode 100644
index 75d7f7cf5030..000000000000
--- a/doc/api/next_api_changes/behavior/28375-MP.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-``transforms.AffineDeltaTransform`` updates correctly on axis limit changes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Before this change, transform sub-graphs with ``AffineDeltaTransform`` did not update correctly.
-This PR ensures that changes to the child transform are passed through correctly.
diff --git a/doc/api/next_api_changes/behavior/28501-OV.rst b/doc/api/next_api_changes/behavior/28501-OV.rst
deleted file mode 100644
index cc816e55f696..000000000000
--- a/doc/api/next_api_changes/behavior/28501-OV.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-The offset string associated with ConciseDateFormatter will now invert when the axis is inverted
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Previously, when the axis was inverted, the offset string associated with ConciseDateFormatter would not change,
-so the offset string indicated the axis was oriented in the wrong direction. Now, when the axis is inverted, the offset
-string is oriented correctly.
diff --git a/doc/api/next_api_changes/behavior/28734-REC.rst b/doc/api/next_api_changes/behavior/28734-REC.rst
deleted file mode 100644
index 825922f4fafb..000000000000
--- a/doc/api/next_api_changes/behavior/28734-REC.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-``suptitle`` in compressed layout
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Compressed layout now automatically positions the `~.Figure.suptitle` just
-above the top row of axes. To keep this title in its previous position,
-either pass ``in_layout=False`` or explicitly set ``y=0.98`` in the
-`~.Figure.suptitle` call.
diff --git a/doc/api/next_api_changes/deprecations/27385-SS.rst b/doc/api/next_api_changes/deprecations/27385-SS.rst
deleted file mode 100644
index b388ce22eb2b..000000000000
--- a/doc/api/next_api_changes/deprecations/27385-SS.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-``proj3d.proj_transform_clip``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-... is deprecated with no replacement.
diff --git a/doc/api/next_api_changes/deprecations/27786-TH.rst b/doc/api/next_api_changes/deprecations/27786-TH.rst
deleted file mode 100644
index 6b66e0dba963..000000000000
--- a/doc/api/next_api_changes/deprecations/27786-TH.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Positional parameters in plotting functions
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Many plotting functions will restrict positional arguments to the first few parameters
-in the future. All further configuration parameters will have to be passed as keyword
-arguments. This is to enforce better code and and allow for future changes with reduced
-risk of breaking existing code.
diff --git a/doc/api/next_api_changes/deprecations/28007-TH.rst b/doc/api/next_api_changes/deprecations/28007-TH.rst
deleted file mode 100644
index cfaa329dd9e0..000000000000
--- a/doc/api/next_api_changes/deprecations/28007-TH.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Changing ``Figure.number``
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Changing ``Figure.number`` is deprecated. This value is used by `.pyplot`
-to identify figures. It must stay in sync with the pyplot internal state
-and is not intended to be modified by the user.
diff --git a/doc/api/next_api_changes/deprecations/28048-PR.rst b/doc/api/next_api_changes/deprecations/28048-PR.rst
deleted file mode 100644
index 4e90a3aced19..000000000000
--- a/doc/api/next_api_changes/deprecations/28048-PR.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-``PdfFile.hatchPatterns``
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-... is deprecated.
diff --git a/doc/api/next_api_changes/deprecations/28177-REC.rst b/doc/api/next_api_changes/deprecations/28177-REC.rst
deleted file mode 100644
index a3e630630aeb..000000000000
--- a/doc/api/next_api_changes/deprecations/28177-REC.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-(Sub)Figure.set_figure
-~~~~~~~~~~~~~~~~~~~~~~
-
-...is deprecated and in future will always raise an exception. The parent and
-root figures of a (Sub)Figure are set at instantiation and cannot be changed.
diff --git a/doc/api/next_api_changes/deprecations/28201-AT.rst b/doc/api/next_api_changes/deprecations/28201-AT.rst
deleted file mode 100644
index 56205315a7c1..000000000000
--- a/doc/api/next_api_changes/deprecations/28201-AT.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-``Poly3DCollection.get_vector``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-... is deprecated with no replacement.
diff --git a/doc/api/next_api_changes/deprecations/28670-TAC.rst b/doc/api/next_api_changes/deprecations/28670-TAC.rst
deleted file mode 100644
index e970abf69d54..000000000000
--- a/doc/api/next_api_changes/deprecations/28670-TAC.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Deprecated ``register`` on ``matplotlib.patches._Styles`` and subclasses
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This class method is never used internally. Due to the internal check in the
-method it only accepts subclasses of a private baseclass embedded in the host
-class which makes it unlikely that it has been used externally.
diff --git a/doc/api/next_api_changes/deprecations/28728-TH.rst b/doc/api/next_api_changes/deprecations/28728-TH.rst
deleted file mode 100644
index 56d5a80b439c..000000000000
--- a/doc/api/next_api_changes/deprecations/28728-TH.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-matplotlib.validate_backend
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-...is deprecated. Please use `matplotlib.rcsetup.validate_backend` instead.
-
-
-matplotlib.sanitize_sequence
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-...is deprecated. Please use `matplotlib.cbook.sanitize_sequence` instead.
diff --git a/doc/api/next_api_changes/deprecations/28842-ES.rst b/doc/api/next_api_changes/deprecations/28842-ES.rst
deleted file mode 100644
index d88d3f7b9538..000000000000
--- a/doc/api/next_api_changes/deprecations/28842-ES.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-ft2font module-level constants replaced by enums
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The `.ft2font`-level constants have been converted to `enum` classes, and all API using
-them now take/return the new types.
-
-The following constants are now part of `.ft2font.Kerning` (without the ``KERNING_``
-prefix):
-
-- ``KERNING_DEFAULT``
-- ``KERNING_UNFITTED``
-- ``KERNING_UNSCALED``
-
-The following constants are now part of `.ft2font.LoadFlags` (without the ``LOAD_``
-prefix):
-
-- ``LOAD_DEFAULT``
-- ``LOAD_NO_SCALE``
-- ``LOAD_NO_HINTING``
-- ``LOAD_RENDER``
-- ``LOAD_NO_BITMAP``
-- ``LOAD_VERTICAL_LAYOUT``
-- ``LOAD_FORCE_AUTOHINT``
-- ``LOAD_CROP_BITMAP``
-- ``LOAD_PEDANTIC``
-- ``LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH``
-- ``LOAD_NO_RECURSE``
-- ``LOAD_IGNORE_TRANSFORM``
-- ``LOAD_MONOCHROME``
-- ``LOAD_LINEAR_DESIGN``
-- ``LOAD_NO_AUTOHINT``
-- ``LOAD_TARGET_NORMAL``
-- ``LOAD_TARGET_LIGHT``
-- ``LOAD_TARGET_MONO``
-- ``LOAD_TARGET_LCD``
-- ``LOAD_TARGET_LCD_V``
-
-The following constants are now part of `.ft2font.FaceFlags`:
-
-- ``EXTERNAL_STREAM``
-- ``FAST_GLYPHS``
-- ``FIXED_SIZES``
-- ``FIXED_WIDTH``
-- ``GLYPH_NAMES``
-- ``HORIZONTAL``
-- ``KERNING``
-- ``MULTIPLE_MASTERS``
-- ``SCALABLE``
-- ``SFNT``
-- ``VERTICAL``
-
-The following constants are now part of `.ft2font.StyleFlags`:
-
-- ``ITALIC``
-- ``BOLD``
diff --git a/doc/api/next_api_changes/deprecations/28843-TH.rst b/doc/api/next_api_changes/deprecations/28843-TH.rst
deleted file mode 100644
index 25dc91be3ccc..000000000000
--- a/doc/api/next_api_changes/deprecations/28843-TH.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-FontProperties initialization
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-`.FontProperties` initialization is limited to the two call patterns:
-
-- single positional parameter, interpreted as fontconfig pattern
-- only keyword parameters for setting individual properties
-
-All other previously supported call patterns are deprecated.
diff --git a/doc/api/next_api_changes/deprecations/28933-AL.rst b/doc/api/next_api_changes/deprecations/28933-AL.rst
deleted file mode 100644
index b551c124b4e0..000000000000
--- a/doc/api/next_api_changes/deprecations/28933-AL.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-``AxLine`` ``xy1`` and ``xy2`` setters
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-These setters now each take a single argument, ``xy1`` or ``xy2`` as a tuple.
-The old form, where ``x`` and ``y`` were passed as separate arguments, is
-deprecated.
diff --git a/doc/api/next_api_changes/deprecations/28946-TH.rst b/doc/api/next_api_changes/deprecations/28946-TH.rst
deleted file mode 100644
index 6a2f09108686..000000000000
--- a/doc/api/next_api_changes/deprecations/28946-TH.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Calling ``pyplot.polar()`` with an existing non-polar Axes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This currently plots the data into the non-polar Axes, ignoring
-the "polar" intention. This usage scenario is deprecated and
-will raise an error in the future.
diff --git a/doc/api/next_api_changes/deprecations/28967-ES.rst b/doc/api/next_api_changes/deprecations/28967-ES.rst
deleted file mode 100644
index 8bb238def943..000000000000
--- a/doc/api/next_api_changes/deprecations/28967-ES.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-Passing floating-point values to ``RendererAgg.draw_text_image``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Any floating-point values passed to the *x* and *y* parameters were truncated to integers
-silently. This behaviour is now deprecated, and only `int` values should be used.
-
-Passing floating-point values to ``FT2Image``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Any floating-point values passed to the `.FT2Image` constructor, or the *x0*, *y0*, *x1*,
-and *y1* parameters of `.FT2Image.draw_rect_filled` were truncated to integers silently.
-This behaviour is now deprecated, and only `int` values should be used.
diff --git a/doc/api/next_api_changes/development/28289-ES.rst b/doc/api/next_api_changes/development/28289-ES.rst
deleted file mode 100644
index f891c63a64bf..000000000000
--- a/doc/api/next_api_changes/development/28289-ES.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Documentation-specific custom Sphinx roles are now semi-public
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-For third-party packages that derive types from Matplotlib, our use of custom roles may
-prevent Sphinx from building their docs. These custom Sphinx roles are now public solely
-for the purposes of use within projects that derive from Matplotlib types. See
-:mod:`matplotlib.sphinxext.roles` for details.
diff --git a/doc/api/next_api_changes/removals/20866-JKS.rst b/doc/api/next_api_changes/removals/20866-JKS.rst
deleted file mode 100644
index 45878dc38e16..000000000000
--- a/doc/api/next_api_changes/removals/20866-JKS.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ttconv removed
-~~~~~~~~~~~~~~
-
-The ``matplotlib._ttconv`` extension has been removed. Most of its
-functionality was already replaced by other code, and the only thing left
-was embedding TTF fonts in PostScript in Type 42 format. This is now
-done in the PS backend using the FontTools library.
diff --git a/doc/api/next_api_changes/removals/27218-TAC.rst b/doc/api/next_api_changes/removals/27218-TAC.rst
deleted file mode 100644
index ac69e8a96a26..000000000000
--- a/doc/api/next_api_changes/removals/27218-TAC.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Remove hard reference to ``lastevent`` in ``LocationEvent``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-
-This was previously used to detect exiting from axes, however the hard
-reference would keep closed `.Figure` objects and their children alive longer
-than expected.
diff --git a/doc/api/next_api_changes/removals/27891-ES.rst b/doc/api/next_api_changes/removals/27891-ES.rst
deleted file mode 100644
index cb658e9bc671..000000000000
--- a/doc/api/next_api_changes/removals/27891-ES.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-``ft2font.FT2Image.draw_rect`` and ``ft2font.FT2Font.get_xys``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-... have been removed as they are unused.
diff --git a/doc/api/next_api_changes/removals/28183-OG.rst b/doc/api/next_api_changes/removals/28183-OG.rst
deleted file mode 100644
index 55745e47809a..000000000000
--- a/doc/api/next_api_changes/removals/28183-OG.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-``Tick.set_label``, ``Tick.set_label1`` and ``Tick.set_label2``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-... are removed. Calling these methods from third-party code usually had no
-effect, as the labels are overwritten at draw time by the tick formatter.
-
-
-Functions in ``mpl_toolkits.mplot3d.proj3d``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The function ``transform`` is just an alias for ``proj_transform``,
-use the latter instead.
-
-The following functions were either unused (so no longer required in Matplotlib)
-or considered private.
-
-* ``ortho_transformation``
-* ``persp_transformation``
-* ``proj_points``
-* ``proj_trans_points``
-* ``rot_x``
-* ``rotation_about_vector``
-* ``view_transformation``
-
-
-Arguments other than ``renderer`` to ``get_tightbbox``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-... are keyword-only arguments. This is for consistency and that
-different classes have different additional arguments.
-
-
-Method parameters renamed to match base classes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The only parameter of ``transform_affine`` and ``transform_non_affine`` in ``Transform`` subclasses is renamed
-to *values*.
-
-The *points* parameter of ``transforms.IdentityTransform.transform`` is renamed to *values*.
-
-The *trans* parameter of ``table.Cell.set_transform`` is renamed to *t* consistently with
-`.Artist.set_transform`.
-
-The *clippath* parameters of ``axis.Axis.set_clip_path`` and ``axis.Tick.set_clip_path`` are
-renamed to *path* consistently with `.Artist.set_clip_path`.
-
-The *s* parameter of ``images.NonUniformImage.set_filternorm`` is renamed to *filternorm*
-consistently with ``_ImageBase.set_filternorm``.
-
-The *s* parameter of ``images.NonUniformImage.set_filterrad`` is renamed to *filterrad*
-consistently with ``_ImageBase.set_filterrad``.
-
-The only parameter of ``Annotation.contains`` and ``Legend.contains`` is renamed to *mouseevent*
-consistently with `.Artist.contains`.
-
-Method parameters renamed
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The *p* parameter of ``BboxBase.padded`` is renamed to *w_pad*, consistently with the other parameter, *h_pad*
-
-*numdecs* parameter and attribute of ``LogLocator``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-... are removed without replacement, because they had no effect.
diff --git a/doc/api/next_api_changes/removals/28492-GML.rst b/doc/api/next_api_changes/removals/28492-GML.rst
deleted file mode 100644
index 953b01b9489f..000000000000
--- a/doc/api/next_api_changes/removals/28492-GML.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-The ``PolyQuadMesh`` class requires full 2D arrays of values
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Previously, if a masked array was input, the list of polygons within the collection
-would shrink to the size of valid polygons and users were required to keep track of
-which polygons were drawn and call ``set_array()`` with the smaller "compressed"
-array size. Passing the "compressed" and flattened array values will no longer
-work and the full 2D array of values (including the mask) should be passed
-to `.PolyQuadMesh.set_array`.
diff --git a/doc/api/next_api_changes/removals/28767-REC.rst b/doc/api/next_api_changes/removals/28767-REC.rst
deleted file mode 100644
index a06d78245761..000000000000
--- a/doc/api/next_api_changes/removals/28767-REC.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-``ContourSet.collections``
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-... has been removed. `~.ContourSet` is now implemented as a single
-`~.Collection` of paths, each path corresponding to a contour level, possibly
-including multiple unconnected components.
-
-``ContourSet.antialiased``
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-... has been removed. Use `~.Collection.get_antialiased` or
-`~.Collection.set_antialiased` instead. Note that `~.Collection.get_antialiased`
-returns an array.
-
-``tcolors`` and ``tlinewidths`` attributes of ``ContourSet``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-... have been removed. Use `~.Collection.get_facecolor`, `~.Collection.get_edgecolor`
-or `~.Collection.get_linewidths` instead.
-
-
-``calc_label_rot_and_inline`` method of ``ContourLabeler``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-... has been removed without replacement.
-
-
-``add_label_clabeltext`` method of ``ContourLabeler``
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-... has been removed. Use `~.ContourLabeler.add_label` instead.
diff --git a/doc/api/prev_api_changes/api_changes_3.10.0.rst b/doc/api/prev_api_changes/api_changes_3.10.0.rst
new file mode 100644
index 000000000000..83bde66213f3
--- /dev/null
+++ b/doc/api/prev_api_changes/api_changes_3.10.0.rst
@@ -0,0 +1,14 @@
+API Changes for 3.10.0
+======================
+
+.. contents::
+ :local:
+ :depth: 1
+
+.. include:: /api/prev_api_changes/api_changes_3.10.0/behaviour.rst
+
+.. include:: /api/prev_api_changes/api_changes_3.10.0/deprecations.rst
+
+.. include:: /api/prev_api_changes/api_changes_3.10.0/removals.rst
+
+.. include:: /api/prev_api_changes/api_changes_3.10.0/development.rst
diff --git a/doc/api/prev_api_changes/api_changes_3.10.0/behavior.rst b/doc/api/prev_api_changes/api_changes_3.10.0/behavior.rst
new file mode 100644
index 000000000000..87da6568a860
--- /dev/null
+++ b/doc/api/prev_api_changes/api_changes_3.10.0/behavior.rst
@@ -0,0 +1,118 @@
+onselect argument to selector widgets made optional
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The *onselect* argument to `.EllipseSelector`, `.LassoSelector`, `.PolygonSelector`, and
+`.RectangleSelector` is no longer required.
+
+``NavigationToolbar2.save_figure`` now returns filepath of saved figure
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``NavigationToolbar2.save_figure`` function may return the filename of the saved figure.
+
+If a backend implements this functionality it should return `None`
+in the case where no figure is actually saved (because the user closed the dialog without saving).
+
+If the backend does not or can not implement this functionality (currently the Gtk4 backends
+and webagg backends do not) this method will return ``NavigationToolbar2.UNKNOWN_SAVED_STATUS``.
+
+SVG output: improved reproducibility
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Some SVG-format plots `produced different output on each render `__, even with a static ``svg.hashsalt`` value configured.
+
+The problem was a non-deterministic ID-generation scheme for clip paths; the fix introduces a repeatable, monotonically increasing integer ID scheme as a replacement.
+
+Provided that plots add clip paths themselves in deterministic order, this enables repeatable (a.k.a. reproducible, deterministic) SVG output.
+
+ft2font classes are now final
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The ft2font classes `.ft2font.FT2Font`, and `.ft2font.FT2Image` are now final
+and can no longer be subclassed.
+
+``InsetIndicator`` artist
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`~.Axes.indicate_inset` and `~.Axes.indicate_inset_zoom` now return an instance
+of `~matplotlib.inset.InsetIndicator`. Use the
+`~matplotlib.inset.InsetIndicator.rectangle` and
+`~matplotlib.inset.InsetIndicator.connectors` properties of this artist to
+access the objects that were previously returned directly.
+
+``imshow`` *interpolation_stage* default changed to 'auto'
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The *interpolation_stage* parameter of `~.Axes.imshow` has a new default
+value 'auto'. For images that are up-sampled less than a factor of
+three or down-sampled, image interpolation will occur in 'rgba' space. For images
+that are up-sampled by a factor of 3 or more, then image interpolation occurs
+in 'data' space.
+
+The previous default was 'data', so down-sampled images may change subtly with
+the new default. However, the new default also avoids floating point artifacts
+at sharp boundaries in a colormap when down-sampling.
+
+The previous behavior can achieved by setting the *interpolation_stage* parameter
+or :rc:`image.interpolation_stage` to 'data'.
+
+imshow default *interpolation* changed to 'auto'
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The *interpolation* parameter of `~.Axes.imshow` has a new default
+value 'auto', changed from 'antialiased', for consistency with *interpolation_stage*
+and because the interpolation is only anti-aliasing during down-sampling. Passing
+'antialiased' still works, and behaves exactly the same as 'auto', but is discouraged.
+
+dark_background and fivethirtyeight styles no longer set ``savefig.facecolor`` and ``savefig.edgecolor``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+When using these styles, :rc:`savefig.facecolor` and :rc:`savefig.edgecolor`
+now inherit the global default value of "auto", which means that the actual
+figure colors will be used. Previously, these rcParams were set to the same
+values as :rc:`figure.facecolor` and :rc:`figure.edgecolor`, i.e. a saved
+figure would always use the theme colors even if the user manually overrode
+them; this is no longer the case.
+
+This change should have no impact for users that do not manually set the figure
+face and edge colors.
+
+Add zorder option in QuiverKey
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+``zorder`` can be used as a keyword argument to `.QuiverKey`. Previously,
+that parameter did not have any effect because the zorder was hard coded.
+
+Subfigures
+~~~~~~~~~~
+
+`.Figure.subfigures` are now added in row-major order to be consistent with
+`.Figure.subplots`. The return value of `~.Figure.subfigures` is not changed,
+but the order of ``fig.subfigs`` is.
+
+(Sub)Figure.get_figure
+~~~~~~~~~~~~~~~~~~~~~~
+
+...in future will by default return the direct parent figure, which may be a SubFigure.
+This will make the default behavior consistent with the
+`~matplotlib.artist.Artist.get_figure` method of other artists. To control the
+behavior, use the newly introduced *root* parameter.
+
+
+``transforms.AffineDeltaTransform`` updates correctly on axis limit changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Before this change, transform sub-graphs with ``AffineDeltaTransform`` did not update correctly.
+This PR ensures that changes to the child transform are passed through correctly.
+
+The offset string associated with ConciseDateFormatter will now invert when the axis is inverted
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Previously, when the axis was inverted, the offset string associated with ConciseDateFormatter would not change,
+so the offset string indicated the axis was oriented in the wrong direction. Now, when the axis is inverted, the offset
+string is oriented correctly.
+
+``suptitle`` in compressed layout
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Compressed layout now automatically positions the `~.Figure.suptitle` just
+above the top row of axes. To keep this title in its previous position,
+either pass ``in_layout=False`` or explicitly set ``y=0.98`` in the
+`~.Figure.suptitle` call.
diff --git a/doc/api/prev_api_changes/api_changes_3.10.0/deprecations.rst b/doc/api/prev_api_changes/api_changes_3.10.0/deprecations.rst
new file mode 100644
index 000000000000..ad344b37d069
--- /dev/null
+++ b/doc/api/prev_api_changes/api_changes_3.10.0/deprecations.rst
@@ -0,0 +1,164 @@
+Positional parameters in plotting functions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Many plotting functions will restrict positional arguments to the first few parameters
+in the future. All further configuration parameters will have to be passed as keyword
+arguments. This is to enforce better code and and allow for future changes with reduced
+risk of breaking existing code.
+Changing ``Figure.number``
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Changing ``Figure.number`` is deprecated. This value is used by `.pyplot`
+to identify figures. It must stay in sync with the pyplot internal state
+and is not intended to be modified by the user.
+
+``PdfFile.hatchPatterns``
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+... is deprecated.
+
+(Sub)Figure.set_figure
+~~~~~~~~~~~~~~~~~~~~~~
+
+...is deprecated and in future will always raise an exception. The parent and
+root figures of a (Sub)Figure are set at instantiation and cannot be changed.
+
+``Poly3DCollection.get_vector``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+... is deprecated with no replacement.
+
+Deprecated ``register`` on ``matplotlib.patches._Styles`` and subclasses
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This class method is never used internally. Due to the internal check in the
+method it only accepts subclasses of a private baseclass embedded in the host
+class which makes it unlikely that it has been used externally.
+
+matplotlib.validate_backend
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+...is deprecated. Please use `matplotlib.rcsetup.validate_backend` instead.
+
+
+matplotlib.sanitize_sequence
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+...is deprecated. Please use `matplotlib.cbook.sanitize_sequence` instead.
+
+ft2font module-level constants replaced by enums
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The `.ft2font`-level constants have been converted to `enum` classes, and all API using
+them now take/return the new types.
+
+The following constants are now part of `.ft2font.Kerning` (without the ``KERNING_``
+prefix):
+
+- ``KERNING_DEFAULT``
+- ``KERNING_UNFITTED``
+- ``KERNING_UNSCALED``
+
+The following constants are now part of `.ft2font.LoadFlags` (without the ``LOAD_``
+prefix):
+
+- ``LOAD_DEFAULT``
+- ``LOAD_NO_SCALE``
+- ``LOAD_NO_HINTING``
+- ``LOAD_RENDER``
+- ``LOAD_NO_BITMAP``
+- ``LOAD_VERTICAL_LAYOUT``
+- ``LOAD_FORCE_AUTOHINT``
+- ``LOAD_CROP_BITMAP``
+- ``LOAD_PEDANTIC``
+- ``LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH``
+- ``LOAD_NO_RECURSE``
+- ``LOAD_IGNORE_TRANSFORM``
+- ``LOAD_MONOCHROME``
+- ``LOAD_LINEAR_DESIGN``
+- ``LOAD_NO_AUTOHINT``
+- ``LOAD_TARGET_NORMAL``
+- ``LOAD_TARGET_LIGHT``
+- ``LOAD_TARGET_MONO``
+- ``LOAD_TARGET_LCD``
+- ``LOAD_TARGET_LCD_V``
+
+The following constants are now part of `.ft2font.FaceFlags`:
+
+- ``EXTERNAL_STREAM``
+- ``FAST_GLYPHS``
+- ``FIXED_SIZES``
+- ``FIXED_WIDTH``
+- ``GLYPH_NAMES``
+- ``HORIZONTAL``
+- ``KERNING``
+- ``MULTIPLE_MASTERS``
+- ``SCALABLE``
+- ``SFNT``
+- ``VERTICAL``
+
+The following constants are now part of `.ft2font.StyleFlags`:
+
+- ``ITALIC``
+- ``BOLD``
+
+FontProperties initialization
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+`.FontProperties` initialization is limited to the two call patterns:
+
+- single positional parameter, interpreted as fontconfig pattern
+- only keyword parameters for setting individual properties
+
+All other previously supported call patterns are deprecated.
+
+``AxLine`` ``xy1`` and ``xy2`` setters
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+These setters now each take a single argument, ``xy1`` or ``xy2`` as a tuple.
+The old form, where ``x`` and ``y`` were passed as separate arguments, is
+deprecated.
+
+Calling ``pyplot.polar()`` with an existing non-polar Axes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This currently plots the data into the non-polar Axes, ignoring
+the "polar" intention. This usage scenario is deprecated and
+will raise an error in the future.
+
+Passing floating-point values to ``RendererAgg.draw_text_image``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Any floating-point values passed to the *x* and *y* parameters were truncated to integers
+silently. This behaviour is now deprecated, and only `int` values should be used.
+
+Passing floating-point values to ``FT2Image``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Any floating-point values passed to the `.FT2Image` constructor, or the *x0*, *y0*, *x1*,
+and *y1* parameters of `.FT2Image.draw_rect_filled` were truncated to integers silently.
+This behaviour is now deprecated, and only `int` values should be used.
+
+``boxplot`` and ``bxp`` *vert* parameter, and ``rcParams["boxplot.vertical"]``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The parameter *vert: bool* has been deprecated on `~.Axes.boxplot` and
+`~.Axes.bxp`. It is replaced by *orientation: {"vertical", "horizontal"}*
+for API consistency.
+
+``rcParams["boxplot.vertical"]``, which controlled the orientation of ``boxplot``,
+is deprecated without replacement.
+
+This deprecation is currently marked as pending and will be fully deprecated in Matplotlib 3.11.
+
+``violinplot`` and ``violin`` *vert* parameter
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The parameter *vert: bool* has been deprecated on `~.Axes.violinplot` and
+`~.Axes.violin`.
+It will be replaced by *orientation: {"vertical", "horizontal"}* for API
+consistency.
+
+This deprecation is currently marked as pending and will be fully deprecated in Matplotlib 3.11.
+
+``proj3d.proj_transform_clip``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+... is deprecated with no replacement.
diff --git a/doc/api/next_api_changes/development/28503-ES.rst b/doc/api/prev_api_changes/api_changes_3.10.0/development.rst
similarity index 56%
rename from doc/api/next_api_changes/development/28503-ES.rst
rename to doc/api/prev_api_changes/api_changes_3.10.0/development.rst
index e9b109cb8515..58ece9877912 100644
--- a/doc/api/next_api_changes/development/28503-ES.rst
+++ b/doc/api/prev_api_changes/api_changes_3.10.0/development.rst
@@ -1,3 +1,11 @@
+Documentation-specific custom Sphinx roles are now semi-public
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+For third-party packages that derive types from Matplotlib, our use of custom roles may
+prevent Sphinx from building their docs. These custom Sphinx roles are now public solely
+for the purposes of use within projects that derive from Matplotlib types. See
+:mod:`matplotlib.sphinxext.roles` for details.
+
Increase to minimum supported versions of dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/api/next_api_changes/removals/28874-ES.rst b/doc/api/prev_api_changes/api_changes_3.10.0/removals.rst
similarity index 58%
rename from doc/api/next_api_changes/removals/28874-ES.rst
rename to doc/api/prev_api_changes/api_changes_3.10.0/removals.rst
index dbd8778dead1..e535123c7016 100644
--- a/doc/api/next_api_changes/removals/28874-ES.rst
+++ b/doc/api/prev_api_changes/api_changes_3.10.0/removals.rst
@@ -1,3 +1,126 @@
+ttconv removed
+~~~~~~~~~~~~~~
+
+The ``matplotlib._ttconv`` extension has been removed. Most of its
+functionaliy was already replaced by other code, and the only thing left
+was embedding TTF fonts in PostScript in Type 42 format. This is now
+done in the PS backend using the FontTools library.
+
+Remove hard reference to ``lastevent`` in ``LocationEvent``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+This was previously used to detect exiting from axes, however the hard
+reference would keep closed `.Figure` objects and their children alive longer
+than expected.
+
+``ft2font.FT2Image.draw_rect`` and ``ft2font.FT2Font.get_xys``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+... have been removed as they are unused.
+
+``Tick.set_label``, ``Tick.set_label1`` and ``Tick.set_label2``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+... are removed. Calling these methods from third-party code usually had no
+effect, as the labels are overwritten at draw time by the tick formatter.
+
+
+Functions in ``mpl_toolkits.mplot3d.proj3d``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The function ``transform`` is just an alias for ``proj_transform``,
+use the latter instead.
+
+The following functions were either unused (so no longer required in Matplotlib)
+or considered private.
+
+* ``ortho_transformation``
+* ``persp_transformation``
+* ``proj_points``
+* ``proj_trans_points``
+* ``rot_x``
+* ``rotation_about_vector``
+* ``view_transformation``
+
+
+Arguments other than ``renderer`` to ``get_tightbbox``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+... are keyword-only arguments. This is for consistency and that
+different classes have different additional arguments.
+
+
+Method parameters renamed to match base classes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The only parameter of ``transform_affine`` and ``transform_non_affine`` in ``Transform`` subclasses is renamed
+to *values*.
+
+The *points* parameter of ``transforms.IdentityTransform.transform`` is renamed to *values*.
+
+The *trans* parameter of ``table.Cell.set_transform`` is renamed to *t* consistently with
+`.Artist.set_transform`.
+
+The *clippath* parameters of ``axis.Axis.set_clip_path`` and ``axis.Tick.set_clip_path`` are
+renamed to *path* consistently with `.Artist.set_clip_path`.
+
+The *s* parameter of ``images.NonUniformImage.set_filternorm`` is renamed to *filternorm*
+consistently with ``_ImageBase.set_filternorm``.
+
+The *s* parameter of ``images.NonUniformImage.set_filterrad`` is renamed to *filterrad*
+consistently with ``_ImageBase.set_filterrad``.
+
+The only parameter of ``Annotation.contains`` and ``Legend.contains`` is renamed to *mouseevent*
+consistently with `.Artist.contains`.
+
+Method parameters renamed
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The *p* parameter of ``BboxBase.padded`` is renamed to *w_pad*, consistently with the other parameter, *h_pad*
+
+*numdecs* parameter and attribute of ``LogLocator``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+... are removed without replacement, because they had no effect.
+The ``PolyQuadMesh`` class requires full 2D arrays of values
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Previously, if a masked array was input, the list of polygons within the collection
+would shrink to the size of valid polygons and users were required to keep track of
+which polygons were drawn and call ``set_array()`` with the smaller "compressed"
+array size. Passing the "compressed" and flattened array values will no longer
+work and the full 2D array of values (including the mask) should be passed
+to `.PolyQuadMesh.set_array`.
+``ContourSet.collections``
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+... has been removed. `~.ContourSet` is now implemented as a single
+`~.Collection` of paths, each path corresponding to a contour level, possibly
+including multiple unconnected components.
+
+``ContourSet.antialiased``
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+... has been removed. Use `~.Collection.get_antialiased` or
+`~.Collection.set_antialiased` instead. Note that `~.Collection.get_antialiased`
+returns an array.
+
+``tcolors`` and ``tlinewidths`` attributes of ``ContourSet``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+... have been removed. Use `~.Collection.get_facecolor`, `~.Collection.get_edgecolor`
+or `~.Collection.get_linewidths` instead.
+
+
+``calc_label_rot_and_inline`` method of ``ContourLabeler``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+... has been removed without replacement.
+
+
+``add_label_clabeltext`` method of ``ContourLabeler``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+... has been removed. Use `~.ContourLabeler.add_label` instead.
Passing extra positional arguments to ``Figure.add_axes``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/install/dependencies.rst b/doc/install/dependencies.rst
index 4f8618921a0c..f01635d12367 100644
--- a/doc/install/dependencies.rst
+++ b/doc/install/dependencies.rst
@@ -434,5 +434,5 @@ process will raise various warnings.
* `Inkscape `_
* `optipng `_
-* the font `xkcd script `_ or `Comic Neue `_
+* the font `xkcd script `_ or `Comic Neue `_
* the font "Times New Roman"
diff --git a/doc/project/citing.rst b/doc/project/citing.rst
index 38c989fca195..be58473a26e4 100644
--- a/doc/project/citing.rst
+++ b/doc/project/citing.rst
@@ -32,6 +32,12 @@ By version
.. START OF AUTOGENERATED
+v3.9.4
+ .. image:: ../_static/zenodo_cache/14436121.svg
+ :target: https://doi.org/10.5281/zenodo.14436121
+v3.9.3
+ .. image:: ../_static/zenodo_cache/14249941.svg
+ :target: https://doi.org/10.5281/zenodo.14249941
v3.9.2
.. image:: ../_static/zenodo_cache/13308876.svg
:target: https://doi.org/10.5281/zenodo.13308876
diff --git a/doc/users/github_stats.rst b/doc/users/github_stats.rst
index d357a6759d30..c12a983aa6a8 100644
--- a/doc/users/github_stats.rst
+++ b/doc/users/github_stats.rst
@@ -1,99 +1,590 @@
.. _github-stats:
-GitHub statistics for 3.9.2 (Aug 12, 2024)
-==========================================
+GitHub statistics for 3.10.0 (Dec 13, 2024)
+===========================================
-GitHub statistics for 2024/07/04 (tag: v3.9.1) - 2024/08/12
+GitHub statistics for 2024/05/15 (tag: v3.9.0) - 2024/12/13
These lists are automatically generated, and may be incomplete or contain duplicates.
-We closed 9 issues and merged 45 pull requests.
-The full list can be seen `on GitHub `__
+We closed 100 issues and merged 337 pull requests.
+The full list can be seen `on GitHub `__
-The following 20 authors contributed 67 commits.
+The following 128 authors contributed 1932 commits.
+* abhi-jha
* Adam J. Stewart
+* Aditi Gautam
+* Aditya Vidyadhar Kamath
+* Aishling Cooke
+* Alan
+* Alan Sosa
+* Alice
+* Aman Nijjar
+* Ammar Qazi
+* Ancheng
+* anpaulan
+* Anson0028
* Anthony Lee
+* anTon
+* Antony Lee
+* Ayoub Gouasmi
+* Brigitta Sipőcz
* Caitlin Hathaway
+* cesar
+* Charlie LeWarne
+* Christian Mattsson
* ClarkeAC
+* Clemens Brunner
+* Clement Gilli
+* cmp0xff
+* Costa Paraskevopoulos
+* dale
+* Dani Pinyol
+* Daniel Weiss
+* Danny
+* David Bakaj
+* David Lowry-Duda
+* David Meyer
+* David Stansby
+* dbakaj
* dependabot[bot]
+* Diogo Cardoso
+* Doron Behar
+* Edgar Andrés Margffoy Tuay
* Elliott Sales de Andrade
+* Eytan Adler
+* farquh
+* Felipe Cybis Pereira
* Filippo Balzaretti
+* FMasson
+* Francisco Cardozo
+* Gavin S
* Greg Lucas
+* haaris
* hannah
* Ian Thomas
+* Illviljan
+* James Addison
+* James Spencer
* Jody Klymak
+* john
+* Jonas Eschle
+* Jouni K. Seppänen
+* juanis2112
+* Juanita Gomez
+* Justin Hendrick
+* K900
+* Kaustbh
+* Kaustubh
+* Kherim Willems
* Kyle Sunden
+* Kyra Cho
+* Larry Bradley
+* litchi
+* Lorenzo
+* Lucx33
+* Lumberbot (aka Jack)
+* MadPhysicist
+* malhar2460
+* Martino Sorbaro
+* Mathias Hauser
+* Matthew Feickert
+* Matthew Petroff
+* Melissa Weber Mendonça
+* Michael
+* Michael Droettboom
+* Michael Hinton
+* MischaMegens2
+* Moritz Wolter
+* muchojp
+* Nabil
+* nakamura yuki
+* odile
+* OdileVidrine
* Oscar Gustafsson
+* Panicks28
+* Paul An
+* Pedro Barão
+* PedroBittarBarao
+* Peter Talley
+* Pierre-antoine Comby
+* Pranav
+* Pranav Raghu
+* pre-commit-ci[bot]
+* proximalf
+* r3kste
* Randolf Scholz
* Refael Ackermann
+* RickyP24
+* rnhmjoj
* Ruth Comer
+* Ryan May
+* Sai Chaitanya, Sanivada
+* saranti
+* scaccol
* Scott Shambaugh
* Sean Smith
+* Simon May
+* simond07
+* smcgrawDotNet
+* Takumasa N
+* Takumasa N.
+* Takumasa Nakamura
+* thiagoluisbecker
* Thomas A Caswell
+* Tiago Lubiana
* Tim Hoffmann
+* trananso
+* Trygve Magnus Ræder
+* Victor Liu
+* vittoboa
+* Xeniya Shoiko
GitHub issues and pull requests:
-Pull Requests (45):
+Pull Requests (337):
-* :ghpull:`28687`: BLD: Include MSVCP140 runtime statically
-* :ghpull:`28679`: Run delvewheel with path to required msvcp140.dll
-* :ghpull:`28695`: Backport PR #27797 on branch v3.9.x (DOC: Use video files for saving animations)
-* :ghpull:`28688`: Backport PR #28293 and #28668: Enable 3.13 wheels and bump cibuildwheel
-* :ghpull:`27797`: DOC: Use video files for saving animations
-* :ghpull:`28692`: Backport PR #28632 on branch v3.9.x (DOC: Tell sphinx-gallery to link mpl_toolkits from our build)
-* :ghpull:`28632`: DOC: Tell sphinx-gallery to link mpl_toolkits from our build
-* :ghpull:`28668`: Bump the actions group with 2 updates
-* :ghpull:`28686`: Backport PR #28682 on branch v3.9.x (Fix warnings from mingw compilers)
-* :ghpull:`28682`: Fix warnings from mingw compilers
-* :ghpull:`28676`: Backport PR #28577 on branch v3.9.x (Copy all internals from initial Tick to lazy ones)
-* :ghpull:`28577`: Copy all internals from initial Tick to lazy ones
-* :ghpull:`28674`: Backport PR #28650 on branch v3.9.x (remove out of date todos on animation.py)
-* :ghpull:`28650`: remove out of date todos on animation.py
-* :ghpull:`28656`: Backport PR #28649 on branch v3.9.x (FIX: improve formatting of image values in cases of singular norms)
-* :ghpull:`28665`: Backport PR #28546 on branch v3.9.x (DOC: Clarify/simplify example of multiple images with one colorbar)
-* :ghpull:`28649`: FIX: improve formatting of image values in cases of singular norms
-* :ghpull:`28635`: BLD: windows wheels
-* :ghpull:`28645`: Backport PR #28644 on branch v3.9.x (DOC: Fix matching for version switcher)
-* :ghpull:`28640`: Backport PR #28634 on branch v3.9.x (Closed open div tag in color.ColorMap._repr_html_)
-* :ghpull:`28634`: Closed open div tag in color.ColorMap._repr_html_
-* :ghpull:`28636`: Backport PR #28625 on branch v3.9.x (added typing_extensions.Self to _AxesBase.twinx)
-* :ghpull:`28625`: added typing_extensions.Self to _AxesBase.twinx
-* :ghpull:`28622`: Backport PR #28621 on branch v3.9.x (TYP: Fix a typo in animation.pyi)
-* :ghpull:`28621`: TYP: Fix a typo in animation.pyi
-* :ghpull:`28605`: Backport PR #28604 on branch v3.9.x (cycler signature update.)
-* :ghpull:`28604`: cycler signature update.
-* :ghpull:`28598`: Pin PyQt6 back on Ubuntu 20.04
-* :ghpull:`28596`: Backport PR #28518 on branch v3.9.x ([TYP] Fix overload of ``pyplot.subplots``)
-* :ghpull:`28518`: [TYP] Fix overload of ``pyplot.subplots``
-* :ghpull:`28591`: Backport PR #28580 on branch v3.9.x (Bump actions/attest-build-provenance from 1.3.2 to 1.3.3 in the actions group)
-* :ghpull:`28580`: Bump actions/attest-build-provenance from 1.3.2 to 1.3.3 in the actions group
-* :ghpull:`28586`: Backport PR #28582 on branch v3.9.x (FIX: make sticky edge tolerance relative to data range)
-* :ghpull:`28582`: FIX: make sticky edge tolerance relative to data range
-* :ghpull:`28572`: Backport PR #28571 on branch v3.9.x (DOC: Add version directive to hatch parameter in stackplot)
-* :ghpull:`28571`: DOC: Add version directive to hatch parameter in stackplot
-* :ghpull:`28564`: Backport PR #28534 on branch v3.9.x ([BLD] Fix WSL build warning)
-* :ghpull:`28563`: Backport PR #28526 on branch v3.9.x (Bump pypa/cibuildwheel from 2.19.1 to 2.19.2 in the actions group)
-* :ghpull:`28534`: [BLD] Fix WSL build warning
-* :ghpull:`28526`: Bump pypa/cibuildwheel from 2.19.1 to 2.19.2 in the actions group
-* :ghpull:`28552`: Backport PR #28541 on branch v3.9.x (MNT: be more careful about disk I/O failures when writing font cache)
-* :ghpull:`28541`: MNT: be more careful about disk I/O failures when writing font cache
-* :ghpull:`28524`: Backport PR #28523 on branch v3.9.x (Fix value error when set widget size to zero while using FigureCanvasQT )
-* :ghpull:`28523`: Fix value error when set widget size to zero while using FigureCanvasQT
-* :ghpull:`28519`: Backport PR #28517 on branch v3.9.x (DOC: better cross referencing for animations)
+* :ghpull:`29299`: Merge v3.9.x into v3.10.x
+* :ghpull:`29296`: Backport PR #29295 on branch v3.10.x (BLD: Pin meson-python to <0.17.0)
+* :ghpull:`29290`: Backport PR #29254 on branch v3.10.x (DOC: Add note to align_labels())
+* :ghpull:`29289`: Backport PR #29260 on branch v3.10.x (DOC: Better explanation of rcParams "patch.edgecolor" and "patch.force_edgecolor")
+* :ghpull:`29288`: Backport PR #29285 on branch v3.10.x (Retarget PR#29175 to main)
+* :ghpull:`29254`: DOC: Add note to align_labels()
+* :ghpull:`29260`: DOC: Better explanation of rcParams "patch.edgecolor" and "patch.force_edgecolor"
+* :ghpull:`29285`: Retarget PR#29175 to main
+* :ghpull:`29286`: Backport PR #29274 on branch v3.10.x (Bump the actions group across 1 directory with 2 updates)
+* :ghpull:`29274`: Bump the actions group across 1 directory with 2 updates
+* :ghpull:`29283`: Backport PR #29272 on branch v3.10.x (DOC: Add section on translating between Axes and pyplot interface)
+* :ghpull:`29272`: DOC: Add section on translating between Axes and pyplot interface
+* :ghpull:`29279`: Backport PR #29265 on branch v3.10.x (DOC: Slightly improve the LineCollection docstring)
+* :ghpull:`29276`: Backport PR #29247 on branch v3.10.x (Fix building freetype 2.6.1 on macOS clang 18)
+* :ghpull:`29244`: Switch to a 3d rotation trackball implementation with path independence
+* :ghpull:`29265`: DOC: Slightly improve the LineCollection docstring
+* :ghpull:`29247`: Fix building freetype 2.6.1 on macOS clang 18
+* :ghpull:`29268`: Bump the actions group with 2 updates
+* :ghpull:`29266`: Backport PR #29251 on branch v3.10.x (Zizmor audit)
+* :ghpull:`29269`: Backport PR #29267 on branch v3.10.x (Exclude pylab from mypy checks)
+* :ghpull:`29267`: Exclude pylab from mypy checks
+* :ghpull:`29251`: Zizmor audit
+* :ghpull:`29255`: Backport PR #29249 on branch v3.10.x ([Bug Fix] Fix reverse mapping for _translate_tick_params)
+* :ghpull:`29249`: [Bug Fix] Fix reverse mapping for _translate_tick_params
+* :ghpull:`29250`: Backport PR #29243 on branch v3.10.x (Add quotes around [dev] in environment.yml)
+* :ghpull:`29243`: Add quotes around [dev] in environment.yml
+* :ghpull:`29246`: Backport PR #29240 on branch v3.10.x (DOC: Add plt.show() to introductory pyplot example)
+* :ghpull:`29240`: DOC: Add plt.show() to introductory pyplot example
+* :ghpull:`29239`: Backport PR #29236 on branch v3.10.x (ANI: Reduce Pillow frames to RGB when opaque)
+* :ghpull:`29238`: Backport PR #29167 on branch v3.10.x (BUGFIX: use axes unit information in ConnectionPatch )
+* :ghpull:`29236`: ANI: Reduce Pillow frames to RGB when opaque
+* :ghpull:`29167`: BUGFIX: use axes unit information in ConnectionPatch
+* :ghpull:`29232`: Merge branch v3.9.x into v3.10.x
+* :ghpull:`29230`: Backport PR #29188 on branch v3.10.x (Bump pypa/cibuildwheel from 2.21.3 to 2.22.0 in the actions group)
+* :ghpull:`29188`: Bump pypa/cibuildwheel from 2.21.3 to 2.22.0 in the actions group
+* :ghpull:`29225`: Backport PR #29213 on branch v3.10.x (avoid-unnecessary-warning-in-_pcolorargs-function)
+* :ghpull:`29211`: Backport PR #29133 on branch v3.10.x (Creating_parse_bar_color_args to unify color handling in plt.bar with precedence and sequence support for facecolor and edgecolor)
+* :ghpull:`29177`: Backport PR #29148 on branch v3.10.x (Don't fail on equal-but-differently-named cmaps in qt figureoptions.)
+* :ghpull:`29226`: Backport PR #29206 on branch v3.10.x (Skip more tests on pure-Wayland systems)
+* :ghpull:`29206`: Skip more tests on pure-Wayland systems
+* :ghpull:`29213`: avoid-unnecessary-warning-in-_pcolorargs-function
+* :ghpull:`29210`: Backport PR #29209 on branch v3.10.x (FIX: pcolormesh with no x y args and nearest interp)
+* :ghpull:`29133`: Creating_parse_bar_color_args to unify color handling in plt.bar with precedence and sequence support for facecolor and edgecolor
+* :ghpull:`29209`: FIX: pcolormesh with no x y args and nearest interp
+* :ghpull:`29200`: Backport PR #29182 on branch v3.10.x (Update backend_qt.py: parent not passed to __init__ on subplottool)
+* :ghpull:`29207`: Backport PR #29169 on branch v3.10.x (Minor fixes to text intro explainer)
+* :ghpull:`29169`: Minor fixes to text intro explainer
+* :ghpull:`29159`: Pending warning for deprecated parameter 'vert' of box and violin on 3.10
+* :ghpull:`29196`: Backport PR #29191 on branch v3.10.x (ci: Simplify 3.13t test setup)
+* :ghpull:`29182`: Update backend_qt.py: parent not passed to __init__ on subplottool
+* :ghpull:`29189`: Backport PR #28934 on branch v3.10.x (ci: Unpin micromamba again)
+* :ghpull:`29186`: Backport PR #28335 on branch v3.10.x (DOC: do not posting LLM output as your own work)
+* :ghpull:`28934`: ci: Unpin micromamba again
+* :ghpull:`28335`: DOC: do not posting LLM output as your own work
+* :ghpull:`29178`: Backport PR #29163 on branch v3.9.x (ci: Remove outdated pkg-config package on macOS)
+* :ghpull:`29170`: Backport PR #29154 on branch v3.10.x (Relax conditions for warning on updating converters)
+* :ghpull:`29154`: Relax conditions for warning on updating converters
+* :ghpull:`29166`: Backport PR #29153 on branch v3.10.x (Bump codecov/codecov-action from 4 to 5 in the actions group)
+* :ghpull:`29164`: Backport PR #29163 on branch v3.10.x (ci: Remove outdated pkg-config package on macOS)
+* :ghpull:`29168`: Backport PR #29073 on branch v3.10.x (Update secondary_axis tutorial)
+* :ghpull:`29073`: Update secondary_axis tutorial
+* :ghpull:`29163`: ci: Remove outdated pkg-config package on macOS
+* :ghpull:`29145`: Backport PR #29144 on branch v3.10.x (Use both TCL_SETVAR and TCL_SETVAR2 for tcl 9 support)
+* :ghpull:`29144`: Use both TCL_SETVAR and TCL_SETVAR2 for tcl 9 support
+* :ghpull:`29140`: Backport PR #29080 on branch v3.10.x (Updates the ``galleries/tutorials/artists.py`` file in response to issue #28920)
+* :ghpull:`29080`: Updates the ``galleries/tutorials/artists.py`` file in response to issue #28920
+* :ghpull:`29138`: Backport PR #29134 on branch v3.10.x (MNT: Temporarily skip failing test to unbreak CI)
+* :ghpull:`29134`: MNT: Temporarily skip failing test to unbreak CI
+* :ghpull:`29132`: Backport PR #29128 on branch v3.10.x (Tweak AutoMinorLocator docstring.)
+* :ghpull:`29128`: Tweak AutoMinorLocator docstring.
+* :ghpull:`29123`: Bump the actions group with 2 updates
+* :ghpull:`29122`: Backport PR #29120 on branch v3.10.x (DOC: Switch nested pie example from cmaps to color_sequences)
+* :ghpull:`29100`: Backport PR #29099 on branch v3.10.x (MNT: remove _ttconv.pyi)
+* :ghpull:`29099`: MNT: remove _ttconv.pyi
+* :ghpull:`29098`: Backport PR #29097 on branch v3.10.x (ENH: add back/forward buttons to osx backend move)
+* :ghpull:`29097`: ENH: add back/forward buttons to osx backend move
+* :ghpull:`29095`: Backport PR #29071 on branch v3.10.x (Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.11.0 in the actions group)
+* :ghpull:`29096`: Backport PR #29094 on branch v3.10.x (DOC: fix link in See Also section of axes.violin)
+* :ghpull:`29092`: Backport PR #29088 on branch v3.10.x (DOC: Format aliases in kwargs tables)
+* :ghpull:`29094`: DOC: fix link in See Also section of axes.violin
+* :ghpull:`29091`: Backport PR #29085 on branch v3.10.x (FIX: Update GTK3Agg backend export name for consistency)
+* :ghpull:`29088`: DOC: Format aliases in kwargs tables
+* :ghpull:`29089`: Backport PR #29065 on branch v3.10.x (DOC: Update docstring of triplot())
+* :ghpull:`29085`: FIX: Update GTK3Agg backend export name for consistency
+* :ghpull:`29084`: Backport PR #29081 on branch v3.10.x (Document "none" as color value)
+* :ghpull:`29065`: DOC: Update docstring of triplot()
+* :ghpull:`29081`: Document "none" as color value
+* :ghpull:`29061`: Backport PR #29024 on branch v3.10.x (Fix saving animations to transparent formats)
+* :ghpull:`29069`: Backport PR #29068 on branch v3.10.x ([DOC] Fix indentation in sync_cmaps example)
+* :ghpull:`29070`: Backport PR #29048 on branch v3.10.x (DOC: integrated pr workflow from contributing guide into install and workflow)
+* :ghpull:`29048`: DOC: integrated pr workflow from contributing guide into install and workflow
+* :ghpull:`29068`: [DOC] Fix indentation in sync_cmaps example
+* :ghpull:`29024`: Fix saving animations to transparent formats
+* :ghpull:`29059`: Cleanup converter docs and StrCategoryConverter behavior
+* :ghpull:`29058`: [DOC] Update missing-references.json
+* :ghpull:`29057`: DOC/TST: lock numpy<2.1 in environment.yml
+* :ghpull:`29053`: Factor out common formats strings in LogFormatter, LogFormatterExponent.
+* :ghpull:`28970`: Add explicit converter setting to Axis
+* :ghpull:`28048`: Enables setting hatch linewidth in Patches and Collections, also fixes setting hatch linewidth by rcParams
+* :ghpull:`29017`: DOC: Document preferred figure size for examples
+* :ghpull:`28871`: updated contribution doc #28476
+* :ghpull:`28453`: Stop relying on dead-reckoning mouse buttons for motion_notify_event.
+* :ghpull:`28495`: ticker.EngFormatter: allow offset
+* :ghpull:`29039`: MNT: Add provisional get_backend(resolve=False) flag
+* :ghpull:`28946`: MNT: Deprecate plt.polar() with an existing non-polar Axes
+* :ghpull:`29013`: FIX: auto_fmtxdate for constrained layout
+* :ghpull:`29022`: Fixes AIX internal CI build break.
+* :ghpull:`28830`: Feature: Support passing DataFrames to table.table
+* :ghpull:`27766`: Return filename from save_figure
+* :ghpull:`27167`: ENH: add long_axis property to colorbar
+* :ghpull:`29021`: Update minimum pybind11 to 2.13.2
+* :ghpull:`28863`: Improved documentation for quiver
+* :ghpull:`29019`: Update requirements to add PyStemmer to doc-requirements and environment
+* :ghpull:`28653`: Mnt/generalize plot varargs
+* :ghpull:`28967`: Fix MSVC cast warnings
+* :ghpull:`29016`: DOC: Better explain suptitle / supxlabel / supylabel naming
+* :ghpull:`28842`: FT2Font extension improvements
+* :ghpull:`28658`: New data → color pipeline
+* :ghpull:`29012`: Bump required pybind11 to 2.13
+* :ghpull:`29007`: MNT: Deprecate changing Figure.number
+* :ghpull:`28861`: Break Artist._remove_method reference cycle
+* :ghpull:`28478`: bugfix for ``PathSimplifier``
+* :ghpull:`28992`: DOC: Refresh transform tree example
+* :ghpull:`28890`: MNT: Add missing dependency to environment.yml
+* :ghpull:`28354`: Add Quiverkey zorder option
+* :ghpull:`28966`: Fix polar error bar cap orientation
+* :ghpull:`28819`: Mark all extensions as free-threading safe
+* :ghpull:`28986`: DOC: Add tags for 3D fill_between examples
+* :ghpull:`28984`: DOC / BUG: Better example for 3D axlim_clip argument
+* :ghpull:`20866`: Remove ttconv and implement Type-42 embedding using fontTools
+* :ghpull:`28975`: Set guiEvent where applicable for gtk4.
+* :ghpull:`28568`: added tags to mplot3d examples
+* :ghpull:`28976`: Bump pypa/cibuildwheel from 2.21.2 to 2.21.3 in the actions group
+* :ghpull:`28978`: CI: Resolve mypy stubtest build errors
+* :ghpull:`28823`: Fix 3D rotation precession
+* :ghpull:`28841`: Make mplot3d mouse rotation style adjustable
+* :ghpull:`28971`: DOC: correct linestyle example and reference rcParams
+* :ghpull:`28702`: [MNT]: #28701 separate the generation of polygon vertices in fill_between to enable resampling
+* :ghpull:`28965`: Suggest imageio_ffmpeg to provide ffmpeg as animation writer.
+* :ghpull:`28964`: FIX macos: Use the agg buffer_rgba rather than private attribute
+* :ghpull:`28963`: Remove refs to outdated writers in animation.py.
+* :ghpull:`28948`: Raise ValueError for RGB values outside the [0, 1] range in rgb_to_hsv function
+* :ghpull:`28857`: Pybind11 cleanup
+* :ghpull:`28949`: [pre-commit.ci] pre-commit autoupdate
+* :ghpull:`28950`: Bump the actions group with 2 updates
+* :ghpull:`28904`: Agg: Remove 16-bit limits
+* :ghpull:`28856`: Convert remaining code to pybind11
+* :ghpull:`28874`: Remove remaining 3.8 deprecations
+* :ghpull:`28943`: DOC: Clarify the returned line of axhline()/axvline()
+* :ghpull:`28935`: DOC: Fix invalid rcParam references
+* :ghpull:`28942`: In colorbar docs, add ref from 'boundaries' doc to 'spacing' doc.
+* :ghpull:`28933`: Switch AxLine.set_xy{1,2} to take a single argument.
+* :ghpull:`28869`: ci: Bump build image on AppVeyor to MSVC 2019
+* :ghpull:`28906`: Re-fix exception caching in dviread.
+* :ghpull:`27349`: [ENH] Implement dynamic clipping to axes limits for 3D plots
+* :ghpull:`28913`: DOC: Fix Axis.set_label reference
+* :ghpull:`28911`: MNT: Fix double evaluation of _LazyTickList
+* :ghpull:`28584`: MNT: Prevent users from erroneously using legend label API on Axis
+* :ghpull:`28853`: MNT: Check the input sizes of regular X,Y in pcolorfast
+* :ghpull:`28838`: TST: Fix minor issues in interactive backend test
+* :ghpull:`28795`: MNT: Cleanup docstring substitution mechanisms
+* :ghpull:`28897`: Fix minor issues in stubtest wrapper
+* :ghpull:`28899`: Don't cache exception with traceback reference loop in dviread.
+* :ghpull:`28888`: DOC: Better visualization for the default color cycle example
+* :ghpull:`28896`: doc: specify non-python dependencies in dev install docs
+* :ghpull:`28843`: MNT: Cleanup FontProperties __init__ API
+* :ghpull:`28683`: MNT: Warn if fixed aspect overwrites explicitly set data limits
+* :ghpull:`25645`: Fix issue with sketch not working on PathCollection in Agg
+* :ghpull:`28886`: DOC: Cross-link Axes attributes
+* :ghpull:`28880`: Remove 'in' from removal substitution for deprecation messages
+* :ghpull:`28875`: DOC: Fix documentation of hist() kwarg lists
+* :ghpull:`28825`: DOC: Fix non-working code object references
+* :ghpull:`28862`: Improve pie chart error messages
+* :ghpull:`28844`: DOC: Add illustration to Figure.subplots_adjust
+* :ghpull:`28588`: Fix scaling in Tk on non-Windows systems
+* :ghpull:`28849`: DOC: Mark subfigures as no longer provisional
+* :ghpull:`26000`: making onselect a keyword argument on selectors
+* :ghpull:`26013`: Support unhashable callbacks in CallbackRegistry
+* :ghpull:`27011`: Convert Agg extension to pybind11
+* :ghpull:`28845`: In examples, prefer named locations rather than location numbers.
+* :ghpull:`27218`: API: finish LocationEvent.lastevent removal
+* :ghpull:`26870`: Removed the deprecated code from axis.py
+* :ghpull:`27996`: Create ``InsetIndicator`` artist
+* :ghpull:`28532`: TYP: Fix xycoords and friends
+* :ghpull:`28785`: Convert ft2font extension to pybind11
+* :ghpull:`28815`: DOC: Document policy on colormaps and styles
+* :ghpull:`28826`: MNT: Replace _docstring.dedent_interpd by its alias _docstring.interpd
+* :ghpull:`27567`: DOC: batch of tags
+* :ghpull:`27302`: Tags for simple_scatter.py demo
+* :ghpull:`28820`: DOC: Fix missing cross-reference checks for sphinx-tags
+* :ghpull:`28786`: Handle single color in ContourSet
+* :ghpull:`28808`: DOC: Add a plot to margins() to visualize the effect
+* :ghpull:`27938`: feat: add dunder method for math operations on Axes Size divider
+* :ghpull:`28569`: Adding tags to many examples
+* :ghpull:`28183`: Expire deprecations
+* :ghpull:`28801`: DOC: Clarify AxLine.set_xy2 / AxLine.set_slope
+* :ghpull:`28788`: TST: Skip webp tests if it isn't available
+* :ghpull:`28550`: Remove internal use of ``Artist.figure``
+* :ghpull:`28767`: MNT: expire ``ContourSet`` deprecations
+* :ghpull:`28755`: TYP: Add typing for internal _tri extension
+* :ghpull:`28765`: Add tests for most of FT2Font, and fix some bugs
+* :ghpull:`28781`: TST: Fix test_pickle_load_from_subprocess in a dirty tree
+* :ghpull:`28783`: Fix places where "auto" was not listed as valid interpolation_stage.
+* :ghpull:`28779`: DOC/TST: lock numpy < 2.1
+* :ghpull:`28771`: Ensure SketchParams is always fully initialized
+* :ghpull:`28375`: FIX: Made AffineDeltaTransform pass-through properly
+* :ghpull:`28454`: MultivarColormap and BivarColormap
+* :ghpull:`27891`: Refactor some parts of ft2font extension
+* :ghpull:`28752`: quick fix dev build by locking out numpy version that's breaking things
+* :ghpull:`28749`: Add sphinxcontrib-video to environment.yml
+* :ghpull:`27851`: Add ten-color accessible color cycle as style sheet
+* :ghpull:`28501`: ConciseDateFormatter's offset string is correct on an inverted axis
+* :ghpull:`28734`: Compressed layout moves suptitle
+* :ghpull:`28736`: Simplify some code in dviread
+* :ghpull:`28347`: Doc: added triage section to new contributor docs
+* :ghpull:`28735`: ci: Avoid setuptools 72.2.0 when installing kiwi on PyPy
+* :ghpull:`28728`: MNT: Deprecate reimported functions in top-level namespace
+* :ghpull:`28730`: MNT: Don't rely on RcParams being a dict subclass in internal code
+* :ghpull:`28714`: Simplify _api.warn_external on Python 3.12+
+* :ghpull:`28727`: MNT: Better workaround for format_cursor_data on ScalarMappables
+* :ghpull:`28725`: Stop disabling FH4 Exception Handling on MSVC
+* :ghpull:`28711`: Merge branch v3.9.x into main
+* :ghpull:`28713`: DOC: Add a few more notes to release guide
+* :ghpull:`28720`: DOC: Clarify axhline() uses axes coordinates
+* :ghpull:`28718`: DOC: Update missing references for numpydoc 1.8.0
+* :ghpull:`28710`: DOC: clarify alpha handling for indicate_inset[_zoom]
+* :ghpull:`28704`: Fixed arrowstyle doc interpolation in FancyPatch.set_arrow() #28698.
+* :ghpull:`28709`: Bump actions/attest-build-provenance from 1.4.0 to 1.4.1 in the actions group
+* :ghpull:`28707`: Avoid division-by-zero in Sketch::Sketch
+* :ghpull:`28610`: CI: Add CI to test matplotlib against free-threaded Python
+* :ghpull:`28262`: Fix PolygonSelector cursor to temporarily hide during active zoom/pan
+* :ghpull:`28670`: API: deprecate unused helper in patch._Styles
+* :ghpull:`28589`: Qt embedding example: Separate drawing and data retrieval timers
+* :ghpull:`28655`: Inline annotation and PGF user demos
+* :ghpull:`28654`: DOC: Remove long uninstructive examples
+* :ghpull:`28652`: Fix docstring style inconsistencies in lines.py
+* :ghpull:`28641`: DOC: Standardize example titles - part 2
+* :ghpull:`28642`: DOC: Simplify heatmap example
+* :ghpull:`28638`: DOC: Remove hint on PRs from origin/main
+* :ghpull:`28587`: Added dark-mode diverging colormaps
+* :ghpull:`28546`: DOC: Clarify/simplify example of multiple images with one colorbar
+* :ghpull:`28613`: Added documentation for parameters vmin and vmax inside specgram function.
+* :ghpull:`28627`: DOC: Bump minimum Sphinx to 5.1.0
+* :ghpull:`28628`: DOC: Sub-structure next API changes overview
+* :ghpull:`28629`: FIX: ``Axis.set_in_layout`` respected
+* :ghpull:`28575`: Add branch tracking to development workflow instructions
+* :ghpull:`28616`: CI: Build docs on latest Python
+* :ghpull:`28617`: DOC: Enable parallel builds
+* :ghpull:`28544`: DOC: Standardize example titles
+* :ghpull:`28615`: DOC: hack to suppress sphinx-gallery 17.0 warning
+* :ghpull:`28293`: BLD: Enable building Python 3.13 wheels for nightlies
+* :ghpull:`27385`: Fix 3D lines being visible when behind camera
+* :ghpull:`28609`: svg: Ensure marker-only lines get URLs
+* :ghpull:`28599`: Upgrade code to Python 3.10
+* :ghpull:`28593`: Update ruff to 0.2.0
+* :ghpull:`28603`: Simplify ttconv python<->C++ conversion using std::optional.
+* :ghpull:`28557`: DOC: apply toc styling to remove nesting
+* :ghpull:`28542`: CI: adjust pins in mypy GHA job
+* :ghpull:`28504`: Changes in SVG backend to improve compatibility with Affinity designer
+* :ghpull:`28122`: Disable clipping in Agg resamplers.
+* :ghpull:`28597`: Pin PyQt6 back on Ubuntu 20.04
+* :ghpull:`28073`: Add support for multiple hatches, edgecolors and linewidths in histograms
+* :ghpull:`28594`: MNT: Raise on GeoAxes limits manipulation
+* :ghpull:`28312`: Remove one indirection layer in ToolSetCursor.
+* :ghpull:`28573`: ENH: include property name in artist AttributeError
+* :ghpull:`28503`: Bump minimum Python to 3.10
+* :ghpull:`28525`: FIX: colorbar pad for ``ImageGrid``
+* :ghpull:`28558`: DOC: Change _make_image signature to numpydoc
+* :ghpull:`28061`: API: add antialiased to interpolation-stage in image
+* :ghpull:`28536`: [svg] Add rcParam["svg.id"] to add a top-level id attribute to