Contributing To Kamaelia

What is a contribution?

Code is the most obvious contribution. The most welcome code contributions are bugfixes. However, new components are equally welcome. Changing functionality of existing components is treated with more caution. Code with tests is more welcome than code without test.

However, good bug reports contribute back. Documentation errors are bugs. Smart questions can lead to both improved documentation and sometimes better code. Improvements to this wiki are useful too.

Talking about usage or desired usage is in itself also contributing back. Especially if you talk to us! :)

Even sharing a negative experience is useful. The project might not simply have considered your problem domain and may think "cool, we could do that!".

Code Contribution

There are two approaches here:

  • Shared back, but maintained solely by you. If you want to do this, we can provide you with subversion space in /Sketches, and help you release your code under the Kamaelia.Community namespace
  • Shared back, maintained by you and the project team, merged into the mainline and released as part of subsequent Kamaelia releases. Have a clear say in the direction the core moves in. (you are obviously also added to the AUTHORS file then!)
The former means you have greater overheads in terms of managing your codebase, releases, documentation. It also means that if anyone breaches your license that you are alone (at the end of the day) in resolving the issue.

In the latter case you gain our release infrastructure, documentation infrastructure, and also in the case of license infringement, since it would be a license from the BBC that's infringed you have the support of a larger organisation in resolving any issues (preferably amicably all round of course).

Contributor Agreement

For the latter we need you to sign a contributor agreement (sample contributor agreement) with us. This gives the BBC similar rights as copyright assignment would. (The FSF & Sun, and a number of other projects require copyright assignment, we merely ask for an explicit licence). To do this:
  • Email the main kamaelia list, requesting the form.
  • We will allocate you a developer stub (eg MPS, MH, RJL, THF ...) and email you back a form
  • You fill this in, sign & date it and post the form back to us
  • We then sign & date it, take a copy and send you back a copy
It's worth noting that because you give us a non-exclusive licence, and don't assign copyright to us that you retain full rights over your own code. We've modelled our approach on the same approach as Python for reference - partly because Kamaelia is written in python, but mainly because the language is clear and simple.

Examples of code contributed back on this basis include, an implementation of HTTP & a simple webserver/web client, open GL support, and Bit Torrent integration amongst others.

That said, if you're not happy with signing a contributor agreement, as you can see we've thought about that issue and are happy to work with you anyway, but there will be limits as to how closely! (such is life)


Kamaelia is an open source project originated from and guided by BBC Research. For more information browse the site or get in contact.

This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC. (the site is powered by a wiki engine)

(C) Copyright 2008 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved

This web site is powered by the same code created for the bicker manor project. For more details, contact Michael Sparks at BBC Research directly (cf contact)