⚡ Sangsakala Proxy 🏠 Home
Skip to content

Update pgf baseline image for TeX Live 2025 - #32504

Open
axel-j-larsson wants to merge 1 commit into
matplotlib:mainfrom
axel-j-larsson:fix-pgf-test-baseline-image
Open

axel-j-larsson wants to merge 1 commit into
matplotlib:mainfrom
axel-j-larsson:fix-pgf-test-baseline-image

Conversation

@axel-j-larsson

Copy link
Copy Markdown

PR summary

Fixes issue #29790. Also relates to PR #32478 .
With TeX Live 2025, test_backend_pgf.py was failing due to pgf_rcupdate2, where a single character had changed location by a pixel:
pgf_rcupdate2_pdf-failed-diff

I investigated it and the PGF files generated by pgf_backend.py were identical between TeX Live versions. After manually regenerating the PDFs from the same PGF file with both TeX Live 2025 and 2024, I found that their contents differed slightly in regards to object positioning. After additionally manually rasterizing the output with ghostscript (as done in the test), the same one-pixel difference appeared in both the files created by Matplotlib and the ones generated and rasterized manually.

It appears that the difference is instead caused by updates in PDFTeX's rendering engine, and would as such not be anything directly caused by a bug in Matplotlib. As such, I determined the most suitable fix would be to update the baseline image. I have also checked the new baseline with TeX Live 2026, and it still passes there.

However, the new baseline does instead fail for TeX Live 2024 (and presumably earlier versions as well). As such, the suitability of this PR depends on what which TeX Live version to support, and in extension which Ubuntu version to support (see #32478).

AI Disclosure

AI was used to help investigate the image difference and generate new PDFs directly with pdfLaTeX. However, the new baseline test results have been verified and reviewed manually.

PR quality check

  • Use an expressive title, e.g. "Fix title font property precedence"
  • New and changed code is tested
  • N/A Plotting related features are demonstrated in an example
  • N/A New features and API changes have release notes
  • N/A Documentation complies with general and docstring guidelines

@github-actions

Copy link
Copy Markdown

Thank you for opening your first PR into Matplotlib!

If you have not heard from us in a week or so, please leave a new comment below and that should bring it to our attention. Most of our reviewers are volunteers and sometimes things fall through the cracks. We also ask that you please finish addressing any review comments on this PR and wait for it to be merged (or closed) before opening a new one, as it can be a valuable learning experience to go through the review process.

You can also join us on discourse chat for real-time discussion.

For details on testing, writing docs, and our review process, please see the developer guide.
Please let us know if (and how) you use AI, it will help us give you better feedback on your PR.

We strive to be a welcoming and open project. Please follow our Code of Conduct.

@axel-j-larsson

Copy link
Copy Markdown
Author

Hi @iccir, just checking back to see if there were any plans on changing the CI to use TeX Live 2025. If not, would it perhaps be a good idea to instead specify which version of it that is expected in the docs?

@iccir

iccir commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

I'm honestly not sure, as this isn't my area of expertise. My instinct would be to pick the TeX Live version with the most users and then xfail the tests on other configurations. Ultimately, all tests either need to pass or be expected to fail.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants