This page contains some guidelines that will make it easier to integrate contributed code into Achievo.
This is not an absolute must. We rather have very-hard-to-integrate code, than no code at all. But if you want to do us a favour, or want to increase the chance that your code is actually going to be used in the Achievo project, it is a good idea to use the guidelines described here.
The following 'patch howto' was graciously contributed by Stefan Leblanc (sleblanc at radicalhorizon dot com).
When you made some changes or bug fix for Achievo or one of its modules, there is a very efficient way to send it to the developers.
First, let's assume you are using a Linux system or at least a UNIX based Operating System. If not... Well let's install one!
Then let's also assume you kept an original copy of what you modified and you are modifying in another directory. (Tip: always make changes agains the latest CVS snapshot. This will make your patch easier to integrate into Achievo.)
Suppose you are making some changes to the 'weektimereg' module. weektimereg.org/ is your orginal copy and weektimereg/ is your working folder containing all your changes.
What you need to do is put all your changes in a file, arrange it to help the developers know what you changed and where, all that always in the same format for everybody. The way to do so is to use "diff".
To make sure everybody use the same formating, we will use "diff -Naur".
So in our exemple, the exact syntax would be:
diff -Naur weektimereg.org/ weektimereg/
This will display a lot of text in the screen, so let's redirect that text in a file with:
diff -Naur weektimereg.org weektimereg > myPatchFile.patch
This file contains all the changes you made from weektimereg.org/* to weektimereg/* including all files in the subdirectories.
Well that is what it should be... You might want to make sure everything went well and all your changes are in the patch... So testing seems to be a good idea.
In order to test you patch file, I would recommand to copy your original directory (cp -a weektimereg.org weektimereg.test). then copy your patch file in the new directory (cp myPatchFile.patch weektimereg.test/). Enter the new directory (cd weektimereg.test/).
From there, you should be able to run:
patch -p1 < myPatchFile.patch
If everything went well, patch should tell you it did patch some files, so you are ready to test your patched Achievo! Just put it on a Web Server and make sure your modifications still works.
If you ran into some problems, you should have an error message and a ".rej" file in you new directory.
Finally, everything works? Well, don't wait! Send your patch to the Achievo team. The prefered way of doing this, is to attach your patch to the corresponding bug entry in Bugzilla. If there is no bug entry yet for the changes you made, just create one.
If, for whatever reason, you are unable to create patches, you may also contribute the modified source files by placing them in a .zip or .tar.gz archive and uploading them in bugzilla.
If you make use of this option, provide documentation on what you changed and where. Preferably using comment markers in the code. In the comments that you provide with your bugzilla attachment, give any explanation that we need to have to be able to integrate your changes.