meson-python icon indicating copy to clipboard operation
meson-python copied to clipboard

CI: Test downstream

Open lithomas1 opened this issue 3 years ago • 3 comments

It would be nice if meson-python tested downstream projects(e.g. pandas, scipy) to make sure changes here aren't unintentionally breaking them.

lithomas1 avatar Oct 17 '22 16:10 lithomas1

Thanks for the suggestion @lithomas1. We tested SciPy in CI in this repo for a while. There are two issues with that:

  1. SciPy and Pandas are very heavy, while meson-python is very lightweight (installs in seconds, full test suite runs in ~1 min)
  2. They have lots of configurations and platforms, and any breakage is likely to be localized to a specific config.

I also ran Meson master + meson-python main + SciPy on Linux in my own fork for about half a year. It never broke there, so I stopped it.

SciPy does have two CI jobs that test pre-release versions of dependencies, pointing at https://anaconda.org/scipy-wheels-nightly and using pip install --pre. We should make sure meson-python from the main branch of this repo is used there I think, that's a more maintainable solution (it's a 1 line code change, and doesn't cost extra CI time).

@lithomas1 would that work for Pandas as well?

rgommers avatar Oct 18 '22 15:10 rgommers

I would really prefer meson-python test pandas, instead of the other way around.

I don't think meson-python's coverage is very good right now(FFY00/meson-python#120 is a good example of this, where meson-python couldn't even build itself from an sdist). I also think the coverage covers more scipy-like projects, which is probably why scipy's build hasn't failed.

End-to-end testing like with pandas is a good way to fill in the gaps in the meantime (You already test SageMath anyways).

While I could add another job to pandas that checks meson-python main, like we do with numpy, I would prefer not to ATM since we are basically already at capacity in terms of CI jobs with pandas(we have 43 jobs).

Also, pandas doesn't take that long to build(it's around 5 minutes ish). We don't have to run the full test suite, but we should probably check that importing pandas works.

lithomas1 avatar Oct 18 '22 20:10 lithomas1

Also, pandas doesn't take that long to build(it's around 5 minutes ish). We don't have to run the full test suite, but we should probably check that importing pandas works.

Okay, that's a good middle ground. I agree that that's a light enough load that it's a good idea for the extra coverage - at least right now.

rgommers avatar Oct 18 '22 20:10 rgommers

After https://github.com/scipy/scipy/pull/18270 we're now testing meson-python's main branch in SciPy CI. We were already testing Meson's master branch (no regressions for the past year IIRC).

rgommers avatar Apr 10 '23 15:04 rgommers

@lithomas1 FYI I have now set up a scheduled CI job for Pandas + meson-python main. Which I can also use to easily test meson-python PRs against Pandas. See https://github.com/rgommers/pandas/actions/workflows/test-mesonpy-dev.yml

Building Pandas is pretty simple, that is highly unlikely to find any regressions in meson-python at this point. Running the Pandas test suite is perhaps more likely to uncover some thing. So I'll keep that CI job running for a while on my fork.

I'll close this issue.

rgommers avatar Sep 02 '23 12:09 rgommers