Patching a Branch: Difference between revisions

From genomewiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
 
Edited to use Git and cherry-picking.
OBSOLETE - this page was written for CVS but we are now using Git.


'''How? ("Who" in parenthesis)'''
'''How? ("Who" in parenthesis)'''
Line 7: Line 6:
* ('''Developer'''): Fix the error (and get a second opinion on your fix from another developer).  Let the QA person know that it is fixed.  
* ('''Developer'''): Fix the error (and get a second opinion on your fix from another developer).  Let the QA person know that it is fixed.  
* ('''QA'''): Verify the developer's fix on hgwdev.  Send email to Build-meister (cc'ing browser-qa and developer) with revision number of the fix and patch request (including an explanation of the problem and the fix and the CGIs that will be affected).
* ('''QA'''): Verify the developer's fix on hgwdev.  Send email to Build-meister (cc'ing browser-qa and developer) with revision number of the fix and patch request (including an explanation of the problem and the fix and the CGIs that will be affected).
* ('''Build-Meister'''): Check the CVS log to make sure that you are making the correct change.  
* ('''Build-Meister'''): Check the Git log to make sure that you are making the correct change.  
  hgwbeta> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
  hgwbeta> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
  hgwbeta:/data/tmp/releaseBuild/v190_branch/kent/src> cvs log hg/someCgi/someFile.c
  hgwbeta:/data/tmp/releaseBuild/v190_branch/kent/src> git log hg/someCgi/someFile.c
* ('''Build-Meister'''): Tell the program which file and version you want to change to.
* ('''Build-Meister'''): Tell the program which file and version you want to change to.
  hgwbeta> cd $WEEKLYBLD
  hgwbeta> cd $WEEKLYBLD
  hgwbeta:/cluster/bin/build/scripts> vi PatchBranchFiles.conf
  hgwbeta:/cluster/bin/build/scripts> vi CherryPickCommits.conf
** This is a list and you can have more than one line if you need.
** This is a list and you can have more than one line if you need.
** Edit this file to include the file name and new version number like so:
** Edit this file to include the git commit hash id like so:
hg/someCgi/someFile.c 1.234
96b0dc9826d589e09daf2bd1a36ef513c91255b1
* ('''Build-Meister'''): Do a test run and verify that everything is set up correctly:
* ('''Build-Meister'''): Do a test run and verify that everything is set up correctly:
hgwbeta:/cluster/bin/build/scripts/patchBranch.csh
./cherryPickCommits.csh
* ('''Build-Meister'''): If it is correct, run it for real:
* ('''Build-Meister'''): If it is correct, run it for real:
hgwbeta:/cluster/bin/build/scripts/patchBranch.csh real
./cherryPickCommits.csh real
* ('''Build-Meister'''): Determine which CGIs are affected by this file change:
* ('''Build-Meister'''): Determine which CGIs are affected by this file change:
  hgwbeta> cd /usr/local/apache/cgi-bin
  hgwbeta> cd /usr/local/apache/cgi-bin
Line 28: Line 27:
  hgwbeta:/data/tmp/releaseBuild> ls -ltr
  hgwbeta:/data/tmp/releaseBuild> ls -ltr
* ('''Build-Meister'''): Do a 'make' in the library directory, if necessary. If the file change was a lib file, then do a make in the corresponding lib directory:
* ('''Build-Meister'''): Do a 'make' in the library directory, if necessary. If the file change was a lib file, then do a make in the corresponding lib directory:
  hgwbeta:/data/tmp/releaseBuild/vXYZ_branch/kent/src/hg/lib> make
  hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src/hg/lib> make
** -or-  
** -or-  
  hgwbeta:/data/tmp/releaseBuild/vXYZ_branch/kent/src/lib> make
  hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src/lib> make
* ('''Build-Meister'''): If only one or two programs are impacted by the change, do a 'make alpha' in their CGI directories:
* ('''Build-Meister'''): If only one or two programs are impacted by the change, do a 'make alpha' in their CGI directories:
  hgwbeta> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
  hgwbeta> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
  hgwbeta:/data/tmp/releaseBuild/vXYZ_branch/kent/src> cd path/to/c/file
  hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src> cd path/to/c/file
  hgwbeta:/data/tmp/releaseBuild/vXYZ_branch/kent/src/hg/hgTracks> make alpha
  hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src/hg/hgTracks> make alpha
** -or-  
** -or-  
* ('''Build-Meister'''): If all or many are impacted, do a 'make alpha' in hg/:
* ('''Build-Meister'''): If all or many are impacted, do a 'make alpha' in hg/:
  hgwbeta:/data/tmp/releaseBuild/vXYZ_branch/kent/src/hg> make alpha
  hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src/hg> make alpha
* ('''Build-Meister'''): Reply to the email to the Developer and browser-qa that the tag has been moved and binaries made on hgwbeta.
* ('''Build-Meister'''): Reply to the email to the Developer and browser-qa that the tag has been moved and binaries made on hgwbeta.
* ('''QA'''): Test the change on hgwbeta.
* ('''QA'''): Test the change on hgwbeta.
* ('''QA'''): Reply to the email about the efficacy of the change.
* ('''QA'''): Reply to the email about the efficacy of the change.
* Additional notes:
** Adding brand new files requires using the the move-branch-tag process instead of patching.


[[Category:Browser QA]]
[[Category:Browser QA]]

Revision as of 21:30, 30 August 2010

Edited to use Git and cherry-picking.

How? ("Who" in parenthesis)

  • (QA): Find an error in the binaries, determine if it needs to be patched, and alert the Developer.
  • (Developer): Fix the error (and get a second opinion on your fix from another developer). Let the QA person know that it is fixed.
  • (QA): Verify the developer's fix on hgwdev. Send email to Build-meister (cc'ing browser-qa and developer) with revision number of the fix and patch request (including an explanation of the problem and the fix and the CGIs that will be affected).
  • (Build-Meister): Check the Git log to make sure that you are making the correct change.
hgwbeta> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
hgwbeta:/data/tmp/releaseBuild/v190_branch/kent/src> git log hg/someCgi/someFile.c
  • (Build-Meister): Tell the program which file and version you want to change to.
hgwbeta> cd $WEEKLYBLD
hgwbeta:/cluster/bin/build/scripts> vi CherryPickCommits.conf
    • This is a list and you can have more than one line if you need.
    • Edit this file to include the git commit hash id like so:

96b0dc9826d589e09daf2bd1a36ef513c91255b1

  • (Build-Meister): Do a test run and verify that everything is set up correctly:

./cherryPickCommits.csh

  • (Build-Meister): If it is correct, run it for real:

./cherryPickCommits.csh real

  • (Build-Meister): Determine which CGIs are affected by this file change:
hgwbeta> cd /usr/local/apache/cgi-bin
hgwbeta:/usr/local/apache/cgi-bin> ./dependencies fileName.c
  • (Build-Meister): Go to the current build:
hgwbeta> cd $BUILDDIR
  • (Build-Meister): Determine the current branch number. It will be the most recent directory that looks like "v---_branch".
hgwbeta:/data/tmp/releaseBuild> ls -ltr
  • (Build-Meister): Do a 'make' in the library directory, if necessary. If the file change was a lib file, then do a make in the corresponding lib directory:
hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src/hg/lib> make
    • -or-
hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src/lib> make
  • (Build-Meister): If only one or two programs are impacted by the change, do a 'make alpha' in their CGI directories:
hgwbeta> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src> cd path/to/c/file
hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src/hg/hgTracks> make alpha
    • -or-
  • (Build-Meister): If all or many are impacted, do a 'make alpha' in hg/:
hgwbeta:/data/tmp/releaseBuild/v999_branch/kent/src/hg> make alpha
  • (Build-Meister): Reply to the email to the Developer and browser-qa that the tag has been moved and binaries made on hgwbeta.
  • (QA): Test the change on hgwbeta.
  • (QA): Reply to the email about the efficacy of the change.