Socorro/Release Branch Strategy: Difference between revisions

quick svn->git, hudson->jenkins pass
(quick svn->git, hudson->jenkins pass)
 
Line 13: Line 13:
* manual application of patches
* manual application of patches
** can result in errors or inconsistent state across servers
** can result in errors or inconsistent state across servers
** bypasses our usual hudson unittest->staging push
** bypasses our usual Jenkins unittest->staging push
*** we generally check into trunk first, so this is somewhat mitigated
*** we generally check into trunk first, so this is somewhat mitigated
** more time-consuming and manual than our automated package install
** more time-consuming and manual than our automated package install
Line 20: Line 20:
= proposal =
= proposal =


1) For each each scheduled version (for example 1.7.7), create a branch at freeze time
1) For each each scheduled version (for example 2.2.1), create a branch at freeze time


* this opens the trunk up for immediate future development (1.7.8)
* this opens master up for immediate future development (2.3)
* could create the branch in advance, but would rather limit the divergence between trunk and branch
* could create the branch in advance, but would rather limit the divergence between trunk and branch


2) For each major.minor.patch version (for example 1.7.7.1), devs check changes into trunk and port to branch
2) For each major.minor.patch version (for example 2.2.2), devs check changes into trunk and merge to branch


* manual process; not all patches are applicable to both
* manual process; not all patches are applicable to both


3) Hudson will automatically run tests, create package, and publish for staging
3) Jenkins will automatically run tests, create package, and publish for staging


* Hudson needs a very simple config change for each SVN branch
* Jenkins needs a very simple config change for each git branch
** however, Hudson supports building all git branches automatically, may make our lives easier later
** each branch has it's own job, for example:
*** https://jenkins.mozilla.org/job/socorro-master
*** https://jenkins.mozilla.org/job/socorro-release


4) The package Hudson made for staging is available for automated production install
4) The package Jenkins made for staging is available for automated production install


* totally scripted, limits potential for errors
* totally scripted, limits potential for errors
canmove, Confirmed users
1,511

edits