[Matplotlib-devel] SVG Tests on MacOS

I’ve finally had some time to return to my feature contribution and pull request:

https://github.com/matplotlib/matplotlib/pull/15458

I’ve added the pytest *.png and *.pdf baseline images, but I can’t figure out how to generate the *.svg ones on my machine (MacOS). The CI test framework passes on MacOS - but not on Linux. This gives me a clue that maybe the SVG creation only happens on Linux.

There aren’t any SVG related dependencies in the build instructions online (like for libpng). There is one place where Inkscape <1.0 is listed as a requirement to generate SVG’s – I have Inkscape on my machine (1.0beta2), but I can’t find any instructions to link it to MatPlotLib or to install an older version. ‘brew install caskformula/caskformula/inkscape’ bombs out complaining about ‘inkscape: “cxx11” is not a recognized standard’.

It would be really great if one of the automated builds made the matplotlib/result_images/* available as an artifact for download (if it does already, I can’t find it). Both to provide a source for files that can’t be generated locally – and, if something actually does fail, to provide the visual debugging aid to the developer. As it is, if a test fails in the CI framework (say on a platform a developer doesn’t have) – that does not fail on the dev’s local machine – what clues do they have to debug it?

It may be that real development of matplotlib can only be done on Linux – but it would really help if the online docs were updated to make that clear. I’ve spent half a day trying to get everything moved forward, set up, etc. for local development and testing – only to come to the conclusion (I think) that it can’t be done on a Mac. As far as I can see, this isn’t written down anywhere, but it seems to fit the situation.

Thanks for any help,

Rob

I was able to dust off my Ubuntu VM and get the *.svg files built and added to my PR. So, the immediate need is satisfied.

Any pointers on how to accomplish the same on MacOS - or pointers to appropriate docs that make this clear would still be appreciated.

Rob

···

On Sun, Jun 14, 2020 at 7:36 PM Rob McDonald <rob.a.mcdonald@gmail.com> wrote:

I’ve finally had some time to return to my feature contribution and pull request:

https://github.com/matplotlib/matplotlib/pull/15458

I’ve added the pytest *.png and *.pdf baseline images, but I can’t figure out how to generate the *.svg ones on my machine (MacOS). The CI test framework passes on MacOS - but not on Linux. This gives me a clue that maybe the SVG creation only happens on Linux.

There aren’t any SVG related dependencies in the build instructions online (like for libpng). There is one place where Inkscape <1.0 is listed as a requirement to generate SVG’s – I have Inkscape on my machine (1.0beta2), but I can’t find any instructions to link it to MatPlotLib or to install an older version. ‘brew install caskformula/caskformula/inkscape’ bombs out complaining about ‘inkscape: “cxx11” is not a recognized standard’.

It would be really great if one of the automated builds made the matplotlib/result_images/* available as an artifact for download (if it does already, I can’t find it). Both to provide a source for files that can’t be generated locally – and, if something actually does fail, to provide the visual debugging aid to the developer. As it is, if a test fails in the CI framework (say on a platform a developer doesn’t have) – that does not fail on the dev’s local machine – what clues do they have to debug it?

It may be that real development of matplotlib can only be done on Linux – but it would really help if the online docs were updated to make that clear. I’ve spent half a day trying to get everything moved forward, set up, etc. for local development and testing – only to come to the conclusion (I think) that it can’t be done on a Mac. As far as I can see, this isn’t written down anywhere, but it seems to fit the situation.

Thanks for any help,

Rob

Rob,

If you install inkscape (via your favorite method) and it is available in the PATH, the test suite should find it.

Tom

···

Thomas Caswell
tcaswell@gmail.com