Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Alpine images to 3.14 #1038

Closed
adriangb opened this issue Feb 28, 2022 · 5 comments
Closed

Update Alpine images to 3.14 #1038

adriangb opened this issue Feb 28, 2022 · 5 comments

Comments

@adriangb
Copy link

Description

It looks like the Alpine based images are running 3.12, which ships with Rust 1.44, making it impossible to build with the latest release of PyO3.

Is there any plan to update the Alpine base image version so that we can install newer versions of Rust?

Build log

https://github.com/adriangb/graphlib2/runs/5353809655?check_suite_focus=true

CI config

https://github.com/adriangb/graphlib2/blob/main/.github/workflows/python.yaml

@henryiii
Copy link
Contributor

henryiii commented Mar 7, 2022

This is something you should bring up with manylinux. See pypa/manylinux#1225 before doing it, though. It might also be something to bring up with PyO3, as they should pay attention to what is available for producing wheels before dropping old versions.

@adriangb
Copy link
Author

adriangb commented Mar 7, 2022

Gotcha, apologies for filing this in the wrong place!

@adriangb adriangb closed this as completed Mar 7, 2022
@davidhewitt
Copy link

PyO3 maintainer here. There's definitely willing to make wheel building as straightforward as possible. I was under the impression that none of the manylinux images ship with a Rust compiler so one always needs to be installed as a pre-stage of cibuildwheel. Indeed this line seems to confirm as much.

I think perhaps the pain originates that rustup is not available on the i686-unknown-linux-musl target, so you've had to resort to using the system-packaged Rust compiler and hence no upgrade path beyond Rust 1.44. As far as I know, the Rust compiler itself is statically linked with very few external dependencies except for perhaps a very old glibc version, so I think it should be possible to get a copy of a newer compiler installed with a correctly-formed pre-install step.

@adriangb can I invite you to open up a PyO3 issue for this to continue the thread? We can work out appropriate way to do this and then add some extra detail on cibuildwheel compatibility to the PyO3 guide.

@adriangb
Copy link
Author

adriangb commented Mar 8, 2022

@henryiii we ended up resolving this by using https://github.com/messense/maturin-action instead of cibuildwheel (change log from my project). This also resulted in ~ 1 minute builds instead of 30+ minutes with QEMU.

I realize that this is not a problem with cibuildwheel per-se, and that exhaustively listing all of the alternatives is impossible, but this one seems like a particularly good one for Rust packages, so would you be open to mentioning it in the cibuildwheel docs?

@henryiii
Copy link
Contributor

Sorry, forgot about this. Yes, I'd be up for that - we already mention some other alternatives. The main problem here is we do a lot of work to make sure glibc & dependencies work, and that sounds like it's not really important with Rust. I'd like to improve handing someday, but mentioning the action sounds great.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants