Open matt-codecov opened 1 month ago
Looks like it'd just be some changes in
src/ci.rs
?
Yeah, pull requests are welcome!
(same person, personal account)
I just noticed GitHub has started migrating ubuntu-latest
to 24.04 which has Python 3.12 in its stock repository so I put a trivial PR up for that.
Python 3.13 will be out soon and I don't know whether 24.04 will update so I'll still see about getting a PR up for the deadsnakes approach later. I think https://github.com/codecov/codecov-rs/pull/55 could be improved before merging:
I'll try to follow up, but if any other community members want to jump in that'd be welcome :)
@mhammerly Had to revert #2231 because there is no 24.04 image support in run-on-arch-action yet.
sorry about that! I just noticed that myself and was going to close the PR.
I have encountered the same error with only python>=3.8
. Thanks for already working on this problem. I would love to use pytest in the future again. In case you are interested in the error messages:
https://github.com/jonaspleyer/cr_mech_coli/actions/runs/11411487573
Bug Description
The problem
I am trying to publish a package with
requires-python = ">=3.12"
set inpyproject.toml
and am having trouble with maturin's generated CI workflow (specifically trying to run pytest).When the
target
matrix value isx86
orx86_64
, pytest is run with the runner's Python version which, thanks toactions/setup-python
, is 3.12.x86
andx86_64
thus work fine for my 3.12-only package.However, when the
target
matrix value is anything else, the job usesuraimo/run-on-arch-action
to create an Ubuntu 22.04 image of the appropriate architecture to run pytest on. That image installs the latest version of Python in the stock Ubuntu 22.04 apt repository which is 3.10. My package requires 3.12, so the maturin action only built wheels for 3.12, so the job fails with an error like:(link to an actual run)
Workaround
https://github.com/codecov/codecov-rs/pull/55 makes the
uraimo/run-on-arch-action
step set up the deadsnakes PPA, install Python 3.12 from it, and then set up a virtual env so pip will work. Here's a passing run from a test PR that took this approach.If that sounds like a good generic solution I can take a crack at opening a PR. Looks like it'd just be some changes in
src/ci.rs
? It doesn't look like there is a "latest" package in the deadsnakes PPA though so the hardcoded 3.12 version number would need to be updated down the line.Your maturin version (
maturin --version
)1.7.1
Your Python version (
python -V
)3.12
Your pip version (
pip -V
)pip 24.0
What bindings you're using
pyo3
Does
cargo build
work?If on windows, have you checked that you aren't accidentally using unix path (those with the forward slash
/
)?Steps to Reproduce
requires-python = ">=3.12"
set inpyproject.toml
.maturin generate-ci github --pytest > .github/workflows/publish.yml
.github/workflows/publish.yml
to remove Windows/macOS/musllinux, remove the publishing step, and trigger on PR (or however you'd like to test)x86
andx86_64
(good)aarch64
and probably other architectures (bad)