Patching a Branch: Difference between revisions

From Genecats
Jump to navigationJump to search
No edit summary
No edit summary
Line 9: Line 9:
  hgwdev> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
  hgwdev> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
  hgwdev> git log hg/someCgi/someFile.c
  hgwdev> git log hg/someCgi/someFile.c
  hgwdev> ssh -X build@hgwbeta         # the optional '-X' allows X-windows support     
  hgwdev> ssh -X build@hgwdev         # the optional '-X' allows X-windows support     
  <build@hgwbeta> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
  <build@hgwdev> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
  <build@hgwbeta> git log hg/someCgi/someFile.c
  <build@hgwdev> 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.
  <build@hgwbeta> cd $WEEKLYBLD
  <build@hgwdev> cd $WEEKLYBLD
  <build@hgwbeta> edit CherryPickCommits.conf
  <build@hgwdev> edit 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 git commit hash id like so:
** Edit this file to include the git commit hash id like so:
96b0dc9826d589e09daf2bd1a36ef513c91255b1
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:
  <build@hgwbeta> ./cherryPickCommits.csh
  <build@hgwdev> ./cherryPickCommits.csh
* ('''Build-Meister'''): If it is correct, run it for real:
* ('''Build-Meister'''): If it is correct, run it for real:
  <build@hgwbeta> ./cherryPickCommits.csh real
  <build@hgwdev> ./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:
   Actually this is obsolete, the dependences program no longer works in git,
   Actually this is obsolete, the dependences program no longer works in git,
   so you will have to figure it out in other ways.
   so you will have to figure it out in other ways.
  <build@hgwbeta> cd /usr/local/apache/cgi-bin
  <build@hgwdev> cd /usr/local/apache/cgi-bin
  <build@hgwbeta:/usr/local/apache/cgi-bin> ./dependencies fileName.c
  <build@hgwdev:/usr/local/apache/cgi-bin> ./dependencies fileName.c
* ('''Build-Meister'''): Go to the current build:
* ('''Build-Meister'''): Go to the current build:
  <build@hgwbeta> cd ${BUILDDIR}/v${BRANCHNN}_branch
  <build@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch
* ('''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:
  <build@hgwbeta> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/lib>
  <build@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/lib>
  <build@hgwbeta> make
  <build@hgwdev> make
** -or-  
** -or-  
  <build@hgwbeta> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/hg/lib>
  <build@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/hg/lib>
  <build@hgwbeta> make
  <build@hgwdev> 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:
  <build@hgwbeta> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/hg
  <build@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/hg
  <build@hgwbeta> cd path/to/c/file  # e.g.: cd hgTracks
  <build@hgwdev> cd path/to/c/file  # e.g.: cd hgTracks
  <build@hgwbeta> make alpha
  <build@hgwdev> make beta
** -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/:
  <build@hgwbeta> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/hg
  <build@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/hg
  <build@hgwbeta> make alpha
  <build@hgwdev> make beta
* ('''Build-Meister'''): Update the redmine ticket that the build has been patched and binaries made on hgwbeta.
* ('''Build-Meister'''): Update the redmine ticket that the build has been patched and binaries made on hgwdev and synced to hgwbeta.
* ('''Build-Meister'''): Update or re-do gbib build steps.
* ('''Build-Meister'''): Update or re-do gbib build steps.
* ('''Build-Meister'''): If the build-wrapup has already been done, you will need to re-do the relevant parts  (minimally, the beta branch and release tag and source.zip would have to be re-done.
* ('''Build-Meister'''): If the build-wrapup has already been done, you will need to re-do the relevant parts  (minimally, the beta branch and release tag and source.zip would have to be re-done.

Revision as of 19:12, 4 June 2015

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): Create a Build Patch issue in redmine. 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.
hgwdev> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
hgwdev> git log hg/someCgi/someFile.c
hgwdev> ssh -X build@hgwdev          # the optional '-X' allows X-windows support    
<build@hgwdev> cd $BUILDDIR/v${BRANCHNN}_branch/kent/src
<build@hgwdev> git log hg/someCgi/someFile.c
  • (Build-Meister): Tell the program which file and version you want to change to.
<build@hgwdev> cd $WEEKLYBLD
<build@hgwdev> edit 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:
<build@hgwdev> ./cherryPickCommits.csh
  • (Build-Meister): If it is correct, run it for real:
<build@hgwdev> ./cherryPickCommits.csh real
  • (Build-Meister): Determine which CGIs are affected by this file change:
 Actually this is obsolete, the dependences program no longer works in git,
 so you will have to figure it out in other ways.
<build@hgwdev> cd /usr/local/apache/cgi-bin
<build@hgwdev:/usr/local/apache/cgi-bin> ./dependencies fileName.c
  • (Build-Meister): Go to the current build:
<build@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch
  • (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@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/lib>
<build@hgwdev> make
    • -or-
<build@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/hg/lib>
<build@hgwdev> make
  • (Build-Meister): If only one or two programs are impacted by the change, do a 'make alpha' in their CGI directories:
<build@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/hg
<build@hgwdev> cd path/to/c/file   # e.g.: cd hgTracks
<build@hgwdev> make beta
    • -or-
  • (Build-Meister): If all or many are impacted, do a 'make alpha' in hg/:
<build@hgwdev> cd ${BUILDDIR}/v${BRANCHNN}_branch/kent/src/hg
<build@hgwdev> make beta
  • (Build-Meister): Update the redmine ticket that the build has been patched and binaries made on hgwdev and synced to hgwbeta.
  • (Build-Meister): Update or re-do gbib build steps.
  • (Build-Meister): If the build-wrapup has already been done, you will need to re-do the relevant parts (minimally, the beta branch and release tag and source.zip would have to be re-done.
  • (QA): Test the change on hgwbeta.
  • (QA): Reply to the email about the efficacy of the change.