bazel-contrib / bazel-contrib/rules_python
Expose `sysconfig` variables in `PyRuntimeInfo` provider
- Lingua principale
- Starlark
- Stelle
- 688
- Fork
- 721
- Merge medio
- 15h 7m
- PR unite (30g)
- 76
Descrizione
# 🚀 feature request
Downstream rules are potentially interested in the selected toolchains configuration.
Specifically, building C extension modules depends on things like `EXT_SUFFIX` to create proper extensions supporting the chosen interpreter.
Because that suffix ends up in file names, downstream rules may need that value at configure time, when they can't query the interpreter.
But the `@rules_python` `repository_rule` can easily determine these variables before configure time, for each registered toolchain.
This is related to:
- https://github.com/bazelbuild/rules_python/issues/824
- https://github.com/nicholasjng/nanobind-bazel/issues/61
- I'm sure other downstream bazel tooling related to C extensions would like this as-well
### Relevant Rules
This feature would ultimately need changes to:
- `PyRuntimeInfo` (basic schema)
- `py_runtime` (so that third party toolchains/interpreters can provide that information too)
- the internal pluming providing the `@rules_python` provided internal toolchains
### Description
`PyRuntimeInfo` needs a field `ext_suffix`, or alternatively `sysconfig_variables` (for future extension).
At extension instantiation time, when setting up the toolchain repos, the respective interpreters should be queried for their `ext_suffix`; alternatively, that information could be determined offline.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia dallo schema PyRuntimeInfo e dalla regola py_runtime indicata nell’issue, quindi segui la configurazione del repository interno della toolchain che fornisce gli interpreti registrati. Esamina le issue #824 e nanobind-bazel#61 per il contesto; il lavoro è completato quando i dati di sysconfig come ext_suffix sono disponibili per le regole downstream e possono essere forniti da toolchain di terze parti.
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