-
Notifications
You must be signed in to change notification settings - Fork 995
Create api_changes_list_2026.md + Java Plugin 2026.1 changes #1836
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 2 commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,78 @@ | ||
| <!-- Copyright 2000-2026 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. --> | ||
|
|
||
| # Incompatible Changes in IntelliJ Platform and Plugins API 2025.* | ||
|
|
||
| <!-- | ||
| Before documenting a breaking API change, please make sure that the change cannot be avoided in an alternative way. | ||
|
|
||
| APIs marked with @Deprecated(forRemoval=true), @ApiStatus.Experimental, @ApiStatus.Internal/IntellijInternalApi, or @ApiStatus.ScheduledForRemoval don't need to be documented. | ||
|
|
||
| To document a new incompatible change, add a new line with the problem pattern followed by a 2nd line with ": "-prefixed human-readable description | ||
| and recommended fix/action (REQUIRED, please write full sentence ending with '.', see existing entries as reference). | ||
| Non-platform changes must be grouped under relevant section for plugin. | ||
|
|
||
| The following problem patterns are supported and must be followed EXACTLY (e.g., no '#' instead of '.'): | ||
|
|
||
| <package name> package removed | ||
|
|
||
| <class name> class removed | ||
| <class name> class renamed to <new class name> | ||
| <class name> class moved to package <package name> | ||
|
|
||
| <class name>.<method name>(<human-readable parameters>) marked abstract | ||
| <class name>.<method name>(<human-readable parameters>) abstract method added | ||
| <class name>.<method name>(<human-readable parameters>) method removed | ||
| <class name>.<method name>(<human-readable parameters>) method moved to the superclass | ||
| <class name>.<method name>(<human-readable parameters>) method return type changed from <before> to <after> | ||
| <class name>.<method name>(<human-readable parameters>) method visibility changed from <before> to <after> | ||
| <class name>.<method name>(<human-readable parameters>) method marked final | ||
| <class name>.<method name>(<human-readable parameters>) method parameter <type> removed | ||
| <class name>.<method name>(<human-readable parameters>) method parameter type changed from <before> to <after> | ||
| <class name>.<method name> method <parameter name> parameter marked @<class name> | ||
| <class name> (class|interface) now (extends|implements) <class name> and inherits its final method <method name>(<human-readable parameters>)? | ||
| <class name> (class|interface) now (extends|implements) <class name> and inherits its abstract method <method name>(<human-readable parameters>)? | ||
| <class name> class now interface | ||
|
|
||
| <class name>(<human-readable parameters>) constructor removed | ||
| <class name>(<human-readable parameters>) constructor parameter <type> removed | ||
| <class name>(<human-readable parameters>) constructor parameter type changed from <before> to <after> | ||
| <class name>(<human-readable parameters>) constructor visibility changed from <before> to <after> | ||
|
|
||
| <class name>.<field name> field removed | ||
| <class name>.<field name> field moved to the superclass | ||
| <class name>.<field name> field type changed from <before> to <after> | ||
| <class name>.<field name> field visibility changed from <before> to <after> | ||
|
|
||
| <property name> property removed from resource bundle <bundle name> | ||
|
|
||
| Where the placeholders must be enclosed in code quotes (`name`): | ||
|
|
||
| <class name> is a fully-qualified name of the class, e.g. `com.intellij.openapi.actionSystem.AnAction$InnerClass`. | ||
| <method name> is the exact method's name. Note that constructors have dedicated patterns. | ||
| <human-readable parameters> is a string representing parameters, which are not necessarily fully qualified. They do not affect the parser. For example, instead of (java.lang.Object, java.util.List, int) you are free to write (Object, List<String>, int) | ||
| <parameter name> is exact name of the method's parameter | ||
| <property name> is a full name of a property from .properties file, like `some.action.description` | ||
| <bundle name> is a fully qualified name of the property bundle, which includes its package, like `message.IdeBundle` | ||
|
|
||
| NOTE: If a code change you're trying to document doesn't match any of the above patterns, please ask in #plugins-verifier | ||
|
|
||
| NOTE: You are allowed to prettify the pattern using links: [`org.example.Foo`](https://github.com/JetBrains/intellij-community/tree/master/) | ||
|
|
||
| NOTE: Entries not starting with code quotes (`name`) can be added to document non-code changes and will be skipped in API verification. | ||
| --> | ||
|
|
||
| <link-summary>List of known Breaking API Changes in 2025.*</link-summary> | ||
|
|
||
| <include from="snippets.topic" element-id="apiChangesHeader"/> | ||
|
|
||
| <include from="snippets.topic" element-id="apiChangesJavaVersion"/> | ||
|
|
||
| <include from="snippets.topic" element-id="gradlePluginVersion"/> | ||
|
|
||
| ## 2026.1 | ||
|
|
||
| ### Java Plugin 2026.1 | ||
|
|
||
| The Java plugin has been split into several modules with their own classloaders. | ||
| This shouldn't affect plugins that use standard `<depends>com.intellij.java</depends>` dependency. | ||
| If a plugin depends on specific Java plugin modules directly, the dependencies should be updated to reference the new module names. | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2026.* ?