Dumb question time: compatible-versions and old-versions-compatibility — What am I missing?
I’m starting to look at how to add my plugin to Plugins Admin.
My understanding is that the plugins lists are baked into a given version of Notepad++. Any given version of Notepad++ never downloads a new version of the plugins list, nor does it check to see if a plugin has been updated since the version given in the plugins list.
If I have that wrong, can someone explain what I have wrong?
If I have that right — what is the purpose of compatible-versions and old-versions-compatibility? Notepad++ will never “look ahead” to find updates for a plugin that came after that version of Notepad++ was released. I can’t figure out under what conditions the lower bound of compatible-versions, or any information in old-versions-compatibility, would be used.
Notepad++ could, I suppose, examine the upper bound of compatible-versions (since new versions could be released without the plugin author being available to make a pull request to the plugins list); but how could a plugin author guess at which later version the plugin will become incompatible? It’s not like we have API versions that change only when there is a backward compatibility breach. Any plugin will continue to work until Notepad++ changes something crucial to it, and no one will know when that will be until it happens.
What am I missing? I don’t understand the use of these parameters.
If I have that right — what is the purpose of compatible-versions and old-versions-compatibility?
Because Don thought they were useful… or at least, thought that at some indeterminate time in the future, when Notepad++ actually does again update its nppPluginList at times other than releases of Notepad++ (which is something we’ve always hoped for, since the Mass Plugin Migration), that it would be useful.
Also, in theory, someone manually installing a plugin in an older version of Notepad++ could check the current nppPluginList source, and see whether the most recent version of a plugin was compatible with the older N++ that they are using. I doubt any users actually do that, but they in theory could.
And the upper bound is used for “previous versions of the plugin”, so if superPlugin v1.0 worked through N++ v8.3, but superPlugin v1.2 required a feature first available in v8.4, then a user could see that if they want to use superPlugin v1.0 (because it’s the last that worked for them), they would have to not upgrade Notepad++ beyond v8.3.
(There are contributors who thought the whole system was pointless; whether you continue to be such a contributor is up to you. I have never contributed a plugin, and it’s possible I’ve mis-understood or mis-explained some of the details; this is just my conclusions from watching some of it transpire and watching the consequences.)
at some indeterminate time in the future
Thanks, @PeterJones. That pretty much explains why I couldn’t make sense of it: it’s not something that does anything useful now, just a guess at what might be useful in the future. I won’t worry much about it, then — guesses about what might be useful in the future have a high rate of irrelevance when the future arrives, no matter who is doing the guessing.