Platform-specific packages missing from the unified `@pypi` hub
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 70/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- build-system, tooling
Direzione di ricerca
Start at the pip.parse entry point and reproduce the issue with MODULE.bazel, BUILD.bazel, requirements_linux.txt, and requirements_windows.txt. Compare the concrete @pypi_b//six alias with @pypi//six, then add regression coverage showing that the unified hub includes platform-specific packages and the alias resolves on Linux.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
🐞 bug report
(This was diagnosed with help from Codex.)
Affected Rule
pip.parse and the automatically generated unified @pypi hub.
Is this a regression?
Not sure.
Description
I'm seeing an issue where packages that appear only in some platform-specific requirements files are omitted from the unified @pypi hub.
I have an example where I expect @pypi//six to resolve on Linux when the selected concrete hub provides six for Linux. Instead, the unified hub omits the package entirely, even though the concrete hub provides the alias.
The unified hub collects packages from exposed_packages, which filters out platform-specific packages. I think it should collect packages from each concrete hub's complete wheel map and let that hub's aliases handle platform selection.
🔬 Minimal Reproduction
With rules_python and a Python 3.11 toolchain configured, add:
# MODULE.bazel
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi_b",
python_version = "3.11",
requirements_by_platform = {
"//:requirements_linux.txt": "linux_*",
"//:requirements_windows.txt": "windows_*",
},
target_platforms = [
"linux_x86_64",
"windows_x86_64",
],
)
pip.default(default_hub = "pypi_b")
use_repo(pip, "pypi_b", "pypi")
# BUILD.bazel
exports_files([
"requirements_linux.txt",
"requirements_windows.txt",
])
# requirements_linux.txt
colorama==0.4.5
six==1.16.0
# requirements_windows.txt
colorama==0.4.5
On Linux x86_64, compare:
bazel build @pypi_b//six
bazel build @pypi//six
The concrete alias resolves, but the unified alias is absent.
🔥 Exception or Error
Bazel cannot resolve @pypi//six because the unified repository does not contain the six package.
🌍 Your Environment
Operating system: linux_x86_64.
Bazel version used to validate the fix: 9.1.1.
rules_python @ 9cc620ebf92d9afaa1c0535968d82d5a7d7e4522.
Anything else relevant?
Using the concrete hub label avoids the missing unified alias. I'd be happy to contribute the fix and regression coverage.
- Lingua principale
- Starlark
- Stelle
- 688
- Fork
- 723
- Merge medio
- 1g 13h
- PR unite (30g)
- 43
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bazel-contrib/rules_python
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
bazel-contrib/rules_python#4201 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
bazel-contrib/rules_python#4164 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
bazel-contrib/rules_python#3821 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
bazel-contrib/rules_python#4198 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
bazel-contrib/rules_python#4196 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di bazel-contrib/rules_python
Issue simili
-
area:ai-suggestions bug P1
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
uttrflow/uttrflow-swift#3456 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
canonical/opentelemetry-collector-operator#409 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
quarkiverse/quarkiverse-parent#271 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100