Patches


Who Can Submit Patches
We welcome any and all patch contributions. Patches can range from spelling and grammar fixes to bug fixes and minor new features. (Major new features should be developed in a branch and be committed on a bit-by-bit basis.) (link to "requesting a branch page")
Where to Submit Patches
  • Patches should be submitted to developers by attaching a patch file to a Trac ticket.
  • If your patch is not addressing an existing OpenMRS ticket, then first search for an existing ticket and ask within the forum or mailing lists before creating a new ticket. If you cannot find an existing ticket and the folks in the developers mailing list have recommended that you make a new ticket, then you'll need to [create a new ticket].
  • Attach your patch to the ticket along with a description of your patch.
  • If you have been talking with a developer about a certain issue and/or feature, assign the patch ticket to that developer. If you are not sure who to assign the ticket to, assign it to the patch manager (see explanation below)
How to Create Patches
  • A patch file is simply a text diff between the working copy and the changes.
  • Patch files can be created with your subversion tool of choice -- both Subclipse and TortoiseSVN have "Create Patch" options.
    1. Save the patch to a file with the extension .patch (not .txt or .patch.txt)
    2. Edit the patch in a text editor and use search & replace to remove the absolute file path up to and including the name of your local copy. For example, if the files are named C:/Documents and Settings/Homer/My Workspaces/openmrs-project/src/org/openmrs/..., then you should remove all instances of "C:/Documents and Settings/Homer/My Workspaces/openmrs-project/" within the file.
    3. Upload your .patch file as an attachment within the appropriate ticket on the OpenMRS Development website.
Patch Manager
The patch manager is used to prevent any potential code contributions from falling through the cracks. The role of the manager is to follow up on patch tickets that have not been closed and to assign developers to review and/or apply patches that have been submitted.
The current patch manager is Ben Wolfe (bwolfe).