-
-
Notifications
You must be signed in to change notification settings - Fork 591
fix: use the python micro version to parse whl metadata in bzlmod #2793
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
fd89eca
to
669dab4
Compare
c86673f
to
d5f76c4
Compare
Add `<micro>` version to the target platform. Instead of `cpxy_os_cpu` the target platform string format becomes `cpxy.z_os_cpu`. This is a temporary measure until we get a better API for defining target platforms. Summary: - [x] test `select_whls` function needs to be tested to ensure that the whl selection is not impacted when we have the full version in the target platform. - [ ] `download_only` legacy whl code path in `bzlmod` needs further testing. - [x] Extra testing to ensure that the default version selection works correctly. - [x] test `whl_config_setting` handling and config setting creation. The config settings in the hub repo should not use the full version, because from the outside, the whl is compatible with all `micro` versions of a given `3.<minor_version>` of the Python interpreter. This means that the already documented config setting do not need to be changed. - [x] changelog. - [x] `pep508_deps` tests for handling the `full_python_version` correctly. Fixes bazel-contrib#2319
d5f76c4
to
dbc046e
Compare
rickeylev
approved these changes
Apr 24, 2025
I will cherry pick this to the 1.4 release branch to fix #2815. |
rickeylev
pushed a commit
that referenced
this pull request
Apr 24, 2025
) Add `<micro>` version to the target platform. Instead of `cpxy_os_cpu` the target platform string format becomes `cpxy.z_os_cpu`. This is a temporary measure until we get a better API for defining target platforms. Summary: - [x] test `select_whls` function needs to be tested to ensure that the whl selection is not impacted when we have the full version in the target platform. - [ ] `download_only` legacy whl code path in `bzlmod` needs further testing. - [x] test `whl_config_setting` handling and config setting creation. The config settings in the hub repo should not use the full version, because from the outside, the whl is compatible with all `micro` versions of a given `3.<minor_version>` of the Python interpreter. This means that the already documented config setting do not need to be changed. - [x] `pep508_deps` tests for handling the `full_python_version` correctly. - [x] `pep508_deps` tests for ensuring the `default_abi` is being handled correctly. Fixes #2319 (cherry picked from commit 1e21dbd)
4 tasks
aignas
added a commit
to aignas/rules_python
that referenced
this pull request
Apr 27, 2025
This has been fixed in the Starlark implementation in bazel-contrib#2793 and in this PR I am backporting the changes to handle the full python version target platform strings so that we can have the same behaviour for now. At the same time I have simplified and got rid of the specialization handling in the Python algorithm just like I did in the starlark, which simplifies the tests and makes the algorithm more correct. Work towards bazel-contrib#2830
github-merge-queue bot
pushed a commit
that referenced
this pull request
Apr 28, 2025
Handling of `python_full_version` correctly has been fixed in the Starlark implementation in #2793 and in this PR I am backporting the changes to handle the full python version target platform strings so that we can have the same behaviour for now. At the same time I have simplified and got rid of the specialization handling in the Python algorithm just like I did in the starlark, which simplifies the tests and makes the algorithm more correct. Summary: * Handle `cp3x.y_os_arch` strings in the `platform.py` * Produce correct strings when the `micro_version` is unset. Note, that we use version `0` in evaluating but we use the default version in the config setting. This is to keep compatibility with the current behaviour when the target platform is not fully specified (which would be the case for WORKSPACE users). * Adjust the tests and the code to be more similar to the starlark impl. Work towards #2830
aignas
added a commit
that referenced
this pull request
Apr 29, 2025
Handling of `python_full_version` correctly has been fixed in the Starlark implementation in #2793 and in this PR I am backporting the changes to handle the full python version target platform strings so that we can have the same behaviour for now. At the same time I have simplified and got rid of the specialization handling in the Python algorithm just like I did in the starlark, which simplifies the tests and makes the algorithm more correct. Summary: * Handle `cp3x.y_os_arch` strings in the `platform.py` * Produce correct strings when the `micro_version` is unset. Note, that we use version `0` in evaluating but we use the default version in the config setting. This is to keep compatibility with the current behaviour when the target platform is not fully specified (which would be the case for WORKSPACE users). * Adjust the tests and the code to be more similar to the starlark impl. Work towards #2830 (cherry picked from commit 9e613d5)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add
<micro>
version to the target platform. Instead ofcpxy_os_cpu
the target platform string format becomes
cpxy.z_os_cpu
. This is atemporary measure until we get a better API for defining target
platforms.
Summary:
select_whls
function needs to be tested to ensure that thewhl selection is not impacted when we have the full version in the
target platform.
download_only
legacy whl code path inbzlmod
needs furthertesting.
whl_config_setting
handling and config setting creation.The config settings in the hub repo should not use the full version,
because from the outside, the whl is compatible with all
micro
versions of a given
3.<minor_version>
of the Python interpreter.This means that the already documented config setting do not need to
be changed.
pep508_deps
tests for handling thefull_python_version
correctly.
pep508_deps
tests for ensuring thedefault_abi
is beinghandled correctly.
Fixes #2319