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

Aperta
#8,121 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
docker, typescript
Ambito
tooling

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
TypeScript
Stelle
58
Fork
65
Merge medio
7h 47m
PR unite (30g)
483

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di containerbase/base

Tutte le issue di containerbase/base

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.