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

Build system refactor to prepare for parallel Python version building #419

Merged
merged 4 commits into from
Dec 16, 2024

Conversation

indygreg
Copy link
Collaborator

This series of commits (read the individual commit messages for more details) prepares the cpython-unix build system for building multiple Python X.Y versions in parallel. We don't yet actually implement the frontend support for parallel builds so the scope of the PR is more manageable and limited to (supposedly) backwards compatible behavior.

I'm about to enable support for parallel CPython builds. This
function was currently not safe if called in parallel. This was
causing setuptools / pip downloads to race writing to the same file
and failing builds.
This is less ergonomic (oh Make). But it will make it easier to
build multiple Python versions at the same time in a future commit.
Previously we generated the same Makefile for every Python version.
We can simplify things by only writing 1 Makefile per target
configuration.
This refactor allows targets for each major Python version to be
defined simultaneously. This opens the door to a single `make`
invocation building multiple versions in parallel.
@indygreg indygreg requested a review from zanieb December 14, 2024 20:20
@zanieb
Copy link
Member

zanieb commented Dec 15, 2024

Thanks! Will review on Monday.

Copy link
Member

@zanieb zanieb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Make hurts my brain a little, but I have no objections :) thanks for the nice discrete commits

@indygreg
Copy link
Collaborator Author

Yeah, make is a "fun" language.

@indygreg indygreg merged commit b16301a into main Dec 16, 2024
280 checks passed
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

Successfully merging this pull request may close these issues.

2 participants