Skip to content

refactor/fix: load target_platforms through the hub #2781

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
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

aignas
Copy link
Collaborator

@aignas aignas commented Apr 16, 2025

This PR moves the parsing of Requires-Dist to the analysis phase
within the whl_library_targets_from_requires macro. The original
whl_library_targets macro has been left unchanged so that I don't have
to reinvent the unit tests - it is well covered under tests.

Before this PR we had to wire the target_platforms via the
experimental_target_platforms attr in the whl_library, which means
that whenever this would change (e.g. the minor Python version changes),
the wheel would be re-extracted even though the final result may be the
same.

This refactor uncovered that the dependency graph creation was incorrect
if we had multiple target Python versions due to various heuristics that
this had. In hindsight I had them to make the generated BUILD.bazel
files more readable when the unit test coverage was not great. Now this
is unnecessary and since everything is happening in Starlark I thought
that having a simpler algorithm that does the right thing always is the
best way.

This also cleans up the code by removing left over TODO notes or code
that no longer make sense.

Work towards #260, #2319

This PR moves the parsing of `Requires-Dist` to the analysis phase
within the `whl_library_targets_from_requires` macro. The original
`whl_library_targets` macro has been left unchanged so that I don't have
to reinvent the unit tests - it is well covered under tests.

Before this PR we had to wire the `target_platforms` via the
`experimental_target_platforms` attr in the `whl_library`, which means
that whenever this would change (e.g. the minor Python version changes),
the wheel would be re-extracted even though the final result may be the
same.

This also cleans up the code by removing left over TODO notes or code
that no longer make sense.

Work towards bazel-contrib#260, bazel-contrib#2319
@aignas aignas requested review from rickeylev and groodt as code owners April 16, 2025 09:40
@aignas
Copy link
Collaborator Author

aignas commented Apr 18, 2025

The implementation that handles the dep resolution for target_platforms when they span multiple Python versions is buggy. The plan is to probably bug-fix that before proceeding with this PR.

@aignas aignas marked this pull request as draft April 18, 2025 11:32
@aignas aignas marked this pull request as ready for review April 20, 2025 01:10
@aignas aignas changed the title refactor: load target_platforms through the hub refactor/fix: load target_platforms through the hub Apr 20, 2025
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.

1 participant