Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: [update] matplotlib 3.8.3 -> 3.9.4
To:
Daniel Dickman <didickman@gmail.com>
Cc:
ports@openbsd.org
Date:
Tue, 20 May 2025 08:24:08 +0100

Download raw body.

Thread
On 2025/05/18 16:20, Daniel Dickman wrote:
> Now that we have numpy2, here's an update of matplotlib to the 3.9.x 
> series.
> 
> As per the dev change notes:
> - the build system changed to meson
> - mplsetup.cfg was moved into meson_options.txt
> - the test data flag was moved into pyproject.toml
> 
> The matplotlib system states an upper bound of meson-python of 16.x, 
> however since what we have in-tree is newer and seems to work, I've 
> loosened it to allow 18.x.

Based on https://github.com/matplotlib/matplotlib/commit/03fa1ffb1b26733f109ae10ac67c8432f48ec320
it looks like they were avoiding a known-buggy version which we've
already passed, so I think it would be good to remove the upper bound
on mesonpy.

ok.


> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/graphics/py-matplotlib/Makefile,v
> diff -u -p -u -r1.102 Makefile
> --- Makefile	15 May 2025 21:38:54 -0000	1.102
> +++ Makefile	18 May 2025 20:14:11 -0000
> @@ -1,9 +1,8 @@
>  COMMENT =		Python charting and plotting API
>  
> -MODPY_DISTV =		3.8.3
> +MODPY_DISTV =		3.9.4
>  DISTNAME =		matplotlib-${MODPY_DISTV}
>  PKGNAME =		py-${DISTNAME}
> -REVISION =		3
>  
>  CATEGORIES =		graphics devel math
>  
> @@ -21,13 +20,14 @@ COMPILER =		base-clang ports-gcc base-gc
>  MODULES =		lang/python
>  
>  MODPY_PI =		Yes
> -MODPY_PYBUILD =		setuptools_scm
> +MODPY_PYBUILD =		mesonpy
>  
>  MODPY_TEST_LINK_SO =	Yes
>  MODPY_TEST_LINK_SRC =	${WRKSRC}/lib
>  
>  BUILD_DEPENDS =	devel/py-certifi>=2020.06.20 \
>  		devel/py-pybind11>=2.6 \
> +		devel/py-setuptools_scm \
>  		math/qhull \
>  		math/py-numpy>=1.25 \
>  		textproc/py-sphinx
> @@ -56,12 +56,8 @@ MAKE_ENV+=	LDSHARED="${CC} -shared -fPIC
>  
>  EXAMPLESDIR=	${PREFIX}/share/examples/${MODPY_PY_PREFIX}matplotlib
>  
> -post-patch:
> -	cp ${WRKSRC}/mplsetup.cfg{.template,}
> -
>  pre-configure:
>  	find ${WRKSRC}/galleries/examples -name \*.py -exec ${MODPY_BIN_ADJ} {} +
> -	${SUBST_CMD} ${WRKSRC}/setupext.py
>  
>  post-install:
>  	${INSTALL_DATA_DIR} ${EXAMPLESDIR}
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/graphics/py-matplotlib/distinfo,v
> diff -u -p -u -r1.23 distinfo
> --- distinfo	23 Feb 2024 02:36:51 -0000	1.23
> +++ distinfo	18 May 2025 20:14:11 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (matplotlib-3.8.3.tar.gz) = e0FiOemuOL5UsCirv5BIr/UFSpq6VBa+8L0X+RYs4WE=
> -SIZE (matplotlib-3.8.3.tar.gz) = 35879872
> +SHA256 (matplotlib-3.9.4.tar.gz) = HgDovnOTy9xv7fqKb7oCzz6DgUsoXbHGC5BqAjukG8M=
> +SIZE (matplotlib-3.9.4.tar.gz) = 36106529
> Index: patches/patch-meson_options
> ===================================================================
> RCS file: patches/patch-meson_options
> diff -N patches/patch-meson_options
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-meson_options	18 May 2025 20:14:11 -0000
> @@ -0,0 +1,15 @@
> +Index: meson.options
> +--- meson.options.orig
> ++++ meson.options
> +@@ -5,9 +5,9 @@
> + # Qhull. You may use the following options to instead link against a system
> + # FreeType/Qhull. As an exception, Matplotlib defaults to the system version of
> + # FreeType on AIX.
> +-option('system-freetype', type: 'boolean', value: false,
> ++option('system-freetype', type: 'boolean', value: true,
> +        description: 'Build against system version of FreeType')
> +-option('system-qhull', type: 'boolean', value: false,
> ++option('system-qhull', type: 'boolean', value: true,
> +        description: 'Build against system version of Qhull')
> + 
> + # Some of Matplotlib's components are optional: the MacOSX backend (installed
> Index: patches/patch-mplsetup_cfg_template
> ===================================================================
> RCS file: patches/patch-mplsetup_cfg_template
> diff -N patches/patch-mplsetup_cfg_template
> --- patches/patch-mplsetup_cfg_template	16 Jan 2023 17:09:43 -0000	1.1
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,23 +0,0 @@
> -Index: mplsetup.cfg.template
> ---- mplsetup.cfg.template.orig
> -+++ mplsetup.cfg.template
> -@@ -11,8 +11,8 @@
> - # FreeType/Qhull.  As an exception, Matplotlib defaults to the system version
> - # of FreeType on AIX.
> - #
> --#system_freetype = False
> --#system_qhull = False
> -+system_freetype = True
> -+system_qhull = True
> - 
> - [packages]
> - # Some of Matplotlib's components are optional: the MacOSX backend (installed
> -@@ -22,7 +22,7 @@
> - # lines.  Note that the MacOSX backend is never built on Linux or Windows,
> - # regardless of the config value.
> - #
> --#tests = False
> -+tests = True
> - #macosx = True
> - 
> - [rc_options]
> Index: patches/patch-pyproject_toml
> ===================================================================
> RCS file: patches/patch-pyproject_toml
> diff -N patches/patch-pyproject_toml
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-pyproject_toml	18 May 2025 20:14:11 -0000
> @@ -0,0 +1,21 @@
> +Index: pyproject.toml
> +--- pyproject.toml.orig
> ++++ pyproject.toml
> +@@ -73,7 +73,7 @@ dev = [
> + build-backend = "mesonpy"
> + # Also keep in sync with optional dependencies above.
> + requires = [
> +-    "meson-python>=0.13.1,<0.17.0",
> ++    "meson-python>=0.13.1,<0.19.0",
> +     "pybind11>=2.6,!=2.13.3",
> +     "setuptools_scm>=7",
> + 
> +@@ -91,7 +91,7 @@ requires = [
> + ]
> + 
> + [tool.meson-python.args]
> +-install = ['--tags=data,python-runtime,runtime']
> ++install = ['--tags=data,python-runtime,runtime,tests']
> + 
> + [tool.setuptools_scm]
> + version_scheme = "release-branch-semver"
> Index: patches/patch-setupext_py
> ===================================================================
> RCS file: patches/patch-setupext_py
> diff -N patches/patch-setupext_py
> --- patches/patch-setupext_py	22 Jan 2024 23:13:46 -0000	1.25
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,19 +0,0 @@
> -Index: setupext.py
> ---- setupext.py.orig
> -+++ setupext.py
> -@@ -445,6 +445,7 @@ class Matplotlib(SetupPackage):
> -         ext = Extension(
> -             "matplotlib._qhull", ["src/_qhull_wrapper.cpp"],
> -             define_macros=[("MPL_DEVNULL", os.devnull)])
> -+        ext.include_dirs.extend(['${PREFIX}/include'])
> -         add_numpy_flags(ext)
> -         Qhull.add_flags(ext)
> -         yield ext
> -@@ -458,6 +459,7 @@ class Matplotlib(SetupPackage):
> -             libraries={"linux": ["dl"], "win32": ["comctl32", "psapi"],
> -                        "cygwin": ["comctl32", "psapi"]}.get(sys.platform, []),
> -             extra_link_args={"win32": ["-mwindows"]}.get(sys.platform, []))
> -+        ext.include_dirs.extend(['${X11BASE}/include'])
> -         add_numpy_flags(ext)
> -         add_libagg_flags(ext)
> -         yield ext
> Index: pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/graphics/py-matplotlib/pkg/PLIST,v
> diff -u -p -u -r1.29 PLIST
> --- pkg/PLIST	29 Apr 2025 10:38:37 -0000	1.29
> +++ pkg/PLIST	18 May 2025 20:14:13 -0000
> @@ -4,24 +4,10 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/${MODPY_PYCACHE}pylab.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/
>  lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/
> +lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/LICENSE
>  lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/METADATA
>  lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/RECORD
>  lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/WHEEL
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_AMSFONTS
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_BAKOMA
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_CARLOGO
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_COLORBREWER
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_COURIERTEN
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_JSXTOOLS_RESIZE_OBSERVER
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_QHULL
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_QT4_EDITOR
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_SOLARIZED
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_STIX
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/licenses/LICENSE/LICENSE_YORICK
> -lib/python${MODPY_VERSION}/site-packages/matplotlib-${MODPY_DISTV}.dist-info/top_level.txt
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/__init__.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/__init__.pyi
>  ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/matplotlib/${MODPY_PYCACHE}/
> @@ -316,6 +302,8 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/${MODPY_PYCACHE}backend_wxcairo.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/${MODPY_PYCACHE}qt_compat.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/${MODPY_PYCACHE}qt_compat.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/${MODPY_PYCACHE}registry.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/${MODPY_PYCACHE}registry.${MODPY_PYC_MAGIC_TAG}pyc
>  @so lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/_backend_agg.${MODPY_PYC_MAGIC_TAG}so
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/_backend_agg.pyi
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/_backend_gtk.py
> @@ -365,10 +353,8 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/qt_editor/${MODPY_PYCACHE}figureoptions.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/qt_editor/_formlayout.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/qt_editor/figureoptions.py
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/registry.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/.eslintrc.js
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/.prettierignore
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/.prettierrc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/all_figures.html
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/css/
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/css/boilerplate.css
> @@ -381,7 +367,6 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/js/mpl_tornado.js
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/js/nbagg_mpl.js
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/nbagg_uat.ipynb
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/package.json
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/backends/web_backend/single_figure.html
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/bezier.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/bezier.pyi
> @@ -681,9 +666,12 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/sphinxext/${MODPY_PYCACHE}mathmpl.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/sphinxext/${MODPY_PYCACHE}plot_directive.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/sphinxext/${MODPY_PYCACHE}plot_directive.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/sphinxext/${MODPY_PYCACHE}roles.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/sphinxext/${MODPY_PYCACHE}roles.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/sphinxext/figmpl_directive.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/sphinxext/mathmpl.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/sphinxext/plot_directive.py
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/sphinxext/roles.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/spines.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/spines.pyi
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/stackplot.py
> @@ -757,6 +745,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/testing/widgets.pyi
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/Courier10PitchBT-Bold.pfb
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/README
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/__init__.py
>  ${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}/
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -815,8 +804,6 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_basic.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_bbox_tight.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_bbox_tight.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_bezier.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_bezier.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_category.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_category.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_cbook.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -839,6 +826,8 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_cycles.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_dates.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_dates.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_datetime.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_datetime.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_determinism.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_determinism.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/${MODPY_PYCACHE}test_doc.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1000,6 +989,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.pdf
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/axhspan_epoch.svg
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/axhvlinespan_interpolation.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/axis_options.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/axisbelow.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/axvspan_epoch.pdf
> @@ -1268,6 +1258,8 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/step_linestyle.pdf
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/step_linestyle.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/step_linestyle.svg
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/sticky_tolerance.png
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/sticky_tolerance_cf.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/symlog.pdf
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/symlog2.pdf
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/test_alpha.pdf
> @@ -1296,6 +1288,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/violinplot_horiz_showextrema.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/violinplot_horiz_showmeans.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/violinplot_horiz_showmedians.png
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/violinplot_sides.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/violinplot_vert_baseline.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/violinplot_vert_custompoints_10.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_axes/violinplot_vert_custompoints_200.png
> @@ -1487,6 +1480,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_contour/contour_manual_labels.svg
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_contour/contour_test_label_transforms.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_contour/contour_uneven.png
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_contour/contourf_hatch_colors.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_dates/
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_dates/DateFormatter_fractionalSeconds.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_dates/RRuleLocator_bounds.png
> @@ -1500,6 +1494,8 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_figure/alpha_background.svg
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_figure/figure_align_labels.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_figure/figure_align_labels.svg
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_figure/figure_align_titles_constrained.png
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_figure/figure_align_titles_tight.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_figure/figure_legend.pdf
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_figure/figure_legend.png
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/baseline_images/test_figure/figure_legend.svg
> @@ -3373,7 +3369,6 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_backends_interactive.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_basic.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_bbox_tight.py
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_bezier.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_category.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_cbook.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_collections.py
> @@ -3385,6 +3380,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_contour.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_cycles.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_dates.py
> +lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_datetime.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_determinism.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_doc.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tests/test_dviread.py
> @@ -3490,22 +3486,6 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}_trirefine.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}_tritools.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}_tritools.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}triangulation.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}triangulation.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}tricontour.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}tricontour.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}trifinder.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}trifinder.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}triinterpolate.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}triinterpolate.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}tripcolor.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}tripcolor.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}triplot.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}triplot.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}trirefine.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}trirefine.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}tritools.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/${MODPY_PYCACHE}tritools.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/_triangulation.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/_triangulation.pyi
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/_tricontour.py
> @@ -3522,14 +3502,6 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/_trirefine.pyi
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/_tritools.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/_tritools.pyi
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/triangulation.py
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/tricontour.py
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/trifinder.py
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/triinterpolate.py
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/tripcolor.py
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/triplot.py
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/trirefine.py
> -lib/python${MODPY_VERSION}/site-packages/matplotlib/tri/tritools.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/typing.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/units.py
>  lib/python${MODPY_VERSION}/site-packages/matplotlib/widgets.py
> @@ -3746,6 +3718,7 @@ lib/python${MODPY_VERSION}/site-packages
>  lib/python${MODPY_VERSION}/site-packages/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/proj3d_axes_cube.png
>  lib/python${MODPY_VERSION}/site-packages/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/proj3d_axes_cube_ortho.png
>  lib/python${MODPY_VERSION}/site-packages/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/quiver3d.png
> +lib/python${MODPY_VERSION}/site-packages/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/quiver3d_colorcoded.png
>  lib/python${MODPY_VERSION}/site-packages/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/quiver3d_masked.png
>  lib/python${MODPY_VERSION}/site-packages/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/scatter3d.png
>  lib/python${MODPY_VERSION}/site-packages/mpl_toolkits/mplot3d/tests/baseline_images/test_axes3d/scatter3d_color.png
> @@ -3807,7 +3780,6 @@ share/examples/${MODPY_PY_PREFIX}matplot
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/demo_axes_grid2.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/demo_axes_hbox_divider.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/demo_axes_rgb.py
> -share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/demo_colorbar_of_inset_axes.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/demo_colorbar_with_axes_divider.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/demo_colorbar_with_inset_locator.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/demo_edge_colorbar.py
> @@ -3825,7 +3797,6 @@ share/examples/${MODPY_PY_PREFIX}matplot
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/simple_axesgrid.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/simple_axesgrid2.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/simple_axisline4.py
> -share/examples/${MODPY_PY_PREFIX}matplotlib/axes_grid1/simple_colorbar.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axisartist/
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axisartist/README.txt
>  share/examples/${MODPY_PY_PREFIX}matplotlib/axisartist/axis_direction.py
> @@ -4025,6 +3996,8 @@ share/examples/${MODPY_PY_PREFIX}matplot
>  share/examples/${MODPY_PY_PREFIX}matplotlib/mplot3d/custom_shaded_3d_surface.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/mplot3d/errorbar3d.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/mplot3d/hist3d.py
> +share/examples/${MODPY_PY_PREFIX}matplotlib/mplot3d/imshow3d.py
> +share/examples/${MODPY_PY_PREFIX}matplotlib/mplot3d/intersecting_planes.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/mplot3d/lines3d.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/mplot3d/lorenz_attractor.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/mplot3d/mixed_subplots.py
> @@ -4110,6 +4083,7 @@ share/examples/${MODPY_PY_PREFIX}matplot
>  share/examples/${MODPY_PY_PREFIX}matplotlib/showcase/firefox.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/showcase/integral.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/showcase/mandelbrot.py
> +share/examples/${MODPY_PY_PREFIX}matplotlib/showcase/pan_zoom_overlap.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/showcase/stock_prices.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/showcase/xkcd.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/specialty_plots/
> @@ -4149,10 +4123,11 @@ share/examples/${MODPY_PY_PREFIX}matplot
>  share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/errorbars_and_boxes.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/hexbin_demo.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/hist.py
> +share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/histogram_bihistogram.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/histogram_cumulative.py
> -share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/histogram_features.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/histogram_histtypes.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/histogram_multihist.py
> +share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/histogram_normalization.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/multiple_histograms_side_by_side.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/time_series_histogram.py
>  share/examples/${MODPY_PY_PREFIX}matplotlib/statistics/violinplot.py
>