Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Resolve every tool's versions through the tool-versions data

Đang mở
#7,887 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ệ
docker, github, typescript
Lĩnh vực
devops, tooling

Hướng nghiên cứu

Start by reading the resolver changes in #7826 and the embedded fallback work in #7825, then trace the tool-version data flow between containerbase/base and containerbase/tool-versions. Compare tools with registry lookups, swallowed errors, or special constraints such as Poetry's plugin range. Done means every tool resolves latest, partial, and exact versions through online data with embedded fallback, while respecting release age and tool-specific limits.

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

Mô tả

What would you like containerbase to do?

Give every tool a version resolver and resolve all of them through the tool-versions data.

Today the tools are covered unevenly:

  • some tools have no resolver and only get the generic partial-version lookup from #7826

  • some resolvers only handle latest (php, composer, mise)

  • some resolvers catch their own lookup errors and keep the input, so the embedded fallback from #7825 never runs (nuget, gradle, maven, pip), eg. install-tool nuget 6.11 downloads v6.11 when tools.json can't be reached

  • some resolvers apply more than a version lookup, which the embedded fallback skips, eg. poetry's latest respects the version range of poetry-plugin-pypi-mirror, the offline fallback picks the newest embedded release

Required changes

  • one resolver per tool, based on the tool-versions data (online first, embedded as fallback)
  • latest, partial and exact versions resolve the same way for every tool
  • lookup errors aren't swallowed, the shared fallback handles them
  • tool-specific limits, like poetry's plugin range, also apply to versions from the tool-versions data
  • a minimum release age (eg. 1 hour) for latest and partial versions, so a new release isn't picked before all its downloads are reachable: in tool-versions when publishing, and in resolvers that still ask a registry directly. Eg. install-pip pipenv 2026 resolved to 2026.10.2 from the PyPI JSON api 6½ minutes after the upload, while pip's index still ended at 2026.10.1.
  • drop the interim partial flag from #7826

Some resolutions change for users, eg. a partial version that was used as is resolves to the newest matching release. That is accepted, the embedded data keeps installs working when the online lookup fails.

Part of #7768.

Drafted by Claude Opus 5.5 (Claude Code) for @viceice.

Ngôn ngữ chính
TypeScript
Star
58
Fork
65
Merge trung bình
10 giờ 37 phút
Pull request đã merge (30 ngày)
462

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.

  • Có Dockerfile hoặc 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 containerbase/base

Tất cả issue của containerbase/base

Issue tương tự

Thêm issue về TypeScript

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.