Clear conversation window from a protocol prpl

Paul Aurich paul at darkrain42.org
Wed Jul 21 15:38:39 EDT 2010


On 2010-07-21 11:11, avictor.za at gmail.com wrote:
> hi Paul,
> 
>> Unfortunately, this constitutes an API change, and would need to wait
>> for 2.8.0.
> 
> Isn't that the reason for the "purple_reserved" entries in struct
> _PurpleConversationUiOps?
> ie, some optional methods can be added without increasing
> sizeof(PurpleConversationUiOps), so a re-compile of external plugins
> would not be required?  It's an API "extension", rather than an API
> "change".

My language was imprecise.  Pidgin versioning handles two different type
of changes/additions (and then everything else):

   1) The major version ('x' in x.y.z) changes when there are
backwards-incompatible changes to the ABI.  In other words, plugins and
UIs compiled against a previous major version will no longer work.
Changes that fall in to this category include changing the arguments to
a function/signal, removing functions/signals, or changing the size of
public structs (this latter restriction has become /slightly/ more
flexible, for the case of structs that *only* the subsystem malloc()s,
or the PURPLE_PROTOCOL_PLUGIN_HAS_FUNC macro).  The "purple_reserved"
padding struct members were added for 2.0.0 so that things can be added
to those structs without changing the size (thus preserving ABI
compatibility).

   2) The minor version ('y') changes for any addition of API (new
signals, new public functions, or new UI ops)

Releases that do not do either of the above increment the micro version
('z').  We also don't extend these A[BP]I guarantees to the language
bindings, though (speaking for myself) where reasonable, we should try
not to break those bindings arbitrarily.

Since the change you proposed is adding a new UI op, it falls under the
banner of an API addition, so needs to be in the "next minor" release.

~Paul

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 897 bytes
Desc: OpenPGP digital signature
URL: <http://pidgin.im/pipermail/devel/attachments/20100721/d75e9ac3/attachment.sig>


More information about the Devel mailing list