Skip to content

Commit 83db033

Browse files
authored
Add documentation on branching old versions (#8647)
1 parent ef57c1a commit 83db033

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

docs/building.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,42 @@ In order to update or add a new pre-req:
6060
```shell
6161
$ gsutil cp <path-to-archive> gs://flutter_infra_release/flutter/intellij/
6262
```
63+
64+
## Branching to manage IDEA platform versions
65+
66+
### Strategy
67+
68+
(The below is a summary of an internal doc on our strategy for version management.)
69+
70+
The main branch intends to support multiple IDEA platform versions (e.g. currently, 2025.1 to 2025.3). This simplifies
71+
development as only one plugin is typically built and released from main.
72+
73+
However, there may be times when we need different builds for different versions of the IDEA platform; for example, if we introduce a
74+
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
75+
to use just-in-time version branching to create a "maintenance" branch for an older platform version. We may also start a maintenance branch
76+
because we no longer find it necessary to release new plugins for an outdated platform.
77+
78+
### Branching procedure
79+
80+
This is an example of the procedure:
81+
82+
1. Notice that a change that breaks previous versions has been introduced.
83+
2. Find the last commit that was included in the last plugin release that covered the old platform version (you may need to refer
84+
to https://plugins.jetbrains.com/plugin/9212-flutter/edit/versions/stable) along with commit history.
85+
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
86+
indicate 2025.1. To create a branch on an old commit on GitHub, find the commit, click the `<>` button ("browser repository at this
87+
point"), click on the tree icon at the top left, and then type in the new branch name.
88+
89+
### Releasing from a maintenance branch
90+
91+
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
92+
from a maintenance branch, do the following:
93+
94+
1. Cherry-pick commits to the maintenance branch (e.g. `platform-251`) that should be released for the old platform version.
95+
2. Check out the maintenance branch and build according to the instructions above.
96+
97+
### Existing maintenance branches
98+
99+
| Old IDEA platform version (branch) | Last released Flutter Plugin version |
100+
|----------------------------------------------------------------------------------------|--------------------------------------|
101+
| 2024.3 ([platform-243](https://github.com/flutter/flutter-intellij/tree/platform-243)) | 88.1.0 |

0 commit comments

Comments
 (0)