actions / actions/setup-python
Add "Externally Managed Environments" support to block global package installations via pip
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- TypeScript
- Star
- 2.2k
- Fork
- 739
- Merge trung bình
- 6 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 1
Mô tả
Description:
To prevent system package breakage, many Linux distributions are now restricting pip install to virtual environments or uv environments (something private either way). In self-hosted environments, especially when using ephemeral runners, the hosted tools cache functionality is critical for scaling.
The current methodology allows a pip install to install directly to the cached directory for a given Python after installation, which leads to potentially broken dependency trees and all other kinds of errors if developers are not careful with their package installs. It can also lead to weird race conditions in the same way.
I propose a new input for actions/setup-python that creates the EXTERNALLY-MANAGED file right before a version of Python is marked as available (e.g. creation of the x64.complete file) that would block global pip installs.
Justification:
Did all of this in the above. Didn't read the template first.
Are you willing to submit a PR?
Absolutely. This is more of a RFC to gauge the level of interest here.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách đọc đường dẫn setup-python tool-cache đánh dấu một phiên bản Python đã cài đặt là khả dụng, sau đó xem lại đặc tả được liên kết về các môi trường được quản lý bên ngoài. Xác định marker nên được tạo như thế nào trước khi trạng thái khả dụng được ghi nhận và những bài kiểm thử hiện có nào bao quát các bản cài đặt Python được lưu trong bộ nhớ đệm. Hoàn thành nghĩa là các cài đặt pip toàn cục bị chặn đối với interpreter được lưu trong bộ nhớ đệm mà không làm gián đoạn các workflow virtual-environment hoặc uv được hỗ trợ.
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, typescript
- Lĩnh vực
- ci-cd, devops, tooling
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 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
- 35/100