Thoughts on API deprecation

I see that HelpTooltip:setDescription(String) became deprecated and should be replaced by HelpTooltip:setDescription(HtmlChunk) (source).
I completely understand the necessity to offer a new method (the commit message explains that), but I’m wondering if marking the original method as deprecated so soon is the best thing to do.
If my understanding is correct, this change is recent, and affected plugin developers will have to choose between these options:

  • continue to use the deprecated API, simply because they can’t drop the 2025 (let’s say 2025.3) compatibility for now.
  • move to 2026.1 just for that.
  • or, maintain two branches.

I think a better approach would be to offer the new method right now with IJ 2026.1, but do not mark the old method as deprecated for now. Wait at least two major IDE versions (because most developers use the two latest major versions or JetBrains IDEs), then, once IJ 2026.3 is released, mark the old method as deprecated. This would let developers publish their plugins with no additional delay because they use this old method and, once IJ 2026.3 is released, move to IJ 2026.2 as the new minimal supported version. Everybody would be happy.

Also, this is especially frustrating when reading the reason why this method is deprecated. There is nothing critical, this is just that plugin developers may not be aware that the old method takes an HTML fragment as a String, and this is why the new method makes it explicit by using a HtmlChunk. The change will be super easy for most plugin developers (use HtmlChunk.text(...)), but they may still have to use the deprecated method for some time.

It was a push from our security team, quite important and exceptional case

We keep deprecations for quite long periods of time, usually even longer than 3 Major releases

The main issue here is that it will slow down plugin verification. Plugins with no warnings are validated faster.

I hope it is not about deprecations, but only about Internal API usages, we will recheck with the Support team.