manPortico Estate - Cookbook: recipe #239, Some guidelines on handling patches


recipe #239: Some guidelines on handling patches


Our patch manager is hosted on savannah. This patch manager contains various patches which may be bug fixes, enhancements or malicious code. If they are open on savannah, they are untested and unsupported.

From time to time we may link to 3rd party patch sets. These patch sets have been tested by someone from the project, and appear to work ok, but again the project provides no official support or endorsement of such patch sets.

Getting the patch tool

If you need the patch command line tool, it is available with most GNU/Linux distributions, on Windows you can use MinGW, Cygwin or unxutils.

Submitting Patches

We appreciate all contributions to the project, but the contribution needs to be in a usable form. This document is designed to make it easy for us to work with the patches you provide to the project.

Clearly specify the purpose of the patch and the application name in the summary field, starting with ENH for enhancements or BUGFIX for bug fixes. In the "original submission", please include the following information. Only include one feature/fix in each patch submission.

Target Branch: 1.0, trunk etc
Format: diff
Affected file/s: file1.php, file2.php

DO NOT email patches, they will get lost. Also you don't need to worry about sending us an email after the patch has been submitted, savannah does that for you :)

Please upload your patch, don't paste it on savannah, it will mangle it, which makes it a lot of work for a developer to apply. Do not compress the patch, and if you are using Windows, please run dos2unix on the files before creating the patch.

Please don't point to websites. If we have to click off the patch manager to work on the patch, your patch is more likely to be ignored.

You may receive some comments regarding the patch, if there are problem these will have to be fixed before it is applied. Alternatively, the patch manager may modify the patch before commiting it to CVS. It is there call :)

Make your patches one subdirectory under the source tree you're working on. In short if you have the following two dirs /var/www/fmsystem.old and /var/www/fmsystem you should do the following commands:

$ cd /var/www
$ diff -aburN --exclude=.svn* fmsystem.old fmsystem > patchfile.diff

Then upload patchfile.diff to savannah as described above. We do it this way so that we can (regardless of where our source tree is) apply them with "patch -p1" from our fmsystem top directory. Like so:

$ cd /path/to/our/fmsystem
$ patch -p1 < ~/patchfile.diff

and we dont have to worry about three patches being based on /var/www/fmsystem, while two others not having a path at all and being individual filenames in fmsystem/phpgwapi/inc.

Please make sure you run a cvs update (and retest) before creating the patch to ensure it is upto date.

CVS diffs may be accepted, it depends on the mood of the person checking the patch. It is best to follow the steps above.

We thank you for all your submissions, and simply want to make sure your time isn't wasted and your patch ignored.

Last update: Sun 26 Sep 2010 03:41:03 PM UTC


Audience and Context

   Anonymous Users, Logged-in Users, All Project Members
   Project Main Pages, Project Homepage, Cookbook
   Browsing, Doing Searches

Back to the top

Powered by Savane 3.7