diff --git a/CHANGELOG.md b/CHANGELOG.md index 004d92c7bb..95d1dc8530 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -45,6 +45,8 @@ A brief description of the categories of changes: `bzlmod` users would have observed. * (pypi) (Bazel 7.4+) Allow spaces in filenames included in `whl_library`s ([617](https://github.com/bazelbuild/rules_python/issues/617)). +* (pypi) When {attr}`pip.parse.experimental_index_url` is set, we need to still + pass the `extra_pip_args` value when building an `sdist`. {#v0-0-0-added} ### Added diff --git a/examples/bzlmod/MODULE.bazel.lock b/examples/bzlmod/MODULE.bazel.lock index b8ce0dc1de..6e7d780a26 100644 --- a/examples/bzlmod/MODULE.bazel.lock +++ b/examples/bzlmod/MODULE.bazel.lock @@ -1392,7 +1392,7 @@ }, "@@rules_python~//python/extensions:pip.bzl%pip": { "general": { - "bzlTransitiveDigest": "45JfYNdHqP7vwP3B2J7fF5SOBX2ewmWdn0AmVfmIYT8=", + "bzlTransitiveDigest": "HF4Ob8+IVv7X7DHag07k47pv+QywfyjKF8Z6Q7M5/oU=", "usagesDigest": "MChlcSw99EuW3K7OOoMcXQIdcJnEh6YmfyjJm+9mxIg=", "recordedFileInputs": { "@@other_module~//requirements_lock_3_11.txt": "a7d0061366569043d5efcf80e34a32c732679367cb3c831c4cdc606adc36d314", @@ -1488,6 +1488,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "zipp-3.20.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -1623,6 +1629,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "sphinx-7.2.6.tar.gz", "group_deps": [ "sphinx", @@ -1690,6 +1702,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "s3cmd-2.1.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -1816,6 +1834,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "lazy-object-proxy-1.10.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -1844,6 +1868,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "websockets-11.0.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -1984,6 +2014,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "urllib3-1.26.18.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2040,6 +2076,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "sphinxcontrib_applehelp-1.0.7.tar.gz", "group_deps": [ "sphinx", @@ -2267,6 +2309,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "jinja2-3.1.4.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2295,6 +2343,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "sphinxcontrib_qthelp-1.0.6.tar.gz", "group_deps": [ "sphinx", @@ -2381,6 +2435,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "setuptools-65.6.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2430,6 +2490,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "chardet-4.0.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2458,6 +2524,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "mccabe-0.7.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2486,6 +2558,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "sphinxcontrib_serializinghtml-1.1.9.tar.gz", "group_deps": [ "sphinx", @@ -2544,6 +2622,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "docutils-0.20.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2621,6 +2705,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "tomli-2.0.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2700,6 +2790,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "Pygments-2.16.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2729,6 +2825,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "wheel-0.40.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2844,6 +2946,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "colorama-0.4.6.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -2949,6 +3057,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "MarkupSafe-2.1.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -3005,6 +3119,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "sphinxcontrib_htmlhelp-2.0.4.tar.gz", "group_deps": [ "sphinx", @@ -3070,6 +3190,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "typing_extensions-4.12.2.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -3243,6 +3369,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "tomlkit-0.11.6.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -3308,6 +3440,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "pylint-2.15.9.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -3336,6 +3474,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "pathspec-0.10.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -3476,6 +3620,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "packaging-23.2.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -3532,6 +3682,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "idna-2.10.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -3581,6 +3737,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "snowballstemmer-2.2.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -3730,6 +3892,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "dill-0.3.6.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -3933,6 +4101,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "platformdirs-2.6.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -4335,6 +4509,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "yamllint-1.28.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -4363,6 +4543,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "python-dateutil-2.8.2.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -4506,6 +4692,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "importlib_metadata-8.4.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -4718,6 +4910,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "sphinxcontrib-jsmath-1.0.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -4746,6 +4944,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "alabaster-0.7.13.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -4802,6 +5006,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "six-1.16.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -4831,6 +5041,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "requests-2.25.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -4990,6 +5206,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "Babel-2.13.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -5109,6 +5331,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "isort-5.11.4.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -5137,6 +5365,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "python-magic-0.4.27.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -5242,6 +5476,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "certifi-2023.7.22.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -5328,6 +5568,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "PyYAML-6.0.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -5356,6 +5602,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "sphinxcontrib_devhelp-1.0.5.tar.gz", "group_deps": [ "sphinx", @@ -5451,6 +5703,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "tabulate-0.9.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -5517,6 +5775,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "imagesize-1.4.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -5770,6 +6034,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "astroid-2.12.13.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -5912,6 +6182,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "pylint-print-1.0.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -6010,6 +6286,12 @@ "cp39_osx_x86_64", "cp39_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple", + "--extra-index-url", + "https://pypi.org/simple/" + ], "filename": "wrapt-1.14.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_9_host//:python", "repo": "pip_39", @@ -6299,7 +6581,7 @@ }, "@@rules_python~//python/private/pypi:pip.bzl%pip_internal": { "general": { - "bzlTransitiveDigest": "pgIPI+ouKZGvpe1ZWE13QCQ5n0E4veB3tzWhx5XURJ0=", + "bzlTransitiveDigest": "oEqeANhT7TnWlFpmzRhRdWn9kCRKTen7mIV72CWlAIA=", "usagesDigest": "LYtSAPzhPjmfD9vF39mCED1UQSvHEo2Hv+aK5Z4ZWWc=", "recordedFileInputs": { "@@rules_python~//tools/publish/requirements_linux.txt": "8175b4c8df50ae2f22d1706961884beeb54e7da27bd2447018314a175981997d", @@ -6349,6 +6631,10 @@ "cp311_linux_s390x", "cp311_linux_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "cffi-1.17.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -6471,6 +6757,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "urllib3-2.2.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -6543,6 +6833,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "charset_normalizer-3.4.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -6637,6 +6931,10 @@ "cp311_linux_s390x", "cp311_linux_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "cryptography-43.0.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -6684,6 +6982,10 @@ "cp311_linux_s390x", "cp311_linux_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "SecretStorage-3.3.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -6709,6 +7011,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "jaraco_functools-4.1.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -6778,6 +7084,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "idna-3.10.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -6821,6 +7131,10 @@ "experimental_target_platforms": [ "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "pywin32-ctypes-0.2.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -6871,6 +7185,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "pygments-2.18.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -6971,6 +7289,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "backports_tarfile-1.2.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7040,6 +7362,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "jaraco.classes-3.4.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7137,6 +7463,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "requests-toolbelt-1.0.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7237,6 +7567,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "docutils-0.21.2.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7262,6 +7596,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "keyring-25.4.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7337,6 +7675,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "more-itertools-10.5.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7387,6 +7729,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "certifi-2024.8.30.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7509,6 +7855,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "mdurl-0.1.2.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7584,6 +7934,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "rfc3986-2.0.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7609,6 +7963,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "twine-5.1.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7634,6 +7992,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "pkginfo-1.10.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7684,6 +8046,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "markdown-it-py-3.0.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7809,6 +8175,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "nh3-0.2.18.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7834,6 +8204,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "requests-2.32.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7878,6 +8252,10 @@ "cp311_linux_s390x", "cp311_linux_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "pycparser-2.22.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -7953,6 +8331,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "importlib_metadata-8.5.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -8103,6 +8485,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "rich-13.9.3.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -8284,6 +8670,10 @@ "cp311_linux_s390x", "cp311_linux_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "jeepney-0.8.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -8356,6 +8746,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "zipp-3.20.2.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -8497,6 +8891,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "jaraco_context-6.0.1.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", @@ -8547,6 +8945,10 @@ "cp311_osx_x86_64", "cp311_windows_x86_64" ], + "extra_pip_args": [ + "--index-url", + "https://pypi.org/simple" + ], "filename": "readme_renderer-44.0.tar.gz", "python_interpreter_target": "@@rules_python~~python~python_3_11_host//:python", "repo": "rules_python_publish_deps_311", diff --git a/python/private/pypi/extension.bzl b/python/private/pypi/extension.bzl index dc02392d50..fdc76d5750 100644 --- a/python/private/pypi/extension.bzl +++ b/python/private/pypi/extension.bzl @@ -274,28 +274,28 @@ def _create_whl_repos( found_something = True is_reproducible = False + args = dict(whl_library_args) if pip_attr.netrc: - whl_library_args["netrc"] = pip_attr.netrc + args["netrc"] = pip_attr.netrc if pip_attr.auth_patterns: - whl_library_args["auth_patterns"] = pip_attr.auth_patterns + args["auth_patterns"] = pip_attr.auth_patterns - if distribution.filename.endswith(".whl"): - # pip is not used to download wheels and the python `whl_library` helpers are only extracting things - whl_library_args.pop("extra_pip_args", None) - else: - # For sdists, they will be built by `pip`, so we still + if not distribution.filename.endswith(".whl"): + # pip is not used to download wheels and the python + # `whl_library` helpers are only extracting things, however + # for sdists, they will be built by `pip`, so we still # need to pass the extra args there. - pass + args["extra_pip_args"] = requirement.extra_pip_args # This is no-op because pip is not used to download the wheel. - whl_library_args.pop("download_only", None) + args.pop("download_only", None) repo_name = whl_repo_name(pip_name, distribution.filename, distribution.sha256) - whl_library_args["requirement"] = requirement.srcs.requirement - whl_library_args["urls"] = [distribution.url] - whl_library_args["sha256"] = distribution.sha256 - whl_library_args["filename"] = distribution.filename - whl_library_args["experimental_target_platforms"] = requirement.target_platforms + args["requirement"] = requirement.srcs.requirement + args["urls"] = [distribution.url] + args["sha256"] = distribution.sha256 + args["filename"] = distribution.filename + args["experimental_target_platforms"] = requirement.target_platforms # Pure python wheels or sdists may need to have a platform here target_platforms = None @@ -303,7 +303,7 @@ def _create_whl_repos( if len(requirements) > 1: target_platforms = requirement.target_platforms - whl_libraries[repo_name] = dict(whl_library_args.items()) + whl_libraries[repo_name] = args whl_map.setdefault(whl_name, []).append( whl_alias( diff --git a/tests/pypi/extension/extension_tests.bzl b/tests/pypi/extension/extension_tests.bzl index 3d79e10d73..27c6bba5e2 100644 --- a/tests/pypi/extension/extension_tests.bzl +++ b/tests/pypi/extension/extension_tests.bzl @@ -167,7 +167,14 @@ def _test_simple_get_index(env): got_simpleapi_download_kwargs.update(kwargs) return { "simple": struct( - whls = {}, + whls = { + "deadb00f": struct( + yanked = False, + filename = "simple-0.0.1-py3-none-any.whl", + sha256 = "deadb00f", + url = "example2.org", + ), + }, sdists = { "deadbeef": struct( yanked = False, @@ -190,9 +197,15 @@ def _test_simple_get_index(env): python_version = "3.15", requirements_lock = "requirements.txt", experimental_index_url = "pypi.org", + extra_pip_args = [ + "--extra-args-for-sdist-building", + ], ), ], ), + read = lambda x: { + "requirements.txt": "simple==0.0.1 --hash=sha256:deadbeef --hash=sha256:deadb00f", + }[x], ), available_interpreters = { "python_3_15_host": "unit_test_interpreter_target", @@ -205,6 +218,13 @@ def _test_simple_get_index(env): pypi.hub_group_map().contains_exactly({"pypi": {}}) pypi.hub_whl_map().contains_exactly({"pypi": { "simple": [ + struct( + config_setting = "//_config:is_python_3.15", + filename = "simple-0.0.1-py3-none-any.whl", + repo = "pypi_315_simple_py3_none_any_deadb00f", + target_platforms = None, + version = "3.15", + ), struct( config_setting = "//_config:is_python_3.15", filename = "simple-0.0.1.tar.gz", @@ -215,6 +235,25 @@ def _test_simple_get_index(env): ], }}) pypi.whl_libraries().contains_exactly({ + "pypi_315_simple_py3_none_any_deadb00f": { + "dep_template": "@pypi//{name}:{target}", + "experimental_target_platforms": [ + "cp315_linux_aarch64", + "cp315_linux_arm", + "cp315_linux_ppc", + "cp315_linux_s390x", + "cp315_linux_x86_64", + "cp315_osx_aarch64", + "cp315_osx_x86_64", + "cp315_windows_x86_64", + ], + "filename": "simple-0.0.1-py3-none-any.whl", + "python_interpreter_target": "unit_test_interpreter_target", + "repo": "pypi_315", + "requirement": "simple==0.0.1", + "sha256": "deadb00f", + "urls": ["example2.org"], + }, "pypi_315_simple_sdist_deadbeef": { "dep_template": "@pypi//{name}:{target}", "experimental_target_platforms": [ @@ -227,6 +266,9 @@ def _test_simple_get_index(env): "cp315_osx_x86_64", "cp315_windows_x86_64", ], + "extra_pip_args": [ + "--extra-args-for-sdist-building", + ], "filename": "simple-0.0.1.tar.gz", "python_interpreter_target": "unit_test_interpreter_target", "repo": "pypi_315",