2025-04-24 17:14:08 +02:00

9.2 KiB

Build Number Ranges

Defining product compatibility by specifying plugin since-build and until-build ranges.

Use this reference of build number ranges to specify the correct since-build and until-build values in your plugin descriptor.

Setting the actual values in plugin.xml is managed by the patchPluginXml Gradle task (Reference: 2.x, 1.x). See for further details.

Build Numbers

Note the following regarding values for since-build and until-build:

Valid Values

Values must represent the actual build numbers. Any made-up numbers must not be used. Violations are highlighted by plugin verifier, and such plugins will be rejected on JetBrains Marketplace.

For example, 233.* is invalid for since-build. Any of 999.*, 234.* (maximum is 233.*) and 223.9999 are invalid for until-build.

"Open-End" Compatibility

Not specifying the until-build attribute means it will include all future builds. This includes future, yet unreleased versions and possibly new IDEs, which might impact compatibility later.

See until-build documentation for the necessary Gradle configuration.

Branch Version Compatibility

To support all releases for a specific branch (major version), use a dot-star suffix (.* ) for until-build.

For example, 232.* for all 2023.2.x releases.

Before publishing, the plugin must be checked using against the specified version range (and specified compatible products) to ensure binary compatibility. Any additional reported errors/warnings should also be fixed when possible.

Plugins hosted on JetBrains Marketplace are checked automatically. According to Approval Guidelines, JetBrains will restrict incompatible plugin versions if necessary.

{title="Compatibility Enforcement" style="warning"}

Build Number Format

To denote a release, a multipart build number is used. It consists of the following parts:

  • Product ID (IC for IDEA Community, IU for IDEA Ultimate, RM for RubyMine, PY for PyCharm, PS for PhpStorm, etc.)
  • Branch number (223)
  • Build number in the branch (9559)

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-162.94.11, IU-162.94.11.256.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 an additional internal version (for example, 256.42 in XX-162.94.11.256.42) to allow plugin developers for their IDE to specify compatibility.

Multipart build numbers can also be used in the since-build and until-build attributes of idea-version. Usually you should omit the product ID and use only the branch number and build number, for example:

<!-- 2021.3, 2021.3.1, 2021.3.2, ... -->
<idea-version since-build="213" until-build="213.*"/>
<!-- 2021.3.3 or later -->
<idea-version since-build="213.7172.25"/>

Specific build numbers and their corresponding release version are available via Previous Releases on the corresponding product's download page, for example, Previous IntelliJ IDEA Releases. For upcoming versions, see Early Access Program.

See also "What versions of IntelliJ-based IDEs are supported?" for JetBrains IDE support policy.

{style="note" title="Build numbers for products"}

Targeting Multiple IDE Versions

{id="multipleIDEVersions"}

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.

discusses tooling support to ensure compatibility with the chosen version range and IDEs.

Consult Incompatible API Changes and Notable API Changes for an overview of known breaking and relevant changes across IDE versions.

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. The IDE will automatically install only the corresponding compatible build.

Platform Versions

{id="platformVersions"}

Note that there is no YY0. In the YYYY.R versioning scheme, the R part starts at 1.

Early Access Program (EAP) releases of upcoming versions are available here.

IntelliJ Platform version Branch Java version
2025.1 251 21
2024.3 243 21
2024.2 242 21
2024.1 241 17
2023.3 233 17
2023.2 232 17
2023.1 231 17

Earlier Versions

{collapsible="true"}

IntelliJ Platform version Branch Java version
2022.3 223 17 (blog post)
2022.2 222 11
2022.1 221 11
2021.3 213 11
2021.2 212 11
2021.1 211 11
2020.3 203 11 (blog post)
2020.2 202 8
2020.1 201 8