Support incompatible_strict_action_env
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- build-system
Piste de recherche
Commencez par reproduire le cas Windows avec Bazel 9 et l’environnement d’action strict activé : un sh_binary avec un py_binary dans data. Examinez le comportement du launcher de Bazel concernant les runfiles et la recherche de l’interpréteur, puis comparez-le à l’exécution directe de Python et à l’approche RunEnvironmentInfo. Le travail est terminé lorsque le binaire imbriqué peut localiser son interpréteur Python sans nécessiter l’héritage de PATH ni le workaround documenté.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
As of Bazel 9, --incompatible_strict_action_env=true is the default.
Almost everything works with that set, the one exception is Windows in a particular case. That particular case appears to be when the python program is a data dep of another binary, e.g. an sh_binary with a py_binary in data. What happens is the Bazel launcher can't find the python interpreter in runfiles, so falls back to looking for python.exe on PATH. When strict action env is enabled, the outer PATH isn't inherited, so python.exe can't be found, and thus the launcher fails to execute.
A direct execution of a python program is ok, since the runfiles structure is present enough that the bazel launcher can find the interpreter.
Other than moving away from the Bazel launcher, I don't see a way to solve this. We've wanted to stop using the bazel launcher anyways, so this isn't a big deal, this case just add additional pressure to do so.
Fundamentally, when a binary is running within another binary's runfiles, the logic to find things is a bit more convoluted. We can use RunEnvironmentInfo so that tests auto-inherit PATH, but this only helps tests. binaries-in-binaries or binaries-run-by-actions wouldn't be affected.
There are two workarounds:
- Set
--incompatible_strict_action_env=false(restore non-strict env behavior, which includes PATH) - Set
--action_env=PATH(only inherit PATH for actions)
- Langage dominant
- Starlark
- Étoiles
- 687
- Forks
- 726
- Merge moyen
- 1 j 7 h
- PR mergées (30 j)
- 80
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de bazel-contrib/rules_python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
bazel-contrib/rules_python#4251 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
bazel-contrib/rules_python#4164 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
go:embed stdlib_list.txt file in gazelle/python/std_modules.go is missingPeut-être pris @udaya2899 l’a pris il y a 17 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
bazel-contrib/rules_python#3821 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
bazel-contrib/rules_python#4269 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
bazel-contrib/rules_python#4250 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de bazel-contrib/rules_python
Issues similaires
-
build: Update rust versionPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouvertedependencies
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
ibm-granite-community/granite-cli#229 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
Les mainteneurs répondent en général sous 2 jours
-
`loment build DIR` reports success on a source that does not compile, on every run after the firstOuvertebug cli sev-5
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
InfiniTimeOrg/InfiniTime#2492 ·
-
package-update
Difficulté 1/5 Moins d'une heure Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour