Am 17.11.2010 01:03, schrieb Lex Trotman:
On 17 November 2010 10:22, Colomban Wendling lists.ban@herbesfolles.org wrote:
Le 16/11/2010 23:32, Lex Trotman a écrit :
On 17 November 2010 03:11, Frank Lanitz frank@frank.uvena.de wrote: Just a question, shouldn't plugins be checking the ABI version was what they conpiled with not the Geany version?
I think this is not the question: Updatechecker wants to know the Geany version to check whether there is a newer one, it's not a plugin development need, but a goal.
Ah Ha!! I see, I'd missed the actual purpose of the plugin :-D
In that case I guess the three ints and some chars would be best for relative comparison, assuming thats how Geany is going to continue to do its versioning.
Personally I don't see any big need for a change here.
Of course, to check a functionality at runtime, a plugin should use the API version (and then getting the Geany version is quite specific).
BTW since you speak of this, I think API version should be made more visible. The API version in which each function appeared should appear in the doc rather than the Geany version it appeared in.
Agree. But also "in which version did the functions parameters and/or semantics change" is more important. If that change is newer than the plugin then the plugin shouldn't try to run.
This would make
easier for plugin developers to know for which version check. Also, perhaps a compile-time check would be interesting, it would allow things like "if Geany version is too old for this, it's not fatal, we will do without" -- stop me if it already exists.
The plugin only depends on the ABI it wants to use, so in a perfect world it would be able to check the each function it wants to call for the version in which it last changed. This will allow plugins to continue to operate as long as possible without rebuilding.
Well, I'm not 100% sure whether its this easy given a binary blob In fact when chaning some minor thing inside data strcutre you might need to update all flags for all functions which might introduc other failures. I'm not this euphoric about doing something like this.