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

Update rules_python to v0.33.2 #22718

Closed
wants to merge 2 commits into from

Conversation

fmeum
Copy link
Collaborator

@fmeum fmeum commented Jun 12, 2024

This makes the lockfile independent of OS/arch.

@fmeum fmeum requested a review from meteorcloudy June 12, 2024 07:55
@fmeum fmeum marked this pull request as ready for review June 12, 2024 07:55
@github-actions github-actions bot added the awaiting-review PR is awaiting review from an assigned reviewer label Jun 12, 2024
@fmeum
Copy link
Collaborator Author

fmeum commented Jun 12, 2024

@aignas Updating to rules_python 0.33.0 results in a CI failure:

Traceback (most recent call last):
	File "/tmp/bazel_qc1GFsIz/out/external/rules_python~/python/private/common/py_binary_rule_bazel.bzl", line 42, column 36, in _py_binary_impl
		return py_executable_bazel_impl(
	File "/tmp/bazel_qc1GFsIz/out/external/rules_python~/python/private/common/py_executable_bazel.bzl", line 106, column 35, in py_executable_bazel_impl
		return py_executable_base_impl(
	File "/tmp/bazel_qc1GFsIz/out/external/rules_python~/python/private/common/py_executable.bzl", line 207, column 46, in py_executable_base_impl
		exec_result = semantics.create_executable(
	File "/tmp/bazel_qc1GFsIz/out/external/rules_python~/python/private/common/py_executable_bazel.bzl", line 269, column 36, in _create_executable
		_create_executable_zip_file(
	File "/tmp/bazel_qc1GFsIz/out/external/rules_python~/python/private/common/py_executable_bazel.bzl", line 526, column 5, in _create_executable_zip_file
		def _create_executable_zip_file(ctx, *, output, zip_file, stage2_bootstrap, runtime_details):
Error: _create_executable_zip_file() got unexpected keyword argument: python_binary_path

Do you have an idea what's up with this?

@aignas
Copy link

aignas commented Jun 12, 2024

It's the end of my day, so will look at this tomorrow.

cc @rickeylev, I think this may be something that you might know better.

@aignas
Copy link

aignas commented Jun 12, 2024

Created bazelbuild/rules_python#1953 but I am not sure if it is the right fix.

@sgowroji sgowroji added team-Rules-Python Native rules for Python awaiting-user-response Awaiting a response from the author and removed awaiting-review PR is awaiting review from an assigned reviewer labels Jun 12, 2024
@fmeum fmeum changed the title Update rules_python to v0.33.0 Update rules_python to v0.33.1 Jun 13, 2024
@meteorcloudy
Copy link
Member

meteorcloudy commented Jun 13, 2024

From //src/test/shell/bazel:bazel_bootstrap_distfile_tar_test:

�[1A�[K�[31m�[1mERROR: �[0mAn error occurred during the fetch of repository 'rules_python~~python~python_3_8_x86_64-unknown-linux-gnu':
   Traceback (most recent call last):
	File "/tmp/bazel_Ubba36tE/out/external/rules_python~/python/repositories.bzl", line 165, column 34, in _python_repository_impl
		rctx.download_and_extract(
Error in download_and_extract: java.io.IOException: Error downloading [https://github.com/indygreg/python-build-standalone/releases/download/20240415/cpython-3.8.19+20240415-x86_64-unknown-linux-gnu-install_only.tar.gz] to /tmp/bazel_Ubba36tE/out/external/rules_python~~python~python_3_8_x86_64-unknown-linux-gnu/temp475338585684382831/cpython-3.8.19+20240415-x86_64-unknown-linux-gnu-install_only.tar.gz: Unknown host: github.com

Looks like

--extra_toolchains=@bazel_tools//tools/python:autodetecting_toolchain \
didn't work after upgrading to 0.33.1. We want to use the local python toolchain during bootstrap. @aignas @rickeylev Do you know what's changed?

@rickeylev
Copy link
Contributor

" Unknown host: github.com" is indicating an error downloading from github. I've seen this occasionally and its usually transient. Some of the CI jobs succeeded. I hit retry in CI, but it looks like the same error happened again. Is there some other error indicating its an issue with rules_python? Is this, perhaps, because the CI job is running without network access, and something is trying to download python-build-standalone when it shouldn't be? It looks like there's other fetches of other remote repos, though?

For posterity: a new feature in 0.33+ is the way programs startup has been rewritten. However, it's disabled by default, so you shouldn't see any change in behavior.

using @bazel_tools//python:autodetecting_toolchain

Off-topic from this issue, but: Oh, this is good to know. I've been hoping to get rid of this toolchain, but it appears to be a bit more load bearing than I thought. FYI: Using the bazel_tools one will become harder to use over time. It references the builtin-Bazel python providers, which rules_python tries to gracefully support, but those objects don't have all the same fields, so it can only do so much. Instead, after upgrading to 0.33, you can use @rules_python//python:autodetecting_toolchain (you could do it earlier, but prior to 0.33 it's an alias to bazel_tools, so not much point)

@rickeylev
Copy link
Contributor

The particular repo initiating that download is: rules_python~~python~python_3_8_x86_64-unknown-linux-gnu

The logs don't tell enough as to why, though.

The only other thing that comes to mind is something with pip dependencies? Something relating to @aignas changes? I don't recall those changes forcing usage of the hermetic runtimes, though.

That 3.8 is being downloaded is kind of weird.

The 3.8 being downloaded (or attempted to be used) reminds me of something we found with bzlmod. I forget the details, but it as something like, if no default python version was specified, it would use the first entry in the versions array, which happens to be 3.8. But this only happened if...I can't remember. If something else wasn't configured right. Or something.

@aignas
Copy link

aignas commented Jun 19, 2024

FYI, I have tagged a new release which should fix the toolchain problems you've been experiencing with 0.33.1. See bazelbuild/bazel-central-registry#2292.

@meteorcloudy
Copy link
Member

@aignas Thank you so much!!

@rickeylev
Copy link
Contributor

fyi, when importing rules_python 0.33 into google, I found one of the Bazel Java tests (PythonStarlarkApiTest.runtimeSandwich) failed due to bazelbuild/rules_python#1992. If this shows up on the Bazel side of things, we can just delete that test -- it's just verifying the PyRuntimeInfo object bazel exposes can be accessed from Starlark, but there's plenty of other tests that indirectly cover that (both in rules_python in OSS, rules_python in google, and elsewhere in the Bazel Java tests).

@meteorcloudy
Copy link
Member

@rickeylev Thanks for the heads up, we'll do that!

@fmeum fmeum changed the title Update rules_python to v0.33.1 Update rules_python to v0.33.2 Jun 20, 2024
Copy link
Member

@meteorcloudy meteorcloudy left a comment

Choose a reason for hiding this comment

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

🎉

@meteorcloudy meteorcloudy added awaiting-PR-merge PR has been approved by a reviewer and is ready to be merge internally and removed awaiting-user-response Awaiting a response from the author labels Jun 20, 2024
@github-actions github-actions bot removed the awaiting-PR-merge PR has been approved by a reviewer and is ready to be merge internally label Jun 20, 2024
@fmeum fmeum deleted the rules-python-update branch June 21, 2024 07:33
iancha1992 pushed a commit to iancha1992/bazel that referenced this pull request Jul 10, 2024
This makes the lockfile independent of OS/arch.

Closes bazelbuild#22718.

PiperOrigin-RevId: 645176563
Change-Id: I23d35c911c20ad115943d276ca5ed49d317f7f83
iancha1992 pushed a commit to iancha1992/bazel that referenced this pull request Jul 10, 2024
This makes the lockfile independent of OS/arch.

Closes bazelbuild#22718.

PiperOrigin-RevId: 645176563
Change-Id: I23d35c911c20ad115943d276ca5ed49d317f7f83
github-merge-queue bot pushed a commit that referenced this pull request Jul 10, 2024
This makes the lockfile independent of OS/arch.

Closes #22718.

PiperOrigin-RevId: 645176563
Change-Id: I23d35c911c20ad115943d276ca5ed49d317f7f83

Commit
01f6dec

Co-authored-by: Fabian Meumertzheim <fabian@meumertzhe.im>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team-Rules-Python Native rules for Python
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants