Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions docs/building.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,42 @@ In order to update or add a new pre-req:
```shell
$ gsutil cp <path-to-archive> gs://flutter_infra_release/flutter/intellij/
```

## Branching to manage IDEA platform versions

### Strategy

(The below is a summary of an internal doc on our strategy for version management.)

The main branch intends to support multiple IDEA platform versions (e.g. currently, 2025.1 to 2025.3). This simplifies
development as only one plugin is typically built and released from main.

However, there may be times when we need different builds for different versions of the IDEA platform; for example, if we introduce a
feature that requires platform version 2025.2 and above, but we still want to release the plugin for version 2025.1. In this case, we plan
to use just-in-time version branching to create a "maintenance" branch for an older platform version. We may also start a maintenance branch
because we no longer find it necessary to release new plugins for an outdated platform.

### Branching procedure

This is an example of the procedure:

1. Notice that a change that breaks previous versions has been introduced.
2. Find the last commit that was included in the last plugin release that covered the old platform version (you may need to refer
to https://plugins.jetbrains.com/plugin/9212-flutter/edit/versions/stable) along with commit history.
3. At this commit, create a branch for the old platform version(s) where the breaking change cannot be applied, e.g. `platform-251` to
indicate 2025.1. To create a branch on an old commit on GitHub, find the commit, click the `<>` button ("browser repository at this
point"), click on the tree icon at the top left, and then type in the new branch name.

### Releasing from a maintenance branch

In many cases, we may not ever build a release from a maintenance branch, and we will just keep it for history. If we do want to release
from a maintenance branch, do the following:

1. Cherry-pick commits to the maintenance branch (e.g. `platform-251`) that should be released for the old platform version.
2. Check out the maintenance branch and build according to the instructions above.

### Existing maintenance branches

| Old IDEA platform version (branch) | Last released Flutter Plugin version |
|----------------------------------------------------------------------------------------|--------------------------------------|
| 2024.3 ([platform-243](https://github.com/flutter/flutter-intellij/tree/platform-243)) | 88.1.0 |