Skip to content

Build/Test/Repair multiple projects #2300

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

Open
LecrisUT opened this issue Mar 3, 2025 · 2 comments
Open

Build/Test/Repair multiple projects #2300

LecrisUT opened this issue Mar 3, 2025 · 2 comments

Comments

@LecrisUT
Copy link

LecrisUT commented Mar 3, 2025

I am currently working on a project that has multiple sub-projects that have to be built with version sync between each other and would require the repair step to pull in the recently built (and repaired) wheels from the previous step. But getting that to works is really difficult, especially with the linux runners running in containers.

Instead what would help is for package_dir to accept a comma-separated list, and have all the steps run in groups, BEFORE_ALL -> BEFORE_BUILD -> BUILD_ALL_WHEELS -> REPAIR_ALL_WHEELS etc. It would also help to have the format variables more widely available in all the steps.

@joerick
Copy link
Contributor

joerick commented Mar 10, 2025

I think due to the complexity involved, that's unlikely to be a feature that we offer. Each package can contain its own pyproject.toml, so we'd have to somehow combine the configs for each package with some global config for how the flow works. It would be difficult to justify the complexity IMO.

Have you tried using PIP_FIND_LINKS to try to get a subsequent build to use previously built wheels?

@LecrisUT
Copy link
Author

Each package can contain its own pyproject.toml, so we'd have to somehow combine the configs for each package with some global config for how the flow works. It would be difficult to justify the complexity IMO.

What if we restrict the scope that only the top pyproject.toml is read for the configuration without merging the configs. It is likely that if they have such a complex inter-dependency, they would also have a meta-package to organize common tooling.

I am thinking of having a tool.cibuildwheel.packages which accepts a list of packages to build with the current configuration.

Have you tried using PIP_FIND_LINKS to try to get a subsequent build to use previously built wheels?

Yes, but it was not successful on the ubuntu runners that were running through containers and/or the wheel tags were not matching.

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

2 participants