Make xy.pyplot gallery-compatible with Matplotlib 3.11 - #413
Conversation
|
Too many files changed for review. ( |
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Merging this PR will not alter performance
Comparing Footnotes
|
|
Final exact-head acceptance audit is complete for
The PR description now contains the complete standard shard artifact IDs/digests and final acceptance evidence. The PR remains draft for maintainer review. |
Summary
Makes
xy.pyplota gallery-compatible drop-in surface for Matplotlib 3.11 while preserving the dependency-free, performance-oriented native renderer.native,compat, and lazyautomodes plusplt.set_mode(),plt.get_mode(), andXY_PYPLOT_MODE.module://xy.backends.backend_xyMatplotlib backend.Matplotlib supplies frontend semantics in compat mode, but accepted charts are rendered by XY: gallery acceptance rejects Agg or any other renderer fallback.
Final gallery acceptance
pyplot-eligible sources acceptedpyplotbackend/font/GUI examples classifiedExact pixels are not required. The four non-exact dimensions (
skewt,figure_size_units,horizontal_barchart_distribution, andcolormap_reference) pass the documented tolerant dimension policy. All other structural, semantic, visual, and behavioral gates pass without waivers.Exact-head CI and artifact audit
99ee677ad05a506b9a4dd11385c708d411b6f43eStandard profile
All eight uploaded artifacts were downloaded and independently audited. Their 472 unique example paths exactly equal the standard manifest; all 944 Matplotlib/XY engine runs completed. Execution, capture, dimensions, semantics, and visuals are 472/472; behavior is 71/71; exact dimensions are 468/472; and fallback, waiver, ratchet, comparison, failure-artifact, and JUnit counts are all zero.
88082803007bec905ba69b99e0cfb79808006b2884fa142c466fa66d8a60b1079306718aa3880827775968d5ec461e1b12be193e178b764032e526eecfce431236607129b8e81dcd00928808275136b03a321b23923c59173dc090a2c00dacddf2f2a6701ab07c0bd1cffb3ff9a4598808267036de6885e8e8a921dc3059f0cff4784e2c8c4267ab37a237ab9424b644252a94e488082678724ebb39c595b7aff17201d120c88007232388b69f42233e8b1c835a272f1e4e348808274261abbe59245588ca5ec010c21d96c832f5eb5e71e1e04dc53fe93d7c8e4deeca4a880827972081f3c2b3a36fd7482fc9bc307f74193a0b7d2913cbaf9adc56149d799faf6f7b88082748291568c97a5d2dcbdbd0d94b835356adb0510eb638043fa55d009814a5d12e393cExtended profile
8808274446a85c5c585c7a26958740c6af8caacfd4f730a161c98171b992ebfbbd75574d4areport.jsonSHA-256:2bb1d2d01705410d8589b504693d0b30fd7161c026ad7a65b4b4bd90b550880fjunit.xmlSHA-256:5975336704887173dd9128f81f1d9d0dafb8aa64630ef24efbb981c830b3946bExecutable contract and CI
The harness:
The browser probes use a bounded Playwright/Chromium driver, fail closed when CI requires a browser, preserve semantic diagnostics, and avoid Linux Chromium first-profile hangs.
Evidence and tracked root causes
Browse the permanent comparison screenshots.
xy.pyplotRoot-cause issues include complete upstream Matplotlib sources, comparison screenshots, affected-example counts, acceptance tests, and the
pyplotlabel:pcolormesh/hist2dFixes #354
Fixes #409
Fixes #414
Fixes #415
Fixes #416
Revalidates #410 and #411.