Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dev:merge_process [2008/06/19 04:57]
chamindra
dev:merge_process [2008/09/26 06:24]
fran Change attribution style
Line 34: Line 34:
   - Nominate point people and Sahana committers who will participate in the merge process   - Nominate point people and Sahana committers who will participate in the merge process
   - Define a brief schedule and milestones for the work   - Define a brief schedule and milestones for the work
 +
 +
 +
  
 ===== Merge Process per Bug Fix / Enhancement ===== ===== Merge Process per Bug Fix / Enhancement =====
Line 43: Line 46:
   * Have a merge tool handy to compare the difference between the trunk and you deployment code base   * Have a merge tool handy to compare the difference between the trunk and you deployment code base
  
-__Rigorous Process__+__Process for Bugs__
   - Identify and isolate Bux Fix in code to merge using the merge tool   - Identify and isolate Bux Fix in code to merge using the merge tool
   - Create a patch for the bug fix   - Create a patch for the bug fix
Line 50: Line 53:
   - Module owner approves the patch and closes it in the patch tracker   - Module owner approves the patch and closes it in the patch tracker
  
-__Simple Process__+__Process for Enhancements__ 
 +  - Document all the changes made to the module and send it to the module owner
   - Speak to module owner to identify which fixes in module are relevant   - Speak to module owner to identify which fixes in module are relevant
 +  - Create an entire module patch with only the fixes asked by module owner
 +  - Send the patch to the module maintainer
 +  - Module owner adds patch to the trunk, tests it and commits it.
 +
  
 ===== Merge Process for Localization work == ===== Merge Process for Localization work ==
 +
 +  * PO file will be merged into Pootle
 +
 +===== Merge Process for GSoC project merges ==
 +
 +Fran: I must confess that I don't have any great technique here...it's basically a long, tedious process.
 +
 +I'd be very happy to hear from others as to better ways of doing this!
 +
 +I did the merge in stages:
 +  * Have copies of both Trunk & Branch accessible
 +  * Build a list of all files modified by the participants (by asking the participants & looking at CVS View - having a knowledge of the project helps here, of course)
 +  * Add in new files (can't break anything)
 +  * Do a diff of the modified files with the current version in trunk & review
 +  * If there are simply new functions, then add those (again, can't break anything)
 +  * If old functions are deprecated, then grep codebase to see where the function is used & hence other files which need modifying
 +  * If existing functions are modified, sanity check what's happening. - using Notepad++'s Compare plugin works well for assisting this.
 +  * Merge all co-dependent changed files together.
 +  * Tidy-up the code to meet Sahana formatting guidelines & spellchecks
 +  * Test
 +
 +NB I assume that 'Architectural fit' has been dealt with by the mentor(s)
 +  * not unnecessarily growing the stack of dependencies
 +  * any 3rd party code included is LGPL-compatible
 +  * using existing Sahana APIs rather than writing their own
 +
 +What I've not yet done, but should really happen is:
 +  * Form validation checks
 +  * Security checks
 +  * Performance optimisation checks
 +
 +
 +
  

Navigation
QR Code
QR Code dev:merge_process (generated for current page)