Loop/Loop-client Release Process: Difference between revisions
(New page, wip, for info on releasing loop-client.) |
m (→Creating a loop-client branch for release to L10n: Improve formatting) |
||
Line 34: | Line 34: | ||
git clone git@github.com:mozilla/loop-client.git | git clone git@github.com:mozilla/loop-client.git | ||
cd loop-client | cd loop-client | ||
# Checkout master, or appropriate revision to branch from | # Checkout master, or appropriate revision to branch from | ||
git checkout master | git checkout master | ||
# Create a new branch (replace 0.14 with the main version of the branch) | # Create a new branch (replace 0.14 with the main version of the branch) | ||
git checkout -b 0.14.x | git checkout -b 0.14.x | ||
# Push the new branch to the remote | # Push the new branch to the remote | ||
git push origin 0.14.x | git push origin 0.14.x | ||
Line 48: | Line 51: | ||
# Clone or update as needed | # Clone or update as needed | ||
git clone git@github.com:mozilla/loop-client-l10n.git | git clone git@github.com:mozilla/loop-client-l10n.git | ||
# Copy the en-US file (note the change from - to _) | # Copy the en-US file (note the change from - to _) | ||
cp loop-client/content/l10n/en-US/loop.properties loop-client-l10n/l10n/en_US/loop.properties | cp loop-client/content/l10n/en-US/loop.properties loop-client-l10n/l10n/en_US/loop.properties | ||
# Verbatim also needs it in the templates directory | # Verbatim also needs it in the templates directory | ||
cp loop-client/content/l10n/en-US/loop.properties loop-client-l10n/l10n/templates/loop.properties | cp loop-client/content/l10n/en-US/loop.properties loop-client-l10n/l10n/templates/loop.properties | ||
# Now commit and push | # Now commit and push | ||
cd loop-client-l10n | cd loop-client-l10n |
Revision as of 15:15, 23 February 2015
Background
Loop-client is the "standalone" part of Firefox Hello. It consists of hosted pages that can be accessed from any browser.
The definitive source files are in mozilla-central, mainly under the standalone directory, however some of the files are shared with desktop.
The source files for the standalone are automatically extracted into the loop-client repository every hour.
Release Cycle
loop-client typically has an approximately four-week release cycle (two weeks dev, two weeks for L10n and release). Current release schedules are tracked on the calendar.
Cycle (days are approximate, depending on required timings and other activities:
- Day 1
- Development of loop-client continues in mozilla-central
- Day 14
- A new branch is created for the next release
- Strings are passed to L10n for translation
- Day 28
- L10n strings are imported
- The branch is tagged
- Then (these may happen on different days, depending on availability of QA.
- The branch is released to ops to push to staging
- QA tests staging
- Once verified, ops deploy to production
- QA verifies production
Creating a loop-client branch for release to L10n
A new branch is required if there are string changes since the previous release. If there are no string changes, then a branch may be skipped, unless string changes occur during the cycle. If so, a branch should be cut from before any string changes occurs.
To create a branch:
git clone git@github.com:mozilla/loop-client.git cd loop-client # Checkout master, or appropriate revision to branch from git checkout master # Create a new branch (replace 0.14 with the main version of the branch) git checkout -b 0.14.x # Push the new branch to the remote git push origin 0.14.x
To update L10n
- First talk to mathjazz in #l10n; confirm that verbatim has all the strings checked in for Hello.
- Then copy the en-US files to the verbatim directory.
# Clone or update as needed git clone git@github.com:mozilla/loop-client-l10n.git # Copy the en-US file (note the change from - to _) cp loop-client/content/l10n/en-US/loop.properties loop-client-l10n/l10n/en_US/loop.properties # Verbatim also needs it in the templates directory cp loop-client/content/l10n/en-US/loop.properties loop-client-l10n/l10n/templates/loop.properties # Now commit and push cd loop-client-l10n git commit -m "Merge latest en-US strings from loop-client commit <revision>" -a git push origin master
- Tell mathjazz the push is complete
- mathjazz will then ensure verbatim gets updated.
Releasing loop-client
The loop-client repository is a mirror of the necessary parts from mozilla-central. It is automatically updated via a script in the repository, every hour (if necessary).
Release process:
- Check loop-client has all the required changes
- Update the CHANGELOG file
- Note any configuration option changes/additions
- Checkout a fresh loop-client repo, make sure the directory name is `loop-client`, then
cd loop-client
# Replace '0.4.0 with the correct version ./create_release.sh 0.4.0
- The new release tag will be automatically pushed
- File bugs for pushes to (use these templates):
Further info: https://etherpad.mozilla.org/loop-client-release