Prefix packages of install-gem, install-npm and install-pip with their type to avoid tool name clashes

Abierto
#8,121 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
docker, typescript
Área
tooling

Línea de trabajo

Start by tracing how install-gem, install-npm, install-pip and their uninstall counterparts select resolvers and install services, then check how install-tool <name> uses ResolverMap. Review the version database, tool folders and shell wrappers for unprefixed-name records, and update docs/tools.md to remove the clash notes. Done means prefixed installs and uninstalls avoid tool-name clashes, existing records are migrated or documented, and install-tool still works for ResolverMap tools.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

breaking

What would you like containerbase to do?

Stop install-gem, install-npm and install-pip from picking a known tool's own resolver and installer when the package name matches a tool name.

Today the resolver and the install service are both picked by the first name match, and the tool's own ones are registered before the generic ones:

  • install-gem yarn / install-pip yarn install the latest @yarnpkg/cli-dist from npmjs, not a yarn gem or pip package
  • install-npm yarn installs @yarnpkg/cli-dist, not the yarn package
  • the same for every other tool name, eg. install-pip node
  • uninstall-gem, uninstall-npm and uninstall-pip have the same clash

Required changes

  • internally prefix packages installed with install-gem, install-npm and install-pip with their type and a symbol no tool or package name uses, eg. npm+yarn, gem+yarn, pip+yarn, so they never match a tool's resolver or install service; the symbol must be safe in directory names and PATH (no : or /)
  • the same for uninstall-gem, uninstall-npm and uninstall-pip
  • install-tool <name> for a ResolverMap tool keeps working
  • migrate or document installs recorded under the unprefixed name (version database, tool folders, shell wrappers)
  • remove the name clash notes from docs/tools.md

Breaking change, next major.

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

Lenguaje dominante
TypeScript
Estrellas
58
Forks
65
Merge medio
7 h 12 min
PR fusionados (30 d)
503

Preparar el entorno

Abrir en Codespaces

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de containerbase/base

Todos los issues de containerbase/base

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.