@@ -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