RFC: Never remove detection of outdated config keys (Config Lifecycle Management)
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, nodejs
- Ambito
- cli
Direzione di ricerca
No repository files or tests are named. Start by locating npm's existing unknown-config-key warning and reviewing the proposed protocol and reference library; done would require an agreed catalog schema, lifecycle behavior, warning semantics, and a maintainer-approved implementation plan.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
npm currently warns about unknown user config keys and says that support will stop in a future major version. That path ends with silent mystery debt: old projects keep the key, future npm stops mentioning it, and people copy unexplained lines into new files.
Please treat outdated config keys as a forever-detectable catalog problem—not something to delete from recognition.
Proposal: Config Lifecycle Management
Keep a shipped, machine-readable key index for every config key npm has ever recognized. Keys move through statuses; they are never removed from the index:
| Status | Behavior |
|---|---|
active |
Accept and document |
deprecated |
Accept; always warn with successor + timeline |
expired |
Do not apply the value; always detect and alert: expired after version X; ignored; migration path |
unknown |
Present in a scanned file but absent from the catalog — warn (typo / foreign tool / catalog gap) |
Non-negotiable: expired ≠ forgotten. Stopping detection after a major version is the failure mode.
Why this matters
- Old
.npmrc/ project config keeps outdated keys for years (archives, corporate templates, copied gists). - If npm stops warning, the key becomes unexplained folklore.
- Humans and AI agents then have to archaeology the meaning; careful users research, others copy blindly.
- npm already pays the cost of scanning config; preserving catalog rows is cheap compared to ecosystem confusion.
Concrete ask
- Never remove a known key from npm’s recognition/alert path. Change status instead.
- Ship a versioned config-keys index (JSON is fine) with releases and docs.
- Alerts must distinguish deprecated vs expired vs unknown, and for expired keys name the version boundary (e.g.
expired after [email protected]; value ignored). - Prefer one internal module for classify → match → alert so warnings stay consistent.
Prior art / reference
OpenShellOrg drafted this as a CLI config lifecycle protocol and a small reference library:
- Protocol: https://github.com/openshellorg/docs (page: Config Lifecycle Management / SOS mandatory protocols)
- Published docs: https://docs.opensh.org/open-shell-org/standard-config-lifecycle-management.html
- Reference library: https://github.com/openshellorg/config-lifecycle
- Practitioner write-up: https://docs.devcentr.org/general-knowledge/explanation/architecture/config-lifecycle-management/
Happy to refine the index schema with maintainers. The goal is explainability that outlives any single major version.
Originally filed under the name Config Key Sanitation; renamed to Config Lifecycle Management on 2026-09-26. Old links redirect.
- Lingua principale
- JavaScript
- Stelle
- 10.2k
- Fork
- 4.9k
- Merge medio
- 5g 4h
- PR unite (30g)
- 17
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di npm/cli
-
[BUG] npm pkg delete removes the first array item for a nonexistent propertyForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 2 giorni
-
create node pr: Node.js 20 deprecation & `DEP0040` warnings loggedForse già presa @lazerg l’ha presa 25 giorni fa. ApertaEngineering Priority 1
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
I maintainer di solito rispondono entro 2 giorni
-
Engineering Priority 2
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 2 giorni
-
`npm audit signatures` does not report how many packages it skipped for want of registry keysForse già presa @greenlincoln05 l’ha presa 22 giorni fa. ApertaPriority 3
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 2 giorni
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
subhranshudash13-dotcom/Contribo#74 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 67/100
ThatGuySam/doesitarm#1114 ·
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
laaielichter/Reverseport#44 ·
I maintainer di solito rispondono entro 1 giorno
-
failed for an unknown reason
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
OpenTermsArchive/contrib-declarations#4148 ·
I maintainer di solito rispondono entro 1 giorno