-
-
Notifications
You must be signed in to change notification settings - Fork 631
Open
Bug
0 / 10 of 1 issue completed
Copy link
Labels
type: pippip/pypi integrationpip/pypi integration
Description
π bug report
Affected Rule
Lines 63 to 75 in b40d96a
pip.parse( | |
# NOTE @aignas 2024-10-26: We have an integration test that depends on us | |
# being able to build sdists for this hub, so explicitly set this to False. | |
download_only = False, | |
experimental_index_url = "https://pypi.org/simple", | |
hub_name = "rules_python_publish_deps", | |
python_version = "3.11", | |
requirements_by_platform = { | |
"//tools/publish:requirements_darwin.txt": "osx_*", | |
"//tools/publish:requirements_linux.txt": "linux_*", | |
"//tools/publish:requirements_windows.txt": "windows_*", | |
}, | |
) |
Is this a regression?
Yes, after b9b0948, moving from pip_internal
to pip
.
Description
The rules_python_publish_deps
python hub uses the same module extension (pip
) end users use, which causes the module extension resolution to always require network access. In offline build without an up-to-date lockfile, the module extension resolution will fail even though rules_python_publish_deps
is never required by the end user.
This was discovered in bazelbuild/bazel#26163, where upgrading rules_python broke Bazel's bootstrap build.
π¬ Minimal Reproduction
π₯ Exception or Error
οΏ½[1AοΏ½[KοΏ½[31mοΏ½[1mERROR: οΏ½[0m/tmp/bazel_8RGzY3p4/out/external/rules_python+/python/private/pypi/simpleapi_download.bzl:130:14: Traceback (most recent call last):
File "/tmp/bazel_8RGzY3p4/out/external/rules_python+/python/private/pypi/extension.bzl", line 615, column 25, in _pip_impl
mods = parse_modules(module_ctx)
File "/tmp/bazel_8RGzY3p4/out/external/rules_python+/python/private/pypi/extension.bzl", line 490, column 36, in parse_modules
out = _create_whl_repos(
File "/tmp/bazel_8RGzY3p4/out/external/rules_python+/python/private/pypi/extension.bzl", line 155, column 50, in _create_whl_repos
requirements_by_platform = parse_requirements(
File "/tmp/bazel_8RGzY3p4/out/external/rules_python+/python/private/pypi/parse_requirements.bzl", line 180, column 36, in parse_requirements
index_urls = get_index_urls(
File "/tmp/bazel_8RGzY3p4/out/external/rules_python+/python/private/pypi/extension.bzl", line 470, column 79, in lambda
get_index_urls = lambda ctx, distributions: simpleapi_download(
File "/tmp/bazel_8RGzY3p4/out/external/rules_python+/python/private/pypi/simpleapi_download.bzl", line 130, column 14, in simpleapi_download
_fail("Failed to download metadata for {} for from urls: {}".format(
Error in fail: Failed to download metadata for ["nh3", "idna", "rich", "zipp", "mdurl", "twine", "certifi", "keyring", "pkginfo", "rfc3986", "urllib3", "docutils", "pygments", "requests", "jaraco-classes", "jaraco-context", "markdown-it-py", "more-itertools", "readme-renderer", "jaraco-functools", "backports-tarfile", "requests-toolbelt", "charset-normalizer", "importlib-metadata", "cffi", "jeepney", "pycparser", "cryptography", "secretstorage", "pywin32-ctypes"] for from urls: ["https://pypi.org/simple"]
π Your Environment
Operating System:
macOS, Linux, Windows
Output of bazel version
:
8.2.1
Rules_python version:
1.3.1
Anything else relevant?
This might be working as intended, but should rules_python_publish_deps
be dev_dependency
?
Sub-issues
Metadata
Metadata
Assignees
Labels
type: pippip/pypi integrationpip/pypi integration