I just found https://www.elastic.co/guide/en/elasticsearch/plugins/2.3/plugin-authors.html
Plugin release lifecycle
You will have to release a new version of the plugin for each new elasticsearch release. This version is checked when the plugin is loaded so Elasticsearch will refuse to start in the presence of plugins with the incorrect elasticsearch.version.
Wow.. This is really terrible. Please someone tell me it's not true.
Why can't there be an interface that the plugin talks to and as long as the interface doesn't change, the plugins should still work. Eg, I have a set of plugins for different things, and there is a bug fix in elasticsearch - why should I have to update my other plugins?
I can't imagine how you develop a strong plugin ecosystem around an approach that's so fragile, especially for something that's moving as fast as elasticsearch.