updating-package-versions

作者: flutter

引導更新已發布套件中的相依性版本,以避免單一儲存庫解析失敗。

npx skills add https://github.com/flutter/devtools --skill updating-package-versions

Updating Package Versions

When updating dependency versions in published package pubspec.yaml files (devtools_shared, devtools_app_shared, and devtools_extensions), follow these rules to protect the local mono-repo workspace graph:

  • Version Decisions: Decide if it should be a major, minor, or patch version based on your edits:
    • Breaking changes: Major bump (+1 to first component, others reset to 0). E.g., removals of public constants, properties, getters/setters, or APIs.
    • New features or deprecation start: Minor bump (+1 to second component, patch resets to 0).
    • Bug fixes and non-breaking changes: Patch bump (+1 to third component).
  • Match Exact Versions: Always use the actual version specified in the target package's pubspec.yaml file.
  • Suffix Preservation: If a requested version contains a suffix like -wip (e.g., 13.0.0-wip), the full string MUST be used in dependency constraints (e.g., devtools_shared: ^13.0.0-wip).
  • Prevent Graph Failures: Do not drop the suffix or estimate the base version tags. Version solver operations will fail in the local workspace if dependencies point to published strings that can't be resolved in non-published repositories.
  • No Dependencies on Unpublished Packages: Published packages (devtools_shared, devtools_app_shared, and devtools_extensions) MUST NOT depend on unpublished packages like devtools_app or devtools_test.
  • Resolution Testing: After updating versions, run flutter pub get in the repository to ensure version solving is satisfied. If this returns errors, you should fix the errors and try again.
  • Updating devtools_app: In packages/devtools_app/pubspec.yaml:
    • Dependencies on published packages do not have version constraints. This is intentional; do not change this when updating versions.
    • Always use the dt update-version tool to update the devtools_app version.
    • This should only be updated for monthly releases and cherry pick releases, so perform this update only when explicitly asked to.

來自 flutter 的更多技能

dart-modern-features
flutter
為了尋找現代化的候選對象:
flutter-fix-layout-issues
flutter
使用 Dart 和 Flutter MCP 工具修復 Flutter 佈局錯誤(溢出、無限制約束)。適用於處理「RenderFlex overflowed」、「Vertical…」等問題。
adding-release-notes
flutter
在 DevTools 發行說明中新增使用者面向的變更描述。用於在 NEXT_RELEASE_NOTES.md 檔案中記錄改進、修正或新功能。
reviewing-devtools-prs
flutter
DevTools 儲存庫專用的 PR 審查工作流程,強制執行 DevTools 風格指南與常見審查模式。用於審查以下專案中的拉取請求時…
dart-use-primary-constructors
flutter
協助使用者撰寫語法與語意正確的 Dart 主要建構子,並遷移/使用新的建構子語法、空主體分號語法、…
code-documentation
flutter
編寫有效程式碼文件的指南,包括 docstrings、JSDoc、dartdoc 和實作註解。在編寫新程式碼、新增…時使用此技能。
api-review
flutter
根據規範的 API 設計指南審查指定的程式碼。當使用者要求進行 API 審查或檢查程式碼是否符合 API 設計時,請使用此技能。
flutter-accessibility
flutter
在 Flutter 應用程式中實作 WCAG 2 與 EN 301 549 無障礙標準及自適應佈局。強制執行語意標註、觸控目標尺寸(最小 48x48 dp)以及文字對比度(小字 4.5:1,大字 3:1),涵蓋行動裝置、網頁與桌面平台。提供網頁語意初始化、互動元件包裝、基於螢幕尺寸的佈局切換,以及鍵盤/滑鼠輸入處理的決策邏輯。包含透過 FocusTraversalGroup 進行的焦點導覽管理,以及...