release-plugin

作者: flutter

為 flutter-intellij 外掛程式準備並執行新版本發布,包括更新相依項目、相容性範圍、變更日誌與驗證。

npx skills add https://github.com/flutter/flutter-intellij --skill release-plugin

Skill: Release Plugin

You are tasked with preparing a new version release of the flutter-intellij plugin (e.g., releasing 95.0.0).

Objective

Systematically update plugin dependencies, compatibility parameters, and CHANGELOG.md, verify tests and plugin structure, and build the release zip artifact.


Workflow Instructions

1. Update Platform & Dependency Parameters

  • gradle.properties:
    • Update dartPluginVersion to the latest public Dart plugin release version. Fetch the latest version from JetBrains Marketplace (e.g. via curl -s "https://plugins.jetbrains.com/api/plugins/6351/updates?size=1" | jq -r '.[0].version' or by checking JetBrains Marketplace Dart Plugin) and set dartPluginVersion in gradle.properties to that version (e.g., dartPluginVersion= 508.0.0).
    • If dropping support for older platform versions, update sinceBuild to the new lower bound (e.g., sinceBuild=252). Note: untilBuild is omitted for open-ended platform compatibility.
  • New Platform Version Compatibility & Baselines:
    • When supporting/verifying a new platform release (e.g., IntelliJ 2026.3 / build 263):
      • Update the verification loop in tool/github.sh (for version in ...; do).
      • Run ./tool/update_baselines.sh to generate or update the plugin verifier baseline files in tool/baseline/<version>/verifier-baseline.txt.
  • JxBrowser License Key:
    • Ensure resources/jxbrowser/jxbrowser.properties is present (copy from local environment if creating a new git worktree).

2. Fix API & Dependency Compatibility

  • Check for compilation errors or API signature changes introduced by the updated dependencies (e.g., websocket/DTD exception handling changes in FlutterInitializer.java and FlutterApp.java).
  • Run ./gradlew testClasses to confirm the codebase compiles against updated dependencies.

3. Update Changelog (CHANGELOG.md)

  • Compatibility Changes PR:
    • Document compatibility updates under ### Changed in CHANGELOG.md with the PR reference (e.g., - Removed upper build constraint (\untilBuild`) for open-ended platform compatibility. (#9063)`).
  • Release Version Bump:
    • Rename ## Unreleased to ## <VERSION>.0.0 (e.g., ## 95.0.0).
    • Ensure all user-facing changes since the last release are categorized and tagged with PR numbers.
    • Insert a fresh empty ## Unreleased block at the top with:
      ## Unreleased
      
      ### Added
      
      ### Changed
      
      ### Removed
      
      ### Fixed
      

4. Build & Validation

  • Run ./gradlew testClasses to verify Java/Kotlin compilation.
  • Run ./gradlew verifyPluginStructure to validate plugin.xml structure.
  • Run ./gradlew test to ensure all unit tests pass.
  • Run ./gradlew buildPlugin -Prelease -PversionedName to build the prospective release plugin zip artifact (Flutter-<VERSION>-<COMMIT>.zip) in build/distributions/.
  • Upload Prospective Zip: Manually upload the generated release zip (Flutter-<VERSION>-<COMMIT>.zip) from build/distributions/ to the team's Google Drive folder (e.g. DevExp Flutter Releases) for team-wide manual testing prior to public publishing.

5. Manual Testing Checklist

Perform manual sanity checks across every supported platform version (e.g. IntelliJ IDEA 2025.3, 2026.1, 2026.2 and Android Studio 2025.3 / Meerkat):

  • Create New Project: Verify new Flutter project wizard succeeds.
  • Open Existing Project: Verify existing Flutter project opens cleanly.
  • Run & Debug: Run app, hit breakpoints, and inspect variables.
  • Hot Reload & Hot Restart: Perform Hot Reload (⚡) and Hot Restart on a running app.
  • DevTools: Open DevTools tool windows (Inspector, Memory, Network, etc.).
  • Version-Specific Features: Verify any release-specific fixes or changes (e.g. Flutter SDK path changes in Settings, DTD theme synchronization, EAP installation compatibility).

來自 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 進行的焦點導覽管理,以及...