Services/Process/MergingBetweenBranches: Difference between revisions

(Created page with "Snapshot of http://etherpad.mozilla.org:9000/services-client-merge-process : * Merging feature branches to s-c ** All changes must be reviewed and have appropriate test coverage...")
 
m (Bug 1082602)
 
(18 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Snapshot of http://etherpad.mozilla.org:9000/services-client-merge-process :
Click here for more information on the [[Services/Code_Review|Code Review Process]]


* Merging feature branches to s-c
== Merging feature branches to services-central ==
** All changes must be reviewed and have appropriate test coverage
* All changes must be reviewed and have appropriate test coverage
** All changes requiring additional testing (read: QA) must have a documented test plan in place
* All changes requiring additional testing (read: QA) must have a documented test plan in place
** Any features requiring server-side deployments/changes must wait until those pieces are live on stage before merging
* Any features requiring server-side deployments/changes must wait until those pieces are live on stage before merging
* Merging from m-c to s-c
== Merging from mozilla-central to services-central ==
** Pull last green changeset into local s-c, merge
* Pull last green changeset into local services-central
** Push to s-c
hg pull ssh://hg.mozilla.org/mozilla-central/
** Verify green build in tbpl, including TPS (formerly Crossweave) — wait for the email.
* If necessary (hg reports +1 heads), merge pulled changeset into local services-central
** Perform frequently!
hg merge
* Merging from s-c to m-c
* If necessary, commit the merge
** Ensure all required changes have landed and the tree is green
hg commit -m "Merge m-c to s-c"
** Merge last green changeset from m-c to s-c (see above)
* Push to services-central (Does services-ops need to do this?)
** Ensure everything stays green, including TPS (formerly Crossweave)
hg push ssh://hg.mozilla.org/services/services-central
** Hand off tinderbox builds to QA
* Verify green build on Treeherder (note: services-central is currently disabled in buildbot and Treeherder).
** Once QA signs off, merge the signed off changeset (not necessarily the s-c tip anymore) to m-c
* Perform frequently!
* (Proposed) Timing
 
** Hand off to QA on Monday
== Merging from services-central to mozilla-central ==
** QA smoketests Monday + Tuesday
* Ensure all required changes have landed and the tree is green
** Merge on Tuesday
* Merge last green changeset from m-c to services-central (see above)
* (Proposed) Schedule
* Ensure everything stays green, including TPS (formerly Crossweave)
** April 25/26: QA handoff + merge
* Close the tree (see below)
** May 9/10: QA handoff + merge
* Hand off tinderbox builds to QA
** May 17: Fx 6 merges to Aurora
* Once QA signs off, merge the signed off changeset (not necessarily the services-central tip anymore) to mozilla-central
* Open questions:
* Reopen the tree
** Is there any situation in which we would accede to a release driver's request for a merge? With or without urgent QA smoketesting?
* Use the automated m-cMerge tool (linked to from Treeherder]) to RESOLVE FIX corresponding bugs in Bugzilla, setting appropriate Target Milestone (e.g., mozilla5 if the destination m-c will become Firefox 5)
** What about small fixes that are desirable for m-c?
* When a change reaches mozilla-aurora for a particular release, set the relevant "status-firefoxN" flag to "fixed".
*** Land on m-c and merge
 
*** Land on s-c and transplant
Note that the last two steps also apply for transplanted changes that are independently landed on mozilla-central or mozilla-aurora (e.g., a small, limited impact fix for a user-impacting bug).
*** Do we need any process around transplanting?
 
== Timing ==
* Hand off to QA on Monday
* QA runs [https://wiki.mozilla.org/QA/Sync/Test_Plan#Client test plan] Monday + Tuesday
* Merge on Tuesday
 
== Closing the tree ==
 
We close the tree to avoid a more complicated merge after QA handoff. Wait to land patches until the merge to m-c has completed.
 
* Go to the [http://tinderbox.mozilla.org/admintree.cgi?tree=Services-Central tinderbox admin page], and change the status message as described in the comments.
 
* Put the reason the tree is closed in the tree reason section ("mozilla-central train has left the station", for example), and add a name to the sheriff if necessary:
 
<nowiki>var treeReason = "mozilla-central train has left the station";
var treeSheriff = 'rnewman on #services';</nowiki>
 
* Update the tree status in #services (either in the topic, or just announce it).
 
=== Opening the tree ===
 
* Reverse the closure steps, clearing the treeReason and the name of the treeSheriff (leave the treeSheriff pointing to #services, as that will be displayed when the tree is busted or orange).
 
== Open questions: ==
* Is there any situation in which we would accede to a release driver's request for a merge? With or without urgent QA smoketesting?
* What about small fixes that are desirable for m-c?
** Land on m-c and merge
** Land on s-c and transplant
** Do we need any process around transplanting?

Latest revision as of 17:14, 21 December 2014

Click here for more information on the Code Review Process

Merging feature branches to services-central

  • All changes must be reviewed and have appropriate test coverage
  • All changes requiring additional testing (read: QA) must have a documented test plan in place
  • Any features requiring server-side deployments/changes must wait until those pieces are live on stage before merging

Merging from mozilla-central to services-central

  • Pull last green changeset into local services-central
hg pull ssh://hg.mozilla.org/mozilla-central/
  • If necessary (hg reports +1 heads), merge pulled changeset into local services-central
hg merge
  • If necessary, commit the merge
hg commit -m "Merge m-c to s-c"
  • Push to services-central (Does services-ops need to do this?)
hg push ssh://hg.mozilla.org/services/services-central
  • Verify green build on Treeherder (note: services-central is currently disabled in buildbot and Treeherder).
  • Perform frequently!

Merging from services-central to mozilla-central

  • Ensure all required changes have landed and the tree is green
  • Merge last green changeset from m-c to services-central (see above)
  • Ensure everything stays green, including TPS (formerly Crossweave)
  • Close the tree (see below)
  • Hand off tinderbox builds to QA
  • Once QA signs off, merge the signed off changeset (not necessarily the services-central tip anymore) to mozilla-central
  • Reopen the tree
  • Use the automated m-cMerge tool (linked to from Treeherder]) to RESOLVE FIX corresponding bugs in Bugzilla, setting appropriate Target Milestone (e.g., mozilla5 if the destination m-c will become Firefox 5)
  • When a change reaches mozilla-aurora for a particular release, set the relevant "status-firefoxN" flag to "fixed".

Note that the last two steps also apply for transplanted changes that are independently landed on mozilla-central or mozilla-aurora (e.g., a small, limited impact fix for a user-impacting bug).

Timing

  • Hand off to QA on Monday
  • QA runs test plan Monday + Tuesday
  • Merge on Tuesday

Closing the tree

We close the tree to avoid a more complicated merge after QA handoff. Wait to land patches until the merge to m-c has completed.

  • Put the reason the tree is closed in the tree reason section ("mozilla-central train has left the station", for example), and add a name to the sheriff if necessary:
var treeReason = "mozilla-central train has left the station";
var treeSheriff = 'rnewman on #services';
  • Update the tree status in #services (either in the topic, or just announce it).

Opening the tree

  • Reverse the closure steps, clearing the treeReason and the name of the treeSheriff (leave the treeSheriff pointing to #services, as that will be displayed when the tree is busted or orange).

Open questions:

  • Is there any situation in which we would accede to a release driver's request for a merge? With or without urgent QA smoketesting?
  • What about small fixes that are desirable for m-c?
    • Land on m-c and merge
    • Land on s-c and transplant
    • Do we need any process around transplanting?