bazel-contrib / bazel-contrib/rules_python

multi_pip_parse should support platform specific requirement files

Ouverte
#2,653 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
help wanted P4 type: pip
Langage dominant
Starlark
Étoiles
688
Forks
721
Merge moyen
15 h 7 min
PR mergées (30 j)
76

Description

# 🚀 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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Le point d’entrée est multi_pip_parse ; commencez par suivre la manière dont requirements_lock et requirements_linux sont déclarés et sélectionnés. Comparez la gestion existante du dictionnaire des versions de Python avec les attributs spécifiques à la plateforme. Le travail est terminé lorsque les attributs spécifiques à la plateforme acceptent les mappages version-étiquette indiqués tout en conservant le comportement actuel des chaînes.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
build-system
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.