Project

General

Profile

HOWTO merge commits from the integration branch » History » Revision 12

Revision 11 (Loïc Dachary, 07/10/2015 08:10 AM) → Revision 12/22 (Loïc Dachary, 07/21/2015 11:40 AM)

After the [[HOWTO run integration and upgrade tests|tests successfully]] run on the [[HOWTO populate the integration branch|integration branch]]: 

 h3. Get approval on a backport 

 The backports that were done by someone in from the *stable releases* team need to be approved by a developer or a lead, even after successfully passing the relevant teuthology suite. Although a discussion with the developer or the lead could be engaged before testing, it is less work for a busy developer or lead to review a backport that is known to pass integration tests.  

 

 * List the pull requests that have been merged in the integration branch with something like: 
 <pre> 
 $ git log --oneline --merges ceph/giant..ceph/giant-backports 
 538d012 Merge 4214: osd/osd_types.cc: 456: FAILED assert(m_seed < old_pg_num) 
 </pre> 
 * For each commit in each Assign pull request, lookup the person who merged the requests that have been backported commit in master 
 ** follow and tested without interaction with the link on original author to the commit hash of [[HOWTO#Leads|lead]] because (s)he is the *cherry-pick from* part of one deciding if the commit message of the backport 
 ** follow is good enough. Although a discussion with the link lead could be engaged before testing, it is less work for a busy lead to review a backport that is known to pass integration tests. Ask to the [[HOWTO#Leads|lead]] if the pull request that included this commit 
 ** the person who can be merged by adding a message to the pull request was responsible for merging this commit in master 
 * If there are more than one person responsible for merging the commits of with a given pull request, pick one (at random if there does not seem URL to be a reason to chose one rather than the other) test results. 
 * Ask the person responsible Wait for merging the commits, via a comment in the all such pull request: 
 <pre> 
 @person this backport passed the XXX suite (URL requests to the pulpito page for the suite), do you think it can be merged ? 
 </pre> 
 * The person can either merge the pull request (her|him)self or add a comment like LGTM. approved. 

 h3. Merge a pull request 

 The backports from the integration branch can be merged (via github so that the pull requests are properly tagged as being merged) into the release branch if: 

 * the backport was done by the original developer of the commit 
 * the backport was approved by the lead (see above) 

 Merging the pull requests goes like this: 

 * for each pull request merged in the integration branch 
 * go to the github web interface 
 * click on the "Merge button" 
 * add the "Reviewed-by:" field to the input box 
 * when all pull requests are merged **git log --format='%H %s' --graph ceph/$release..ceph/$release-backports** must not show any commit (i.e. the integration branch must have nothing left because all cherry-picked commits are now found in the $release branch). 
 * the $release-backports branch is reset to the $release branch to make it clear that it has been merged (git reset --hard ceph/$release) 

 h3. Resolving the matching issue 

 For each pull request that is merged: 

 * go to the corresponding issue that should be listed as a link in the pull request comment 
 * change the status of the issue to *Resolved* 

 Note: Since the merge is not from the integration branch, the commit that has been tested won't match the SHA. This is inconvenient when trying to figure out if a mistake has been done. The content of the integration branch should be merged with a script instead of manually via the github web interface to avoid mistakes.