You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by Apache Wiki <wi...@apache.org> on 2013/01/24 16:32:33 UTC
[Cordova Wiki] Update of "CommitterWorkflow" by AndrewGrieve
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Cordova Wiki" for change notification.
The "CommitterWorkflow" page has been changed by AndrewGrieve:
http://wiki.apache.org/cordova/CommitterWorkflow?action=diff&rev1=7&rev2=8
Read through: [[http://www.apache.org/dev/committers.html]]
= Committing Your Own Changes =
- 1. If you are at all in need of reassurance for your change, ask someone to have a look at it by pushing it your own github clone.
- 1. If all is well:
+
+ == Step 1: Mail the Mailing-list ==
+ This is required if any of the following are true:
+ * Your change will add/remove/change any public Cordova APIs
+ * You suspect that your change has a chance of being controversial
+ * You would like feedback before you begin
+
+ When possible, try to phrase things in the form of a proposal. If no one objects (within a workday or two), then consider yourself to have [[http://www.apache.org/foundation/glossary.html#LazyConsensus|Lazy Consensus]].
+
+ == Step 2: Ensure there is a JIRA issue. ==
+ * JIRA issues are used for both new features and for bugs.
+ * The "Fix For" field is used for the purpose of Release Notes.
+ * The issues are also used to track which commits / topic branches are related to them.
+
+ == Step 3: Create a topic branch ==
+ * Using a public topic branch is necessary only when either:
+ 1. you would like to collaborate on the feature
+ 1. you would like feedback on your code before committing
+ * For small bugfixes, public topic branches are not required.
+ * Note: You should never rebase a public topic branch!
+
+ == Step 4: Ask for a code review ==
+ * If you are using a public topic branch, then you should ask for a code review when you consider it to be complete.
+ * For now, use a github pull request. Soon, use [[http://reviews.apache.org/|reviews.apache.org]].
+ * Email the ML so that anyone who is available can have a look at your code. If you have someone in particular that you would like approval from, be sure to add them in the To: of your email.
+ * Again, sometimes this will end with a [[http://www.apache.org/foundation/glossary.html#LazyConsensus|Lazy Consensus]].
+
+ == Step 5: Merge your change ==
+ * Once your topic branch is tested & working, it's time to merge it. Use the following workflow:
+
{{{
git checkout master
- git pull cordova master
+ git pull apache master
git checkout topic_branch
+ git checkout -b to_be_merged
- git rebase master
+ git rebase master -i
+ ...
git checkout master
- git merge --ff-only branch_name
+ git merge --ff-only to_be_merged
- git push cordova master
+ git push apache master
+ git branch -d to_be_merged
+ git branch -D topic_branch
+ git push apache :topic_branch
}}}
- Once this is done. Update the relevant JIRA issues with the commit IDs.
+ The rebase -i step is your chance to clean up the commit messages and to combine small commits when appropriate. For example:
+ {{{
+ Commit A: Implemented RockOn feature (CB-1234)
+ Commit B: Added tests for RockOn (CB-1234)
+ Commit C: Fixed RockOn not working with empty strings
+ Commit D: Renamed RockOn to JustRock
+ Commit E: Refactor MainFeature to make use of JustRock.
+ }}}
+
+ In this case, it would be appropriate to combine commits A-D into a single commit, or at least commits A & C. Having a smaller number of commits when merging makes it easier for others to comprehend the diff commits, and also makes it easier to roll-back commits should the need arise. For JS commits, prefix the message with [platform] so that it's clear who should take interest in the commit. For all commits, be sure to include the JIRA issue number / URL.
+
+ == Step 6: Update JIRA ==
+
+ Mark the relevant JIRA as fixed, and be sure to include the relevant commit IDs.
+
= Processing Pull Requests =