[Geany-devel] Plugin Version control (explained?)

Colomban Wendling lists.ban at xxxxx
Thu Aug 18 16:25:48 UTC 2011


Le 17/08/2011 07:37, Lex Trotman a écrit :
> Hi All,
> 
> Given that the previous thread had moved way off topic, I started this one.
> 
> After thinking about it a bit, considering Matthew's, Colomban's and
> Thomas's comments and looking at other systems I came to the
> understanding documented below.  Frank probably already knew all this,
> but I have saved him writing lots of English.  If its right and you
> think its worth using in the newsletter or anywhere else feel free to
> copy it.
> 
> [...]

Great writing :)

> available at runtime.  Making the API number available at runtime may
> be a potential enhancement of the interface and allow plugins to
> support a wider range of versions.

Yeah, that may help too; and as you explained later in the discussion,
it would work with the current design.

> [...]
> 
> Because the ABI must match exactly, every effort must be made to limit
> changes that affect the ABI.  Otherwise as soon as a new Geany is
> released all plugins stop working until re-compiled, and new packages
> are released, and installed by users. This is bad :-(
> 
> This means that:
> 
> 1. the interface should be as small as possible so that the least
> possible changes impact the ABI.
> 
> 2. structures should not be visible in the interface, instead they
> should be hidden behind getter/setter functions, and

Agreed

> 3. interface wrapper functions should be used to hide the
> implementation and side effects.

What do you mean by "interface wrapper functions"?

IMO Geany should use the exact same API than plugins to do one thing.
This would avoid having a broken getter in the API (or whatever) that we
don't notice just because the core doesn't use it.

> The last two have not been Geany policy to date but I now propose that they be.

Agreed (at least for 2, not sure what 3 is).


Regards,
Colomban



More information about the Devel mailing list