OpenAPITools / OpenAPITools/openapi-generator-cli

[FEATURE] consider using caret ranges instead of pinned exact versions for runtime dependencies

Offen Anfängerfreundlich
#1,277 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
TypeScript
Sterne
2k
Forks
208
Ø Merge
7 Std. 12 Min.
Gemergte PRs (30 T.)
6

Beschreibung

You pin almost all of runtime dependencies to exact versions. As of 2.40.1:

"dependencies": {
  "@inquirer/select": "1.3.3",
  "@nestjs/axios": "4.0.1",
  "@nestjs/common": "11.1.28",
  "@nestjs/core": "11.1.28",
  "@nuxtjs/opencollective": "0.3.2",
  "axios": "^1.18.1",
  "chalk": "4.1.2",
  "commander": "8.3.0",
  "compare-versions": "6.1.1",
  "concurrently": "^10.0.3",
  "console.table": "0.10.0",
  "fs-extra": "11.4.0",
  "glob": "13.0.6",
  "proxy-agent": "8.0.2",
  "reflect-metadata": "0.2.2",
  "rxjs": "7.8.2",
  "tslib": "2.8.1"
}

Only  axios and  concurrently  use ranges. Everything else is exact.

Consider using carets e.g.  "chalk": "^4.1.2" ,  "@nestjs/common": "^11.1.28".

We install your cli as dev dependency (we are not using it via npx). Why this is problematic (i bet not just for us).

  • Duplicated packages / bloated installs. This probably does not need explanation, but in short this is especially painful for  @nestjs/*  and  rxjs  in projects that already use NestJS on a slightly different patch.
  • Patch-level security fixes are blocked. If a CVE is published for a pinned transitive dependency, consumers cannot resolve it via  npm audit fix, overrides aside — they have to wait for a new release of this package. Every patch bump of an upstream dep requires a release here.
  • Peer/version conflicts in monorepos and strict package managers
  • Noisy dependency/SBOM reports. Under DORA (Digital Operational Resilience Act) we have to inventory and risk-assess our whole dependency tree — build-time included, since CI is part of the supply chain. Exact pins mean duplicate, outdated entries in our SBOM that we can't dedupe or patch ourselves, and each one becomes a manual finding to justify or waive. Being a  devDependency  doesn't exempt it from that process.

Thanks for considering it!

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Finde das Paketmanifest und überprüfe seine Laufzeitabhängigkeitseinträge anhand des angeforderten Caret-Bereichsansatzes. Notiere dabei alle Abhängigkeiten, die weiterhin gepinnt bleiben sollten. Kläre die Bereichsrichtlinie mit den Maintainer:innen, aktualisiere das Manifest und führe die vorhandenen Installations- und Testprüfungen des Projekts aus, um zu verifizieren, dass die CLI weiterhin funktioniert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
node.js, typescript
Bereich
cli, tooling
Issue-Typ
Feature
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
68/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.