Provide centrally pinned Python CLI tools through uv without requiring a container or Bazel

Đang mở
#189 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, shell

Hướng nghiên cứu

Start by locating the shared tool catalog and tracing how the existing container and Bazel delivery paths consume it. Then assess how a Python package invoked through uv could use those same definitions while preserving the single version authority; done means the uv path works for a pinned DevContainer release and the existing delivery paths remain intact.

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

Mô tả

Use case

As a repository maintainer, I want local development and CI to use the same centrally maintained tool versions without requiring developers or lightweight CI jobs to run a DevContainer or install Bazel. For example, our shared PR workflow runs pre-commit through uvx pre-commit, while developers use the version installed in the DevContainer. This recently meant that CI used pre-commit 4.7.0 while local checks used 4.5.1, allowing an incompatible hook configuration to pass locally and fail in CI.

I want to select one DevContainer release and run its pre-commit version through uv. I should not have to copy individual tool pins into every consuming repository or maintain another requirements file independently of the existing tool catalog.

Proposed solution

Provide a Python package in this repository that can be run through uvx from a pinned Git release, without requiring publication to PyPI. The package should expose a runner for the Python CLI tools defined in the shared catalog, resolve the selected tool to its centrally pinned package version and entrypoint, and execute it in an isolated uv-managed environment. Consumers supply the DevContainer release reference, tool name, and arguments; uv handles installation and caching. A compatible uv installation is a prerequisite and is not bootstrapped or version-pinned by this runner.

The DevContainer repository must remain the central version authority for all three delivery paths: container, uv, and Bazel. Package the existing catalog with the runner and have every delivery path consume the same tool definitions. Do not introduce separately maintained tool versions in Python package metadata, generated consumer wrappers, or downstream repositories. Existing container and Bazel delivery should continue alongside the new uv path. This initial scope covers Python CLI tools such as pre-commit; it does not require uv delivery for every native tool in the catalog.

Ngôn ngữ chính
Shell
Star
5
Fork
10
Merge trung bình
23 giờ 5 phút
Pull request đã merge (30 ngày)
29

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

  • Không có Dockerfile hay tệp Docker Compose
  • Không có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của eclipse-score/devcontainer

Tất cả issue của eclipse-score/devcontainer

Issue tương tự

Thêm issue về Shell/Bash

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.