IntelliJ and Bad Plugins

With the open sourcing of IntelliJ and the Maia release approaching, I think IntelliJ should start thinking about making the app more resistant to plugin errors.  I'm talking specifically about startup.  Frequently I download plugins and when I restart intelliJ, it will either hang or fail to come up.  This is usually due to the plugin not being tested for the version of IntelliJ I'm using.

Does IntelliJ currently allow plugins to specify what versions of Idea they work with?  If not, I think this is critical to prevent errors like the one I've described above.

Also, it would be great if IntelliJ could be resilient in the face of plugin errors on startup.  If a plugin failed to come up, it could disable the plugin and notify the user that the plugin was disabled.

11 comments
Comment actions Permalink

I've been also hit by misbehaving plugin and I also think IDEA should cope more intellijently with such a situation. In the plugin repository there is information on IDEA's version that plugin should work with. Not sure whether it works in IDE's plugin manager.

0
Comment actions Permalink

The problem is different. There is a provision to specify supported versions in the plugin definition, but it is not used.
The real problem is that the plugin repository has become a plugin graveyard. There are abandoned plugins that stopped working in IDEA 6 and nobody cared to reflect this in plugin definitions. Plugin manager still allows you to download earlier versions of plugins, which have become bundled with IDEA in its recent versions.
It would be nice if authors of all actively maintained plugins (and also Jetbrains team, who look after bundled plugins) updated their plugin definitions to reflect the compatibility with different IDEA versions.
As for the dormant plugins, it does not seem realistic to expect that somebody will test them all and mark the bad ones. Therefore, it would be useful if the plugin manager inside IDEA had some sort of "Community Feedback", where users could rate plugins and report if they were broken.

0
Comment actions Permalink

I think having a community feedback in plugin manager is excellent idea. Now that IntelliJ being open sourced should grow in popularity is big time to clean plugins issues - this would benefit both users and plugin providers.

0
Comment actions Permalink

maybe including a "last updated" field would give an interesting information already.

Old plugins will not *always* fail, but it's some kind of a pointer if the plugin is actively maintained or not

0
Comment actions Permalink

actually it already exists, on plugins.intellij.net, but is not integrated inside IDEA.

The site seems to be having problems currently though

0
Comment actions Permalink

Yes, last updated will certainly help, but I'd also like to see some metric in plugins manager in IntelliJ indicating whether plugin works with my version.

I see it like this - user installs plugin on version xx and sees it doesn't work, but IntelliJ has to start in order to let user know what doesn't work. When user sees that plugin is not working he can send a report to JetBrains (just like with exception in IntelliJ and NetBeans). Other users would saw this metric only for their version - they won't see failure count in older or newer versions. How does it sound to you?

0
Comment actions Permalink

Hello Adam,

Yes, the plugins can specify that. We're also working on a tool that would
automatically verify the compatibility of the plugins with changes in our
API and update the maximum version of IntelliJ that the plugin is compatible
with.

With the open sourcing of IntelliJ and the Maia release approaching, I
think IntelliJ should start thinking about making the app more
resistant to plugin errors.  I'm talking specifically about startup.
Frequently I download plugins and when I restart intelliJ, it will
either hang or fail to come up.  This is usually due to the plugin not
being tested for the version of IntelliJ I'm using.

Does IntelliJ currently allow plugins to specify what versions of Idea
they work with?  If not, I think this is critical to prevent errors
like the one I've described above.

Also, it would be great if IntelliJ could be resilient in the face of
plugin errors on startup.  If a plugin failed to come up, it could
disable the plugin and notify the user that the plugin was disabled.

---
Original message URL:
http://www.jetbrains.net/devnet/message/5248429#5248429

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

Hi Dmitry,
   How about my other suggestion, about keeping bad plugins from preventing IntelliJ from coming up?  It would be nice if the "core" would start up each plugin in a try/catch or some protected sandbox and if it failed, would continue to start up and once up, notify the user of the misbehaving plugin, giving the user the option to disable or delete the plugin.

If implementing this is hard (I imagine it might be, if classloaders are shared and without a notion of dependencies for plugins), it might be enough to not come have IntelliJ come up "normally", but to come up with an error prompt telling what plugin was at fault and to offer to delete it.

0
Comment actions Permalink

Hello Adam,

"Starting up" each plugin is not a single action, and thus it's not possible
to wrap it into a single try/catch statement. We try to investigate specific
cases of plugins blocking IDEA startup and to add appropriate error handling
in each specific case.

Hi Dmitry,
How about my other suggestion, about keeping bad plugins from
preventing IntelliJ from coming up?  It would be nice if the "core"
would start up each plugin in a try/catch or some protected sandbox
and if it failed, would continue to start up and once up, notify the
user of the misbehaving plugin, giving the user the option to disable
or delete the plugin.
If implementing this is hard (I imagine it might be, if classloaders
are shared and without a notion of dependencies for plugins), it might
be enough to not come have IntelliJ come up "normally", but to come up
with an error prompt telling what plugin was at fault and to offer to
delete it.

---
Original message URL:
http://www.jetbrains.net/devnet/message/5248947#5248947

--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"


0
Comment actions Permalink

This isn't only a startup problem. I have often had to uninstall Scala/Clojure plugin just to be able to work on my Java projects.

0
Comment actions Permalink

Not to mention the "crap" plugins that show up like "HelloWorld".  Somehow you guys need to separate the real, maintained, good plugins from the crap.

Perhaps a manual cleanup process (someone go through and delete the bogus ones) + a rating/popularity/comment system.

0

Please sign in to leave a comment.