Embed the tool-versions data in the CLI and fall back to it
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 12/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- docker, typescript
- Área
- build-system, cli, tooling
Línea de trabajo
This is design work spanning several parts: the bundled @containerbase/tool-versions package, the integrity chain (index.json, <tool>.json, <tool>.integrity.json), version resolution, and the install-tool command. Start by reading the open upstream dependency in containerbase/tool-versions#86 and the parent tracking issue #7673 before touching the CLI. Done means the fallback paths are tested with upstream lookups mocked to fail, and the generic prefix resolver behaves as described.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
What would you like containerbase to do?
Embed the tool-versions release archive in the containerbase image, and let the CLI use it when the live lookups fail.
Proposal
- The image build downloads a pinned
tool-versions-<version>.tar.xzfrom the containerbase/tool-versions releases, verifies its.sha512and extracts it into the image. Renovate updates the pinned version like the prebuilds. - The pinned archive and its
.sha512are the trust anchor, verified at build time. A schema test validates every embedded file and its integrity chain in CI. - At runtime the CLI reads only the
v1/<tool>.json(andv1/<tool>/<version>.json) it needs, lazily and once per run, and checks just that file against the schema (well under a millisecond for most tools). No integrity chain and noindex.jsonread, to keep it fast. A missing, unreadable or invalid file behaves like no embedded data. - Version resolution falls back to the embedded versions when the upstream source can't be reached, and logs the fallback.
- The embedded versions feed one generic partial version resolver:
install-tool <tool> <prefix>(e.g.20,3.12) resolves to the newest release of that line, with the tool's versioning from the file. - The install uses the embedded
files(url and checksum) directly, instead of fetching checksum files or calling the Adoptium API, and keeps the current lookup for files that aren't listed. - git: with the embedded
git.json, check offline whether a prebuild exists and fall back for every missing version, without thereleases/latestrequest (after #7813). - Tests for the fallback paths with the upstream lookups mocked to fail, and docs.
Stack
- #7820 export the format schemas from
@containerbase/base - #7823 embed the release archive in the image
- #7825 CLI: read the embedded data, fall back when the upstream lookup fails
- #7826 CLI: resolve partial versions from the embedded data
- CLI: install from the embedded
files - git: offline prebuild check (after #7813)
Open question: may the embedded data skip the upstream lookup for an exact version it already knows?
Uses the release archive (containerbase/tool-versions#86). Part of #7673.
Drafted by Claude Opus 5.5 (Claude Code) for @viceice.
- Lenguaje dominante
- TypeScript
- Estrellas
- 58
- Forks
- 65
- Merge medio
- 11 h 31 min
- PR fusionados (30 d)
- 443
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de containerbase/base
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
containerbase/base#7891 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
containerbase/base#7842 ·
Los mantenedores suelen responder en 1 día
-
priority-3-normal tool/dotnet
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
containerbase/base#5996 ·
Los mantenedores suelen responder en 1 día
-
git prebuild (OpenSSL) breaks HTTPS on FIPS-enabled hosts: "Insufficient randomness"Posiblemente ocupada @ollie-sutton la tomó hoy. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
containerbase/base#7922 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
containerbase/base#7908 ·
Los mantenedores suelen responder en 1 día
Todos los issues de containerbase/base
Issues similares
-
area:agent-view area:tui bug platform:macos
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
anthropics/claude-code#104558 ·
Los mantenedores suelen responder en 1 día
-
[CURRICULUM] computation fakdAbiertoupdater
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
UniversityOfHelsinkiCS/oodikone#5141 ·
-
maintanance
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
inmanta/web-console#7606 ·
Los mantenedores suelen responder en 1 día
-
bug skills
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
equinor/fusion-framework#5846 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 74/100