bazel-contrib / bazel-contrib/rules_python

`local_runtime_repo` writes absolute path of Xcode on macOS

Abierto
#3,123 6 comentarios 0 reacciones 0 asignados Ver en GitHub
help wanted
Lenguaje dominante
Starlark
Estrellas
688
Forks
721
Merge medio
15 h 7 min
PR fusionados (30 d)
76

Descripción

# 🐞 bug report

(Sorry for all the annoying macOS specific bugs!)

### Affected Rule

The issue is caused by the rule: `local_runtime_repo`

### Is this a regression?

Yes(?)

### Description

Starting with this change: https://github.com/bazel-contrib/rules_python/pull/2760/files#diff-33a51eb016b4b2a4b53d940f07c5388bd572ef61689051bc6f266ea7e5533c72R99

If running on macOS, `/usr/bin/python3` is a system shim that will run a Python runtime located within Xcode. The path of Xcode will then show up in `base_executable`:

```
❯ /usr/bin/python3 python/private/get_local_runtime_info.py
{"major": 3, "minor": 9, "micro": 6, "include": "/Library/Python/3.9/include", "implementation_name": "cpython", "base_executable": "/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/usr/bin/python3", "LDLIBRARY": "Python3.framework/Versions/3.9/Python3", "LIBDIR": "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib", "INSTSONAME": "Python3.framework/Versions/3.9/Python3", "PY3LIBRARY": "", "SHLIB_SUFFIX": ".so"}
```

This path then ends up in the run script for i.e. `py_binary`:

```
76: PYTHON_BINARY = '/Applications/Xcode-26.0.0-Beta.app/Contents/Developer/usr/bin/python3'
```

## 🔬 Minimal Reproduction

1. macOS
2. `local_runtime_repo` setup with `interpreter_path = "/usr/bin/python3"`
3. build a `py_binary` target and observe the resulting run script
4. Change/move your Xcode version or path and rebuild. The `py_binary` path will be unchanged.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza con python/private/get_local_runtime_info.py y la regla local_runtime_repo; después reproduce el caso de macOS con interpreter_path="/usr/bin/python3" y un destino py_binary. Sigue cómo llega base_executable al script de ejecución generado; el trabajo estará terminado cuando, después de cambiar o mover Xcode, una nueva compilación ya no deje incrustada la ruta antigua de Xcode en ese script.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
macos, python
Área
build-system, operating-systems
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
42/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.