Jetpack/Integration Process: Difference between revisions
No edit summary |
|||
| Line 1: | Line 1: | ||
This page | This page includes instructions on updating fx-team with the latest version of the SDK code. | ||
= | = Setting up the mercurial tree = | ||
== | When you don't yet have a mercurial clone dedicated for doing uplifts do this: | ||
hg clone https://hg.mozilla.org/integration/fx-team/ fx-team | |||
cd fx-team/addon-sdk/source | |||
git init | |||
git remote add origin git@github.com:mozilla/addon-sdk.git | |||
git fetch origin | |||
git checkout -f <i>firefoxXX</i> #where XX is the current version you're uplifting to | |||
This will give you the latest fx-team code and update the SDK files to the latest versions from the <i>firefoxXX</i> branch, in some cases that might be newer than those already in fx-team. | |||
= Performing the uplift = | |||
== Updating the version branches == | |||
We track the code uplifted to Firefox in branches in git, one for each version of Firefox. Each week when uplifting we merge master into the release branch for the release it will land in. | |||
If the release branch for the current nightly version doesn't exist (the first week after a merge to aurora) then do this: | |||
From your SDK repository: | From your SDK repository: | ||
| Line 9: | Line 26: | ||
git checkout master | git checkout master | ||
git pull origin master | git pull origin master | ||
git checkout -b <i>firefoxXX</i> #where XX is the new Firefox version number on | git checkout -b <i>firefoxXX</i> #where XX is the new Firefox version number on fx-team | ||
git push -u origin <i>firefoxXX</i> | git push -u origin <i>firefoxXX</i> | ||
This creates a new <i>firefoxXX</i> branch in git and pushes it to the upstream repository for use. This new branch will track whatever code is in the SDK's folder in mercurial. | This creates a new <i>firefoxXX</i> branch in git and pushes it to the upstream repository for use. This new branch will track whatever code is in the SDK's folder in mercurial. | ||
Any other week when the branch already exists: | |||
Pick up new changes from the master branch every week or as needed: | Pick up new changes from the master branch every week or as needed: | ||
# merge master to <i>firefoxXX</i> directly: | # merge master to <i>firefoxXX</i> directly: | ||
| Line 23: | Line 41: | ||
git push origin <i>firefoxXX</i> | git push origin <i>firefoxXX</i> | ||
= | == Creating a bug == | ||
== | |||
The first step is to create a bug to track the uplift. It should be in Add-on SDK::General, P1 and contain the list of changes included in the uplift, a github link works well for this. {{bug|947501}} is an example. This should also be used in the commit message, see https://hg.mozilla.org/integration/fx-team/rev/9ece804de146 | |||
== | == Updating the SDK code inside mercurial == | ||
cd | cd fx-team | ||
hg pull -u | hg pull -u # updates to the latest version of fx-team | ||
cd addon-sdk/source | cd addon-sdk/source | ||
git reset --hard <i>firefoxXX</i> # undoes any backouts that happened in hg, XX is current m-i version number | git reset --hard <i>firefoxXX</i> # undoes any backouts that happened in hg, XX is current m-i version number | ||
git pull origin <i>firefoxXX</i> | git pull origin <i>firefoxXX</i> | ||
cd ../.. | |||
Updates the Firefox and SDK files to the latest versions from the integration branch. | Updates the Firefox and SDK files to the latest versions from the integration branch. | ||
| Line 48: | Line 58: | ||
== Checking changes == | == Checking changes == | ||
After updating the git and hg repositories you should add any new files from git and verify you haven't accidentally changed anything outside the add-on SDK tree. From the | After updating the git and hg repositories you should add any new files from git and verify you haven't accidentally changed anything outside the add-on SDK tree. From the fx-team source directory: | ||
hg addremove addon-sdk/source | hg addremove addon-sdk/source | ||
| Line 57: | Line 67: | ||
== Testing changes == | == Testing changes == | ||
Before committing you | Before committing you may want to test your changes by pushing to the try server. You need to have mercurial queues enabled for this to work. | ||
hg qnew -f - | hg qnew -f -e testpatch | ||
Creates a temporary commit that can be pushed to try. Include the output of [http://trychooser.pub.build.mozilla.org/ TryChooser] to restrict builds and tests. | Creates a temporary commit that can be pushed to try. Include the output of [http://trychooser.pub.build.mozilla.org/ TryChooser] to restrict builds and tests. | ||
Revision as of 17:13, 16 December 2013
This page includes instructions on updating fx-team with the latest version of the SDK code.
Setting up the mercurial tree
When you don't yet have a mercurial clone dedicated for doing uplifts do this:
hg clone https://hg.mozilla.org/integration/fx-team/ fx-team cd fx-team/addon-sdk/source git init git remote add origin git@github.com:mozilla/addon-sdk.git git fetch origin git checkout -f firefoxXX #where XX is the current version you're uplifting to
This will give you the latest fx-team code and update the SDK files to the latest versions from the firefoxXX branch, in some cases that might be newer than those already in fx-team.
Performing the uplift
Updating the version branches
We track the code uplifted to Firefox in branches in git, one for each version of Firefox. Each week when uplifting we merge master into the release branch for the release it will land in.
If the release branch for the current nightly version doesn't exist (the first week after a merge to aurora) then do this:
From your SDK repository:
# assuming you're merging the head from master: git checkout master git pull origin master git checkout -b firefoxXX #where XX is the new Firefox version number on fx-team git push -u origin firefoxXX
This creates a new firefoxXX branch in git and pushes it to the upstream repository for use. This new branch will track whatever code is in the SDK's folder in mercurial.
Any other week when the branch already exists:
Pick up new changes from the master branch every week or as needed:
# merge master to firefoxXX directly: git checkout master git pull origin master git checkout firefoxXX # XX is the current m-i version number git merge master git push origin firefoxXX
Creating a bug
The first step is to create a bug to track the uplift. It should be in Add-on SDK::General, P1 and contain the list of changes included in the uplift, a github link works well for this. bug 947501 is an example. This should also be used in the commit message, see https://hg.mozilla.org/integration/fx-team/rev/9ece804de146
Updating the SDK code inside mercurial
cd fx-team hg pull -u # updates to the latest version of fx-team cd addon-sdk/source git reset --hard firefoxXX # undoes any backouts that happened in hg, XX is current m-i version number git pull origin firefoxXX cd ../..
Updates the Firefox and SDK files to the latest versions from the integration branch.
Checking changes
After updating the git and hg repositories you should add any new files from git and verify you haven't accidentally changed anything outside the add-on SDK tree. From the fx-team source directory:
hg addremove addon-sdk/source hg status -X addon-sdk/source # Should show no results hg status -ur addon-sdk/source # Should show no results hg status # Shows you all the changes you're about to land
Testing changes
Before committing you may want to test your changes by pushing to the try server. You need to have mercurial queues enabled for this to work.
hg qnew -f -e testpatch
Creates a temporary commit that can be pushed to try. Include the output of TryChooser to restrict builds and tests.
hg push -f ssh://hg.mozilla.org/try/
Pushes the temporary commit to the try server, depending on your TryChooser string you should get an email telling you where to look for results.
Once you're done the following converts the temporary commit to a real commit that can be pushed to the project branch:
hg qrefresh -e # Edit the commit message to remove the try: syntax hg qfinish -a
Viewing and committing changes
If you aren't testing the changes on try then you can just commit them:
hg commit
Pushing the changes to the project branch
hg outgoing --stat # Check that only one changeset is listed and it only modifies addon-sdk/source hg push ssh://hg.mozilla.org/integration/fx-team/
Pushes the changes to fx-team.