Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
dev:merge_process [2008/06/19 05:34] chamindra |
dev:merge_process [2008/09/26 06:23] fran GSoC merge advice |
||
---|---|---|---|
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 | ||
+ | |||
+ | |||
Line 44: | 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 51: | 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 | - 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 used by Fran for GSoC project merges == | ||
+ | |||
+ | I must confess that I don't have any great technique here...it' | ||
+ | |||
+ | 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++' | ||
+ | * Merge all co-dependent changed files together. | ||
+ | * Tidy-up the code to meet Sahana formatting guidelines & spellchecks | ||
+ | * Test | ||
+ | |||
+ | NB I assume that ' | ||
+ | * 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 | ||
+ | |||
+ | |||
+ | |||