[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kopete-devel
Subject:    Re: [Kopete-devel] About 0.5 roadmap and Kopete future
From:       Martijn Klingens <klingens () kde ! org>
Date:       2002-05-30 19:56:13
[Download RAW message or body]

On Thursday 30 May 2002 21:24, Duncan Mac-Vicar Prett wrote:
> After a release everyone is excited about adding tons of features ( freeze
> break), I hope everyone can follow these guidelines when adding a feature,
> and discuss it with all the team , may be other has a better solution.

Mostly seconded, and the rest we can surely resolve...

On a related but different note, I have a technical proposal for 0.5:

If you want to add APIs to libkopete, or change existing APIs, please consider 
one of the following approaches, but don't break most of kopete compilation 
for a considerable time like with the KMM branch unless ABSOLUTELY necessary 
and discussed and approved here:

- Convert all plugins and test them if you change APIs, and commit in one
  burst. Discuss API changes on the list.

- Keep a downwards compatibility layer while developing new stuff. Add a
  method bool canDoMyFeature() in libkopete with a default implementation that
  returns false and develop and test your code in a single plugin where the
  code returns true instead. If the plugin doesn't support the requested API,
  use the 0.4 code, and only call the new API if there is support. After your
  API is more or less mature, ask others to port, or port the other plugins
  yourself. Once all plugins are over remove the compatibility layer
  altogether. As this still affects the API, you still need to discuss here.

- Use any other method that is non-intrusive to existing code, and by all
  means keep HEAD in a compilable and running state! It is HEAD, so stability
  may be flaky, but all plugins should at least compile and run. Changes in
  the API that affect other plugins need to be discussed BEFORE committing, so
  appropriate precautions can be taken and plugin maintainers can help porting
  more quickly and easily.

Whatever you do inside the plugins is mostly your own business, but keep the 
following guidelines in mind:

- If it is useful for more than one plugin, develop it generic, so it can be
  moved to libkopete as soon as it's more or less stable and mature.

- If it adds highly technical feature bloat, consider hiding it far away in an
  advanced tab. This can not always be done in the current framework, but
  where possible, please consider it.

Comments, flames or other responses?

Martijn

_______________________________________________
Kopete-devel mailing list
Kopete-devel@mail.kde.org
http://mail.kde.org/mailman/listinfo/kopete-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic