On the Mambo project, everyone has read access to the SVN repository and anyone can make a contribution to the project. However, in order to ensure the integrity of our code we follow the following process.
After you have obtained the source code
, made changes to it, built and tested it, you send your patch to the development team for review.
Submitting Your Patch for Review
Firstly, ensure that you have completed and sent back a signed copy of the Mambo Contributor Agreement. Code cannot be accepted without this.
If your patch is related to a bug fix task on the tracker
you will add your patch as an attachment to the existing tracker task.
If there is not an existing task on the tracker for the issue you are trying to solve, then create a new task. Ensure that you make it clear exactly what problem you're solving and, if it's not clear from the patch, how you are solving it. The clearer the issue and the fix is, the easier it is for the development team to review it.
Do NOT send patches privately to the team or as attachments to the mailing list.
If the patches are not attached as files to a tracker task they will most likely get lost.
How to Attach Patch Files
Create a new account on the tracker
, if you do not already have one, login and go to the task you wish to add the patch file to. Use the "Edit" button then click on "Attach a file". Do NOT attach the patch in a comment or in the body of the tracker task.
If you are creating a new task, simply use the "Attach a file" button to add your file.
Format for Submitting Patches
Patches are to be submitted in the format returned by the SVN diff command using the .diff extension eg. svn diff > 347.diff
This would create a file called 347.diff, where 347 is the tracker task number. Using the tracker task number for the file name helps us to keep patches organised.
If your patch is new code, use a .patch extension (eg. 400.patch) so everyone can clearly identify that it is new code.
In the tracker task itself, please follow these guidelines:
- Describe both what the patch does and how it does it with enough detail to help others identify the issue you are addressing, unless the patch is trivial;
- Add a description for use in the CHANGELOG (don't include this in the patch file itself);
- Don't submit one patch with several unrelated files - one patch per issue please;
- Don't compress the patch - no .zip of .gz as this just makes the task of reviewing that much slower.
Patch Review
Reviews are our way of ensuring that only code of high quality makes it into the Mambo core. Quality includes consistency in coding style, compliance with Mambo's coding standards, readability, clarity, stability and security. We welcome peer reviews of code so the more people you can get to test your code, the better. Review results can be added as comments to the tracker task.
Reviews are not necessarily one-off things: sometimes the development team will need to send your patch back to you for more work before it can be approved.
Once a patch has been reviewed the development team will wish to either submit it to the repository or reject it back to the author. Code that is accepted will then be committed to SVN using the details you provided for the CHANGELOG and stating that the code was submitted by you.