Build Number Ranges
Use this reference of build number ranges to specify the correct
until-build values in your plugin descriptor. Setting the actual values in plugin.xml is managed by
patchPluginXml Gradle task, see Patching the Plugin Configuration File.
Please note the following regarding values:
Values must represent the actual build numbers, any made-up numbers must not be used (for example,
223.9999are invalid for
until-buildmeans it will include all future builds. This includes future, yet unreleased versions and possibly new IDEs, which might impact compatibility later.
Use dot-star suffix (
until-buildto support all releases for the specific branch (for example,
232.*for all 2023.2.x releases).
Build Number Format
To denote a release, a multipart build number is used. It consists of the following parts:
Product ID (
ICfor IDEA Community,
IUfor IDEA Ultimate,
PSfor PhpStorm, etc.)
Branch number (
Build number in the branch (
Branch numbers are based on the
YYYY.R IDE release version numbers. The branch number takes the last two digits of the year and the
R release number. For example,
231 for 2023.1,
232 for 2023.2, and
233 for 2023.3.
The build number may have multiple components:
IU-184.108.40.2066.42. This gives more flexibility for third-party plugins and IDE developers. Plugins may specify compatibility versions more precisely (for example, requiring a specific bugfix release); IDE vendors may have build numbers based on a specific IntelliJ Platform version and specify additional internal version (for example
XX-220.127.116.116.42) to allow plugin developers for their IDE to specify compatibility.
Multipart build numbers can also be used in the
until-build attributes of
idea-version. Usually you should omit the product ID and use only the branch number and build number, for example:
Targeting Multiple IDE Versions
When supporting multiple major versions, it is strongly recommended to build against the lowest supported version to guarantee backwards-compatibility. In the case of supporting a range of platform versions with different underlying Java level (see below), it is required.
Verifying Plugin Compatibility discusses tooling support to ensure compatibility with the chosen version range and IDEs.
In some cases, keeping a dedicated branch and corresponding plugin release for each major IDE version might be required due to incompatibilities that cannot be solved in other ways.
IntelliJ Platform Based Products of Recent IDE Versions
IntelliJ Platform version
2022.2 NOTE Java 17 is now required (blog post)
2020.3 NOTE Java 11 is now required (blog post)
Note that there is no
YY0. In the
YYYY.R versioning scheme, the
R part starts at 1.