Plugin.xml <dependencies> vs <depends>

I have noticed that a recent IntelliJ Platform uses <dependencies> element in the plugin.xml instead of <depends> but I don’t see the new element documented anywhere. What’s the deal with it and what’s the difference?

I have a tool that works with MPS and is packaged as an IDEA plugin and it doesn’t work with the recent versions of MPS when its plugin.xml is using <depends>:

    <depends>jetbrains.mps.core</depends>
    <depends>jetbrains.mps.ide.mpsmigration</depends>
    <depends>jetbrains.mps.ide.migration.workbench</depends>

but works when I change it to <dependencies>:

    <dependencies>
        <plugin id="jetbrains.mps.core" />
        <plugin id="jetbrains.mps.ide.mpsmigration" />
        <plugin id="jetbrains.mps.ide.migration.workbench" />
    </dependencies>

(Specifically, “doesn’t work” means I get a ClassNotFoundException for a class that’s present in one of the plugin dependencies and was being loaded successfully in previous versions of MPS.)

But I would like to keep it compatible with multiple versions of MPS, hence the question.

1 Like

I’ve switched to the last option in my new plugins and cannot see big difference between them: everything works the same way I’ve experienced with the first syntax option.

1 Like

Hmm, right, I just checked and the new syntax seems to work even in 2022.3. I wonder when it was introduced and why it’s not documented.

1 Like

It is not yet documented because we expect changes in semantics soon due to Remote Development and modules there