canmove, Confirmed users, Bureaucrats and Sysops emeriti
3,628
edits
(New page, wip, for info on releasing loop-client.) |
(Major reformat/relayout to bring it up to date) |
||
(7 intermediate revisions by 2 users not shown) | |||
Line 6: | Line 6: | ||
The source files for the standalone are automatically extracted into the [https://github.com/mozilla/loop-client loop-client] repository every hour. | The source files for the standalone are automatically extracted into the [https://github.com/mozilla/loop-client loop-client] repository every hour. | ||
== Automatic updating of loop-client == | |||
The master branch of Loop-client is automatically updated from mozilla-central by a script each hour. | |||
The script lives in loop-client repository and is called [https://github.com/mozilla/loop-client/blob/master/extract_from_hg.py extract_from_hg.py]. | |||
The [[CloudServices/Loop/Deploy#Dev|development server]] runs a cronjob ever hour which runs the script on the loop-client directory on the server (using the mozilla-central hg clone as a base). This also ensures that the development server is automatically updated as well. | |||
= Release Cycle = | = Release Cycle = | ||
loop-client typically | loop-client releases happen when necessary. If strings have changed, there is typically an approximately 2 week cycle to allow them to translate. Current release schedules are tracked on the [[Loop#Cross-Team_Project_Calendar cross-team|calendar]]. | ||
== What to Release? == | |||
* | * If no string changes have occurred since the previous release: | ||
** | ** [[#Releasing loop-client for staging|Release from latest master]]. | ||
* | * If string changes have occurred, either: | ||
** | ** [[#Start an L10n release|Start an L10n release]] with over a 2 to 3 week cycle | ||
** | ** or, if there are small bug fixes to ship sooner, create/use branch from previous release and port only the minor changes | ||
= | = Automatic updating of loop-client = | ||
The master branch of Loop-client is automatically updated from mozilla-central by a script each hour. | |||
The script lives in loop-client repository and is called [https://github.com/mozilla/loop-client/blob/master/extract_from_hg.py extract_from_hg.py]. | |||
The [[CloudServices/Loop/Deploy#Dev|development server]] runs a cronjob ever hour which runs the script on the loop-client directory on the server (using the mozilla-central hg clone as a base). This also ensures that the development server is automatically updated as well. | |||
= Start an L10n release = | |||
* | * Ensure CHANGELOG is up to date on latest master. | ||
* Next talk to mathjazz in #l10n; confirm that all the strings for Hello are checked in, ready for an L10n release. | |||
* Pull the [[#How to merge latest L10n changesets|latest l10n strings into loop-client]] | |||
* Then copy the en-US files to the verbatim directory. | * Then copy the en-US files to the verbatim directory. | ||
# 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 | ||
Line 59: | Line 56: | ||
* Tell mathjazz the push is complete | * Tell mathjazz the push is complete | ||
* mathjazz will then ensure verbatim gets updated. | * mathjazz will then ensure verbatim gets updated. | ||
* Decide on the version number | |||
** Version numbers are generally arbitrary, however, we've so far been following the major.minor.sub version scheme. For releases from the same branch, major and minor stay the same. When a new release occurs with string changes, the minor version gets bumped. | |||
* Create a branch from the latest revision of loop-client's master, i.e. the where the loop.properties for en-US is the same as what was copied to loop-client-l10n. | |||
git checkout -b 0.14.x | |||
git push origin 0.14.x | |||
* Send an email to mozilla.dev.l10n, with a '''deadline that is at least 2 weeks in the future, including 2 weekends'''. | |||
** Subject: "Several new strings for Firefox Hello Standalone now in verbatim" | |||
** Body template: | |||
<pre> | |||
Hi All, | |||
We've added a few new strings to the Firefox Hello standalone app. They are in verbatim and pontoon and ready for you to localise. | |||
[Add information about what the strings will relate to] | |||
Deadline: [Insert date] | |||
Updated words: [This can be obtained from verbatim once its synced - look for old previously completed locales, and see what the defect number now is] | |||
Verbatim: | |||
https://localize.mozilla.org/projects/loop/ | |||
</pre> | |||
= How to merge latest L10n changesets = | |||
This is required for the sections below. | |||
* Pull in the latest L10n changes: | |||
# Update the L10n repository | |||
cd loop-client-l10n | |||
git pull origin master | |||
# Change back to loop-client repo | |||
cd ../loop-client | |||
# Pull across L10n changes | |||
./locale-update.py | |||
At this stage, check: | |||
# Diffs - to check the changes look sane | |||
# git status - to check for any added locales (and if so, "git add" them) | |||
# Commit the L10n changes | |||
git commit -m "Update L10n from changeset <revision>" -a | |||
= Releasing loop-client for staging = | |||
If there's no branch for the current release: | |||
* Check to see if there were any string changes since the previous release. | |||
* If there were, cut a branch before the string changes, and if required, merge/port across any additional (non-string) changesets. | |||
* If not, then the release can be done from master. | |||
* Check [ | To do the actual release: | ||
* Update the CHANGELOG file | |||
* Decide on the version number | |||
** Version numbers are generally arbitrary, however, we've so far been following the major.minor.sub version scheme. For releases from the same branch, major and minor stay the same. When a new release occurs with string changes, the minor version gets bumped. | |||
* Check out the required changeset or branch | |||
* Merge [[#How to merge latest L10n changesets|latest L10n changesets]] | |||
* Update the CHANGELOG file: | |||
** Add version and date | |||
** Add bug references | |||
** Indicate if L10n were updated | |||
** Note any configuration option changes/additions | ** Note any configuration option changes/additions | ||
* | * Commit the CHANGELOG file | ||
git commit -m "Update changelog for <version>" CHANGELOG | |||
* Push the changes | |||
git push origin <branch> | |||
* Create the release | |||
# Replace <version> with whatever the version is, e.g. 0.14.0 | |||
./create_release.sh <version> | |||
* File a bug, use one of the previous bugs as a template: | |||
* File bugs | ** https://bugzilla.mozilla.org/buglist.cgi?list_id=12590497&short_desc=loop-client%20stage&resolution=FIXED&query_format=advanced&short_desc_type=allwordssubstr&component=Operations%3A%20Deployment%20Requests&product=Cloud%20Services | ||
** | ** (This will hopefully be automated soon) | ||
** | * Update the bug with the specifics of any configuration changes if needed. | ||
[[Category:Firefox Hello]] |