engine-whats-new
โดย flutter
สร้างสรุป "what's new" สำหรับรีลีสและไฟล์ diff สำหรับการเปลี่ยนแปลงใน Flutter engine (//engine/src/flutter) ระหว่างสองรีลีส (เช่น 3.47 vs…
npx skills add https://github.com/flutter/flutter --skill engine-whats-newFlutter Engine What's New & Diff Skill
Workflow
1. Identify Inputs
Extract the following from the user's request:
- Target Release (
<TARGET_RELEASE>): The Flutter release version to analyze (e.g.,3.47,3.47.0, orflutter-3.47-candidate.0). - Base Release (
<BASE_RELEASE>): Optional. The prior Flutter release to compare against (e.g.,3.44). If omitted by the user, the script will automatically calculate the predecessor release (e.g., for3.47it automatically selects3.44).
2. Run the Generator Tool
Execute the Dart script from the Flutter repository root:
dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release <TARGET_RELEASE>
If the user specifies a custom base release or output paths:
dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release <TARGET_RELEASE> --from <BASE_RELEASE> --output-diff engine_diff_<BASE_RELEASE>_to_<TARGET_RELEASE>.diff --output-summary engine_whats_new_<TARGET_RELEASE>.md
To output structured JSON for programmatic consumption:
dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release <TARGET_RELEASE> --format json
3. Review Generated Artifacts & Present to User
The tool produces two primary artifacts in the repository root:
- Diff File (
engine_diff_<BASE_RELEASE>_to_<TARGET_RELEASE>.diff): The full unified git diff of all changes in //engine/src/flutter between the two releases. - Summary Document (
engine_whats_new_<TARGET_RELEASE>.md): A categorized Markdown summary covering:- Overview & Statistics: Total engine commits, files changed, additions, and deletions.
- 🚀 Impeller & Graphics Rendering: Vulkan, Metal, OpenGL, shaders, and display list updates.
- 🌐 Web Engine & Wasm: Web SDK, CanvasKit, and WebAssembly changes.
- 📱 Android Embedding: Gradle/AGP updates, Android view rendering, and Java/Kotlin embedding changes.
- 🍎 iOS & macOS Embeddings: Darwin platform view lifecycle, Metal views, and macOS/iOS updates.
- 🪟 Windows & Linux Desktop Embeddings: Win32 compositor, Linux GTK embedding, and desktop shell fixes.
- 🔤 Text, Typography & Accessibility: Semantics, IME, font fallback, and text layout improvements.
- 🔄 Dependency Rolls: Skia, Dart SDK, ICU, HarfBuzz, and ANGLE rolls.
- 🛠️ Build System, CI & Tooling: GN build files, luci scripts, and testing utilities.
Provide the user with a concise overview of the results and links to the generated diff and markdown summary files.
Examples
-
User: "Generate what's new in the engine for Flutter 3.47."
-
Agent:
- Identifies target release
3.47. - Runs
dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --release 3.47. - Reports the summary statistics (e.g., 354 commits, 1179 files changed) and shares the generated
engine_diff_3.44_to_3.47.diffandengine_whats_new_3.47.md.
- Identifies target release
-
User: "Diff the engine changes between Flutter 3.41 and 3.44."
-
Agent:
- Identifies base release
3.41and target release3.44. - Runs
dart .agents/skills/engine-whats-new/scripts/generate_engine_whats_new.dart --from 3.41 --to 3.44. - Presents the breakdown of engine changes and the diff file.
- Identifies base release