Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Support incompatible_strict_action_env

Offen
#3,655 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
build-system

Rechercherichtung

Beginne damit, den Windows-Fall mit Bazel 9 und aktivierter strikter Aktionsumgebung zu reproduzieren: ein sh_binary mit einem py_binary in data. Lies das Runfiles- und Interpreter-Suchverhalten des Bazel-Launchers und vergleiche es anschließend mit der direkten Python-Ausführung und dem RunEnvironmentInfo-Ansatz. Erledigt ist die Aufgabe, wenn die verschachtelte Binärdatei ihren Python-Interpreter finden kann, ohne die Vererbung von PATH oder den dokumentierten Workaround zu benötigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

core-rules

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)
Vorherrschende Sprache
Starlark
Sterne
688
Forks
728
Ø Merge
1 T. 2 Std.
Gemergte PRs (30 T.)
99

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus bazel-contrib/rules_python

Alle Issues in bazel-contrib/rules_python

Ähnliche Issues

Weitere Issues zu Build System

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.