bazel-contrib / bazel-contrib/rules_python

py_runtime does not consume root_symlinks from the interpreter attr (hermetic toolchain)

Đang mở
#3,564 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Starlark
Star
688
Fork
721
Merge trung bình
15 giờ 7 phút
Pull request đã merge (30 ngày)
76

Mô tả

# 🐞 bug report

### Affected Rule

`py_runtime` is affected.

For example
```starlark
py_runtime(
name = "hermetic_runtime",
files = ["extracted_toolchain"],
interpreter = "extracted_toolchain",
interpreter_version_info = {
"major": "3",
"minor": "9",
"micro": "21",
},
python_version = "PY3",
visibility = ["//BazArTest/py_toolchain:__pkg__"],
)
```

### Is this a regression?

No. It was discovered when upgrading to bazel 9.0.0, however, because `@bazel_tools//tools/bash/runfiles` is now an alias that uses `root_symlinks`.

### Description

The `py_runtime` `interpreter` from the example makes use of `runfiles.bash`, but if it is only present in the `Runfiles.root_symlinks` of `interpreter` / `files`, then it does not exist in the runfiles directory when executing python actions.

You can see here:
https://github.com/bazel-contrib/rules_python/blob/393dcfd194615ab4d3393d29145842c186597e0e/python/private/py_runtime_rule.bzl#L54-L58

that it does not consider the `root_symlinks` in the `interpreter` runfiles.

## 🔬 Minimal Reproduction

It is pretty involved, so I'm hoping the description makes the issue readily apparent. I can work on a reproducer if that is not the case.

## 🌍 Your Environment

**Operating System:**

  

AlmaLinux 9.7 (Moss Jungle Cat)

**Output of `bazel version`:**

  

Bazelisk version: v1.26.0
INFO: Invocation ID: decd4a2d-e400-43ca-8558-5e818e7da8d1
Build label: 9.0.0
Build target: @@//src/main/java/com/google/devtools/build/lib/bazel:BazelServer
Build time: Tue Jan 20 18:16:47 2026 (1768933007)
Build timestamp: 1768933007
Build timestamp as int: 1768933007

**Rules_python version:**

  

bazel_dep(name = "rules_python", version = "1.7.0")

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu trong python/private/py_runtime_rule.bzl ở các dòng 54-58, nơi issue báo cáo cách runfiles của trình thông dịch được xử lý. Theo dõi cách trình thông dịch và các tệp đóng góp vào runfiles, bao gồm root_symlinks, và xác minh rằng một py_runtime hermetic cung cấp các liên kết đó khi các tác vụ Python thực thi; issue không nêu tên test hay reproducer nào.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
build-system
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
48/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.