-
Notifications
You must be signed in to change notification settings - Fork 48
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
Declare rules_python deps #175
Conversation
Okay, after some work and updates I at least have consistent failures: without bzlmod, enforce_min_sdk_floor can't run because the python toolchain can't find the binary dependencies on lxml (this is an assumption but seems justified after checking similar error reports in other programs). I don't know why bzlmod works here, and what it's doing differently. |
Managed to set up a docker image that mimics CI, and it looks like the (successful) bzlmod version is using python 3.11, and the (unsuccessful) non-bzlmod version is using python 3.8:
|
Okay, that solved it for linux, mac intel and mac arm apparently need separate vendored_requirements files because of the interpreter difference. I'll try a bit more and see if I can poke this. |
Thanks for looking into this!
wat, there are two different versions of python used in two different build pipelines in BazelCI? |
|
||
--extra-index-url https://pypi.python.org/simple/ | ||
|
||
lxml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's no specific version of lxml specified here, so pip will always try to pull the latest available one, right? In that case, wouldn't the requirements_lock.txt file be invalidated frequently?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe it's locked to the latest version when the lockfile was last updated.
It'd probably be better to explicitly specify a version, but that's down the chain after "make the thing work cross-platform".
Yes, the Mac workers and the Ubuntu workers have different versions installed. Ideally, we wouldn't have system python on either, and just use a hermetic python toolchain for everything. To summarize the problem for rules_android:
|
This only works for bzlmod: non-bzlmod will break. Trying to fix bazelbuild#179.
This only works for bzlmod: non-bzlmod will break. Trying to fix bazelbuild#179.
Works for non-bzlmod Fixes bazelbuild#179.
This will work for linux but not Mac.
[Previous text moved to #179]
Add correct lxml dep in rules_python setup, fixing #179.