intellij-platform-plugin-template
intellij-platform-plugin-template copied to clipboard
(π) Automatically detect new EAPs and create a MR to support it
When a new EAP comes out, there are hundreds of projects that need to bump the supported version. This means that there are hundreds of tickets raised, hundreds of PRs(like this https://github.com/koxudaxi/pydantic-pycharm-plugin/pull/492) created etc etc etc.
Some projects are even suggesting writing their own custom job to detect EAPs: https://github.com/VirtusLab/git-machete-intellij-plugin/issues/853.
I think it would be super based if this template contained a job like this, it would really make the IntelliJ Idea plugin development process smoother.
Not sure this belongs in the template. Ultimatively, the decision on what target IDEs and what version(s) for each to support at what stage (EAP, GA) is completely up to the maintainer(s) of each plugin. Also there already exist many channels to be notified immediately of newly started EAP or releases.
Instead, I'd fix that in the Gradle IntelliJ Plugin as we already fetch available versions (listProductsReleases
task).
So like a GitHub workflow that periodically runs a Gradle task that looks for new releases, and creates a PR that increments the pluginUntilBuild
property?
@KotlinIsland I think you can create a GitHub action which runs periodically (cron) in order to check the compatibility with the latest EAP.
When a new EAP comes out, there are hundreds of projects that need to bump the supported version. This means that there are hundreds of tickets raised, hundreds of PRs(like this koxudaxi/pydantic-pycharm-plugin#492) created etc etc etc.
I observe that many PRs only update the until
attribute. In this case, and if you have time to maintain your projects, I personally think you should remove the until
attribute. This attribute is NOT mandatory, this is only an optional feature. The intellij-platform-plugin-template
project is opinionated, but this is only a template, you can modify it.
Just an advice: I maintain 7 IJ plugins since a few years and this is how I work: no until
attribute, and I rely on JetBrains marketplace warnings and some scheduled GitHub actions tasks (example). The benefit is: when a new Final IDE Build is released, my plugins are already compatible. I don't have to publish new versions just to update a single XML attribute (it would be so annoying... for the developer, AND for the usersπ).
The fact is plugins are usually compatible with the next IDE update, and if there is any compatibility problem, I can fix it before the next Final IDE build (I usually have months in order to fix usage of deprecated API, things like that). Finally, if there is no compatibility issue, I have nothing to do. Users can continue to use the same plugin version, and they won't open tickets saying "please support IJ xxxx".
Yeah, I've always thought the until
attribute wasn't optimal. Perhaps the template could be updated to reflect some of your practices.