User Tools

  • Logged in as: anonymous (anonymous)
  • Log Out

Site Tools


mantisbt:howto_submit_pathces

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
mantisbt:howto_submit_pathces [2007/06/15 02:22] – Adding more steps + some changes vboctormantisbt:howto_submit_pathces [2008/10/29 04:25] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Getting your Patches into Mantis ======
  
 +You have identified a bug in a Mantis, and you have developed a solution to correct the defect. So, how do you submit that solution, for inclusion in Mantis?
 +
 +By following the guidelines set out below, you will give your solution its best chance of being adopted, in a timely fashion.
 +
 +===== Base your work on the most current source code =====
 +
 +Please be sure to base your patch upon the most recent code in our CVS. This ensures you will be able to properly test your modifications and provide a cleanly applicable patch.
 +
 +To get the most current Mantis sources use:
 +
 +  * For the first checkout
 +<code>
 +  cvs -d:pserver:anonymous@mantisbt.cvs.sourceforge.net:/cvsroot/mantisbt login
 +  cvs -z3 -d:pserver:anonymous@mantisbt.cvs.sourceforge.net:/cvsroot/mantisbt co -P mantisbt
 +</code>
 +
 +  * After the first checkout (run this from the ''mantisbt'' directory)
 +<code>
 +  cvs update -dP
 +</code>
 +
 +Please refer to the [[http://sourceforge.net/cvs/?group_id=14963|Mantis page on sourceforge]] for more detailed instructions on how to access CVS.
 +
 +===== Modify and test sources =====
 +Now you are all set-up to make you modifications to sources. Please be sure to:
 +
 +  * Follow the [[http://www.mantisbt.org/guidelines.php|Coding guidelines]] when modifying source code.
 +  * Separate each logical change into its own patch. The rule of thumb is: "one patch for one feature or fix".
 +  * Test the resulting sources to ensure you patch does what it is supposed to, possibly without breaking other stuff ;)
 +  * Make sure your changes do not introduces warnings/notices.  It will help to set the following in config_inc.php during developing:
 +<code php>
 + $g_show_detailed_errors = ON;
 + $g_display_errors = array(
 + E_WARNING => 'halt',
 + E_NOTICE => 'halt',
 + E_USER_ERROR => 'halt',
 + E_USER_WARNING => 'halt',
 + E_USER_NOTICE => 'halt'
 + );
 +</code>
 +   * In case of database related changes upgrade the schema so the upgrader works and avoid breaking support for other DBMSes.
 +
 +===== Generate patch file =====
 +
 +Once the modifications are done, you are ready to generate a patch file. This is usually as simple as:
 +
 +<code>  cvs diff -u > mypatch.patch</code>
 +
 +from the ''mantisbt'' directory (requires an active internet connection)
 +
 +If your modifications also includes added files, please add the ''-N'' option like:
 +
 +<code>  cvs diff -uN > mypatch.patch</code>
 +
 +For non trivial patches, it is recommended to create a zip file which includes the patch created above + all modified and created files.  Some users also include a readme file if necessary.
 +
 +===== Attach to bug report =====
 +
 +Now that the patch is prepared, you now do the following:
 +
 +  * Report an issue if it doesn't already exist.
 +  * Attach the patch / zip file.
 +  * Attach screen shots and description of what the feature does.
 +  * For feature, it really helps to create the Wiki page associated with the issue and start write up the documentation for the feature.
 +
 +Since the patch should be reviewed by a Mantis developer, it will help if you also inform the mantisbt-dev mailing list about the available fix.
 +
 +Posts on that list from non-subscribers are possible through services like [[http://news.gmane.org/gmane.comp.bug-tracking.mantis.devel|GMANE]]
 +
 +Thank you for reading this document -- we look forward to your patches! :-)

CC Attribution-Noncommercial-Share Alike 4.0 International Driven by DokuWiki