OpenAPITools / OpenAPITools/openapi-generator-cli
[FEATURE] consider using caret ranges instead of pinned exact versions for runtime dependencies
オープン
初心者向け
まだ誰も着手していません。
- 主要言語
- TypeScript
- スター
- 2k
- フォーク
- 208
- 平均マージ
- 7時間 12分
- マージ済み PR(30日)
- 6
説明
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/*andrxjsin 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!
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
パッケージマニフェストを見つけ、要求されている caret 範囲のアプローチに照らして、その runtime 依存関係のエントリを確認し、固定したままにすべき依存関係があれば記録します。maintainer と範囲のポリシーを確認し、マニフェストを更新して、プロジェクトに既存のインストールおよびテストのチェックを実行し、CLI が引き続き動作することを確認します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- node.js, typescript
- 領域
- cli, tooling
- issue の種類
- 機能追加
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 68/100