Archived
feat(code-review-nuget): 遇到 JSC 開頭套件時必須先詢問使用者是否繼續 #17
@@ -14,6 +14,7 @@ argument-hint: "[<solution-or-project>] [--include-prerelease] [--no-dedupe] [--
|
|||||||
- 修改前先輸出簡短執行計畫;除非使用者要求確認、遇到多個 solution 無法判斷、或編譯失敗需要取捨,否則依計畫執行。
|
- 修改前先輸出簡短執行計畫;除非使用者要求確認、遇到多個 solution 無法判斷、或編譯失敗需要取捨,否則依計畫執行。
|
||||||
- 每個套件都要留下結果:已更新 / 已降階到可編譯版本 / 已略過 / 已回復 / 已移除重複參考,以及對應版本與驗證指令。
|
- 每個套件都要留下結果:已更新 / 已降階到可編譯版本 / 已略過 / 已回復 / 已移除重複參考,以及對應版本與驗證指令。
|
||||||
- 不主動 commit、push 或開 PR;使用者明確要求時才做。
|
- 不主動 commit、push 或開 PR;使用者明確要求時才做。
|
||||||
|
- **遇到 `JSC` 開頭的套件(套件 id 前綴為 `JSC`)時,必須先通知使用者並詢問是否要繼續處理該套件,取得明確同意後才可動作(更新版本或移除重複參考)。此確認為強制項,不得被 `--yes` 略過。使用者若拒絕,將該套件記為「已略過(JSC 套件,使用者未同意)」並繼續處理其他套件。**
|
||||||
|
|
||||||
## 參數
|
## 參數
|
||||||
|
|
||||||
@@ -23,7 +24,7 @@ argument-hint: "[<solution-or-project>] [--include-prerelease] [--no-dedupe] [--
|
|||||||
- `--include-prerelease`:更新時允許 prerelease 版本;未指定時只更新 stable 版本。
|
- `--include-prerelease`:更新時允許 prerelease 版本;未指定時只更新 stable 版本。
|
||||||
- `--no-dedupe`:略過 ProjectReference 重複 PackageReference 清理,只更新版本。
|
- `--no-dedupe`:略過 ProjectReference 重複 PackageReference 清理,只更新版本。
|
||||||
- `--build <command>`:覆寫驗證指令,例如 `dotnet build My.sln -c Release`。未指定時用 `dotnet build <solution-or-project> --no-restore`。
|
- `--build <command>`:覆寫驗證指令,例如 `dotnet build My.sln -c Release`。未指定時用 `dotnet build <solution-or-project> --no-restore`。
|
||||||
- `--yes`:可略過一般確認,但仍不可忽略多 solution 選擇、無法安全清理重複參考、或編譯失敗的必要決策。
|
- `--yes`:可略過一般確認,但仍不可忽略多 solution 選擇、無法安全清理重複參考、編譯失敗的必要決策、或 `JSC` 開頭套件的繼續確認。
|
||||||
|
|
||||||
## 執行流程
|
## 執行流程
|
||||||
|
|
||||||
@@ -82,6 +83,7 @@ argument-hint: "[<solution-or-project>] [--include-prerelease] [--no-dedupe] [--
|
|||||||
- 若目前專案的套件參考含 `PrivateAssets="all"`、`IncludeAssets` / `ExcludeAssets` 特殊設定、analyzers/build/source generators、或版本刻意高於上層專案,先列為「需人工確認」,不要自動移除。
|
- 若目前專案的套件參考含 `PrivateAssets="all"`、`IncludeAssets` / `ExcludeAssets` 特殊設定、analyzers/build/source generators、或版本刻意高於上層專案,先列為「需人工確認」,不要自動移除。
|
||||||
- 若上層專案的參考含 `PrivateAssets="all"` 或不會傳遞必要 assets,不可視為可替代。
|
- 若上層專案的參考含 `PrivateAssets="all"` 或不會傳遞必要 assets,不可視為可替代。
|
||||||
3. 對可安全移除的重複 direct reference 逐一處理:
|
3. 對可安全移除的重複 direct reference 逐一處理:
|
||||||
|
- **若該套件 id 為 `JSC` 開頭,先通知使用者並詢問是否繼續移除,取得同意才處理;未同意則記為「已略過(JSC 套件,使用者未同意)」。此確認不得被 `--yes` 略過。**
|
||||||
- 先記錄目前檔案狀態與套件版本。
|
- 先記錄目前檔案狀態與套件版本。
|
||||||
- 移除當前專案的重複 `PackageReference`;若使用 Central Package Management,只有在沒有任何專案仍需要該 `PackageVersion` 時才移除中央版本項。
|
- 移除當前專案的重複 `PackageReference`;若使用 Central Package Management,只有在沒有任何專案仍需要該 `PackageVersion` 時才移除中央版本項。
|
||||||
- 執行:
|
- 執行:
|
||||||
@@ -100,6 +102,7 @@ argument-hint: "[<solution-or-project>] [--include-prerelease] [--no-dedupe] [--
|
|||||||
- transitive-only 套件不直接更新;更新提供它的 direct 套件。
|
- transitive-only 套件不直接更新;更新提供它的 direct 套件。
|
||||||
- 明確 pin 住版本且註解或 props 顯示有相容性原因者,先列入「需人工確認」。
|
- 明確 pin 住版本且註解或 props 顯示有相容性原因者,先列入「需人工確認」。
|
||||||
- `PrivateAssets="all"` 的 analyzer / generator / build tooling 可更新,但要特別注意 build 驗證結果。
|
- `PrivateAssets="all"` 的 analyzer / generator / build tooling 可更新,但要特別注意 build 驗證結果。
|
||||||
|
- **`JSC` 開頭的套件:在更新版本前,必須先通知使用者「即將處理 JSC 套件 `<PackageId>`」並詢問是否繼續,取得同意才更新;未同意則記為「已略過(JSC 套件,使用者未同意)」。此確認不得被 `--yes` 略過。**
|
||||||
2. 逐一更新 direct 套件:
|
2. 逐一更新 direct 套件:
|
||||||
- 一次只更新一個套件 id。
|
- 一次只更新一個套件 id。
|
||||||
- 若多個專案引用同一套件,先判斷是否使用 Central Package Management:
|
- 若多個專案引用同一套件,先判斷是否使用 Central Package Management:
|
||||||
|
|||||||
Reference in New Issue
Block a user