How to contribute
So you've though of this cool extension to dotProject and now you want to build it and make it available to everyone, but don't know how?
First things first. If your extension is a change to existing functionality then you need to clear it with the admins, or with the developer community. Join the dotproject-cvs mailing list and put your idea out there, or post it to this forum, and wait. Be patient. Remember that the admins and developers come from all parts of the globe and are not always going to be in your timezone, so it may take 24 hours (or more close to a weekend) to get a reply. Don't pester people by sending your request to every forum you can think of, this is the best way to annoy the admins.
Consider making sure your change is configurable. Just because you think it is a cool idea doesn't mean the rest of the world will agree. It is also more likely to be accepted if it can be turned on or off by a site admin. Hardcoded changes to the world that completely rework a level of functionality is an imposition upon others that is unlikely to be warmly received.
Be prepared to support the changes you make. It is no good saying "This piece of code is cool, everyone needs it, but I don't have the time to fix problems with it so just put it into the main code and let the core team handle the support". The admins will instantly dismiss your idea, no matter how good it may seem. Open Source in general, and dotProject in particular, is supported by the developers who do not get paid to do this. Why would they support your code if you won't support it yourself? Similarly, be prepared to support other parts of dotProject. This is a collaborative community and if you want to be taken seriously then you will need to lend a hand when a support request comes in, even if it is not for the code you wrote.
If you want to be a developer on the main project you will need to demonstrate that you are prepared to fix bugs in other people's code, and to respond to support requests in the forums. Just having a cool piece of code to contribute is not enough on its own.
If your change is big enough, what about making it a module? Modules are by definition contributor-supported blocks of code that stand apart from the core code. The admins are happy to give you CVS access to dotmods if you have a good idea that is modular enough to fit as a separate module. But again, you must be prepared to support it yourself. Many module developers go on to become core developers as the admins can see that you have the skills and the dedication to your module to be an asset to the main team.
Importantly, if you have no track record in handling support forum requests or submitting bug fixes or patches, do not ask to become a core developer. The admins will not oblige. You may ask to become a dotmods developer to develop your own module, and this is usually granted, but the core team needs a greater level of dedication and entry is by invitation only.
And finally, the admins are the final arbiters of what is and is not going to go into the core code. While we tend to let you develop quite freely, if you add code that is considered a security risk, or is not in keeping with the directions of dotProject, the admins reserve the right to remove your code.
Do not bother to complain, there is no higher authority.
Last edited by ajdonnison : 16-09-05 at 09:35 AM.
Reason: Fixed title