|
| 1 | +--- |
| 2 | +name: remove-platform-version |
| 3 | +description: Remove support for an older IntelliJ Platform / Android Studio version from the project and clean up obsolete code, baselines, and CI configurations. |
| 4 | +--- |
| 5 | + |
| 6 | +# Skill: Remove Platform Version Support |
| 7 | + |
| 8 | +You are tasked with removing support for an older IntelliJ Platform or Android Studio version (e.g., dropping support for `2025.1` / build `251` and raising the lower bound to `2025.2` / build `252`). |
| 9 | + |
| 10 | +## Objective |
| 11 | +Systematically update compatibility ranges, clean up CI verification loops and baseline files, identify and remove obsolete compatibility code or TODOs, check repository issues, and update documentation. |
| 12 | + |
| 13 | +--- |
| 14 | + |
| 15 | +## Workflow Instructions |
| 16 | + |
| 17 | +### 1. Establish Baseline & Identify Target Version |
| 18 | +- Identify the build number being removed (e.g., `251` for `2025.1`) and the new lower bound (e.g., `252` for `2025.2`). |
| 19 | +- Run `./gradlew testClasses` to ensure the project compiles before making changes. |
| 20 | + |
| 21 | +### 2. Update Compatibility Lower Bound (`gradle.properties`) |
| 22 | +- Open `gradle.properties`. |
| 23 | +- Update `sinceBuild=<version>` to the new lower bound build number (e.g., change `sinceBuild=251` to `sinceBuild=252`). |
| 24 | + |
| 25 | +### 3. Update CI Verification Script (`tool/github.sh`) |
| 26 | +- Open `tool/github.sh`. |
| 27 | +- Locate the `VERIFY_BOT` verification loop (`for version in ...; do`). |
| 28 | +- Remove the dropped version number from the list so that `./gradlew verifyPlugin` is only run against active versions in the compatibility range. |
| 29 | + |
| 30 | +### 4. Remove Obsolete Verifier Baseline (`tool/baseline/`) |
| 31 | +- Check `tool/baseline/<version>/` for the removed version directory. |
| 32 | +- Remove the directory and baseline file (e.g., using `git rm -r tool/baseline/<version>`) so baseline update scripts (`tool/update_baselines.sh`) do not attempt to verify unsupported versions. |
| 33 | + |
| 34 | +### 5. Search & Remove Obsolete Code and TODOs |
| 35 | +- **Search Codebase:** Grep `src/` for references to the removed build number or version string (e.g., `251`, `2025.1`). |
| 36 | +- **Check Version Checks:** Look for version-specific branches or workarounds (such as in `DartPluginVersion.java` or UI compatibility shims) that check for the removed version and simplify or remove dead code paths. |
| 37 | +- **Check TODOs:** Look for comments like `TODO: remove when dropping support for <version>` or similar workarounds that can now be cleaned up. |
| 38 | + |
| 39 | +### 6. Search Repository Issues |
| 40 | +- Search repository issues (via GitHub issue search or issue tracker) for issues related to dropping or moving off the removed version (e.g., `repo:flutter/flutter-intellij <version>` or platform compatibility issues). |
| 41 | +- Check if any open issues or tracked technical debt items specify code deletions or cleanup steps upon dropping support for that version, and implement any applicable cleanups. |
| 42 | + |
| 43 | +### 7. Update Changelog |
| 44 | +- **`CHANGELOG.md`:** Under the `### Removed` section, add an entry documenting the removal (e.g., `- Support for platform version 2025.1.`). |
| 45 | +- **Note:** Do not modify `docs/building.md`. Its version examples are illustrative and should not be updated when removing a platform version. |
| 46 | + |
| 47 | +### 8. Verify & Validate |
| 48 | +- Run `./gradlew testClasses` to verify compilation. |
| 49 | +- Run `./gradlew test` to verify unit tests pass. |
| 50 | +- Run `./gradlew verifyPlugin` to verify that plugin verification succeeds against the new compatibility range. |
0 commit comments