bazel-contrib / bazel-contrib/rules_python

multi_pip_parse should support platform specific requirement files

Aperta
#2,653 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
help wanted P4 type: pip
Lingua principale
Starlark
Stelle
688
Fork
721
Merge medio
15h 7m
PR unite (30g)
76

Descrizione

# 🚀 feature request

### Relevant Rules

I think we should extend the functionality of `multi_pip_parse` to deal with platform specific requirement files better.

### Description
Currently you can do this to have different lock files on different versions of python
```
multi_pip_parse(
...
requirements_lock = {
"3.10": "//:requirements_lock_3_10.txt",
"3.12": "//:requirements_lock_3_12.txt",
},
)
```
but the platform specific attributes take strings (and not dict) so you can only have a single requirements file on a specific platform
```
multi_pip_parse(
...
requirements_linux = "//requirements:requirements_lock_3_12_linux.txt",
requirements_lock = {
"3.10": "//:requirements_lock_3_10.txt",
"3.12": "//:requirements_lock_3_12.txt",
},
)
```
The platform specific requirements should also allow you to specify a dict so we can express the proper requirements files on various platforms

### Describe the solution you'd like
Ideally it would just look like this
```
multi_pip_parse(
...
requirements_linux = {
"3.10": "//:requirements_lock_3_10_linux.txt",
"3.12": "//:requirements_lock_3_12_linux.txt",
},
requirements_lock = {
"3.10": "//:requirements_lock_3_10.txt",
"3.12": "//:requirements_lock_3_12.txt",
},
)
```

### Describe alternatives you've considered
I'm not really sure there are any good alternative solutions, this feels like it is just missing functionality

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

The entry point is multi_pip_parse; start by tracing how requirements_lock and requirements_linux are declared and selected. Compare the existing Python-version dictionary handling with the platform-specific attributes. Done means platform-specific attributes accept the shown version-to-label mappings while preserving current string behavior.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
build-system
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.