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!".
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)