[Openais] libqb development plan

Angus Salkeld asalkeld at redhat.com
Mon Jun 21 20:49:57 PDT 2010


After Steve dropped his note about future corosync development it
might make sense to let you know where we are with libqb.

So far I have done the following:
- imported code from corosync
- namespaced everything with "qb_" to prevent name clashes.
- Re licensed to LGPL-2.1 (thanks to all relevant contributors)
- seperated out the ringbuffer functionality out of logsys into seperate
  files.
- improved on the ringbuffer to make it usable accross processes
- used the ringbuffer to implement a non blocking ipc send (with flow control).
- started using check (http://check.sourceforge.net/) to do unit testing.
- started documenting the newer API's using doxygen (to produce man pages and html)
- setup up a wiki

I will now start releasing 0.Y.0 releases simply as milestones (as API will change
until 1.0).

I plan to release to following features up until libqb-1.0. This is early
and will probably change but should show the direction I am trying to take.

Taken from http://www.libqb.org/wiki/index.php/Todo_List which I'll keep up-to-date.

Please feel free to suggest any other ideas / suggestions.

==== Ongoing items ====
* coding style
** basically kernel coding style
** define a return code coding style for API
** work towards consistency by 1.0
* Write unit test cases for as much code as possible.
* document all API using doxygen in the headers
* wiki: FAQ

==== libqb-0.1.0 ====
* code: change all ints to [u]intXX_t
* wiki: contributer howto (coding style)

==== libqb-0.2.0 ====
* code: Make sure the poll loop and IPC system can safely operate in other threading models (not
* just corosync).
** Have a close look at the poll loop.
** Create a way of safely passing jobs/messages from thread to thread.

==== libqb-0.3.0 ====
* code: I want to make the IPC API easier to use.
** The server side takes ~300 lines to setup. I want it easier to use.

==== libqb-0.4.0 ====
* code: Implement atomic_get/set/incr functions (or copy from glib/libatomic/...).
** Use these instead of shared locks in the ringbuffer.
** Use these in the handle db instead of locks for reference counters.

==== libqb-0.5.0 ====
* code: simplify / cleanup logsys

==== libqb-0.6.0 ====
* code: data structures
** cleanup make the API more consistent.
** should there be locking in the data structures (easy of use/flexibility)?

==== libqb-0.7.0 ====
* code: Provide some integration (or at least examples) with glib and libevent.
* code/docs: C examples
* infrastructure: buildbot

==== libqb-0.8.0 ... libqb-1.0.0 ====
* code: support porting corosync-3.0 (and any other project) to libqb
* code: Write lots of unit test cases.
* wiki: support - user howto - links to doxygen

Regards
Angus Salkeld



More information about the Openais mailing list