Patches
From Scantegrity Wiki
Anyone can contribute to the Scantegrity voting system project, and that is probably why you are here! The standard mechanism for expressing the contributions is through a patch or diff file, which is simply a set of instructions showing what will be changed in the source code.
Thank you in advance for your patch. You are doing a good thing, and democracy will thank you for it!
Contents |
Creating a Patch
Once you have finished changing the sources to suit your needs, you can create a patch to share with the community. If you are using a GUI to access the subversion repository, consult your documentation on how to do this. You can create a patch using the command line subversion tools with the following instructions:
- Add all source files you created to the repository.
$ svn add file1 $ svn add file2
- Go to the top of your source tree.
- Run the SVN diff command.
$ svn diff > my.patch
Note: It is preferred your name your patches something relevant to what you changed (i.e. if you fixed a bug, name it fixed-b1234.patch).
Applying a Patch
If you want to apply someone's patch to your source tree:
- Download and save the patch to the top-level directory of your source tree.
- Apply the patch:
$ patch -p0 < joes.patch
Again, if you are using a GUI to access the repository, you should consult the documentation for how to do apply patches.
Submitting a Patch
Patches must be reviewed by the community. When your patch is accepted, a developer with commit permissions will add your patch to the repository.
The general procedure is to mail patches to dev@scantegrity.org, starting the subject line with [PATCH]. Here are some examples:
$ Subj: [PATCH] fix for infinite printing problem in printer module $ Subj: [PATCH] fix for b1234,
The b stands for bug.
Guidelines
Sometimes your patch will not be accepted immediately. You can minimize that chance by observing the following guidelines:
- One coherent change per patch. Please do not submit patches that fix multiple issues. You can always submit another patch.
- Include a concise description of what your patch does, and include a logical title of what your patch is about. If your patch fixes a known issue or bug, please include it as a link in the text and/or as a reference in the header.
- If you add a new feature, give complete details about it, as well as a rationale for why it will not affect the rest of the system.
- Obey the Coding Standards.
- Make sure it passes Testing, doesn't break another component, and that everything still compiles.
- Add a test to the testing utility for your patch.
