GH-80789: Bundle ensurepip wheels at build time#109130
Conversation
Co-authored-by: Sviatoslav Sydorenko <wk@sydorenko.org.ua>
Co-authored-by: Sviatoslav Sydorenko <wk@sydorenko.org.ua>
This reverts commit 0aaf135.
|
|
Sorry, something went wrong.
zware
left a comment
There was a problem hiding this comment.
This is going to need something for buildbots to avoid breaking them all, but I like the direction here.
Sorry, something went wrong.
Sorry, something went wrong.
# Conflicts: # .cirrus.yml
Reviewed-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
I identified the place needing to be changed in #12791 (comment). @AA-Turner FYI |
Sorry, something went wrong.
I tried to explore a different approach of fully integrating this into A |
Sorry, something went wrong.
I tried doing that in my PR and was getting weird behavior, I wasn't sure why. Maybe I was misusing something in the build machinery or was just confused... If that works, it's probably fine. OTOH, you may want to take into account that many distributions prefer their build envs to be disconnected from the internet so it might still be wise to provide them with means to pre-provision the wheel separately. |
Sorry, something went wrong.
Would #109245 help? |
Sorry, something went wrong.
In Gentoo we aren't actually using the wheels originally bundled with CPython itself but providing the newest versions of the them separately, so as long as that continues working, I suppose that's fine with us. However, it is is paramount that:
However, I can imagine it could be mildly annoying to users who aren't used to the new workflow that having a complete git clone would no longer suffice to actually build CPython offline. |
Sorry, something went wrong.
|
Same for Fedora. With an addition that we do sometimes keep the bundled wheels for too new or too old Pythons, so having a way to pre-populate the wheels instead of downloaidng them would still be needed. |
Sorry, something went wrong.
|
@AA-Turner could you resolve the conflicts with this PR? I think it would be good to have this be in Python 3.13's cycle as early as possible, to allow any potential redistributors who care about the details of ensurepip to have time to adjust things as well as provide us feedback on this as early as feasible. |
Sorry, something went wrong.
|
Closing this per #80789 (comment). Thanks @AA-Turner for filing this, even though we're not going ahead with this (despite me implying that earlier in the discussion). |
Sorry, something went wrong.
Based on the discussion in #12791, this is a sketch of a different approach (building very heavily on @webknjaz's work).
We add a fairly simple bundler script at
Tools/build/bundle_ensurepip_wheels.py, with two changes toensurepipitself to adapt. This PR doesn't attempt to switch to the one-project model, as I found the diff was too large to reasonably review.One question: should we make this part of the default build process (i.e. integration into
make all/ PCBuild)?A
📚 Documentation preview 📚: https://cpython-previews--109130.org.readthedocs.build/