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).

Больше skills от flutter

dart-modern-features
flutter
Для поиска кандидатов на модернизацию:
flutter-fix-layout-issues
flutter
Исправляет ошибки макета Flutter (переполнения, неограниченные ограничения) с помощью Dart и инструментов Flutter MCP. Используйте при устранении «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 design…
flutter-accessibility
flutter
We need to translate the given text from English to Russian, preserving the name "flutter-accessibility" if it appears. The text is a description of an agent skill. The instruction says: "Translate only the text inside <text>. Do not include the name unless it appears in the source text." The name "flutter-accessibility" does not appear in the source text provided. So we just translate the text. The text: "Implement WCAG 2 and EN 301 549 accessibility standards and adaptive layouts in Flutter apps. Enforces semantic annotations, tap target sizes (48x48 dp minimum), and text contrast ratios (4.5:1 for small text, 3:1 for large) across mobile, web, and desktop platforms Provides decision logic for web semantics initialization, interactive widget wrapping, screen-size-based layout switching, and keyboard/mouse input handling Includes focus traversal management via FocusTraversalGroup and..." We need to translate accurately, preserving technical terms like WCAG 2, EN 301 549, Flutter, dp, ratios, FocusTraversalGroup,