Firefox/Go Faster/Releasing an add-on mechanics: Difference between revisions
Jump to navigation
Jump to search
Warning: This document and process is still in a very active exploration and discovery phase. It has not been tested fully, and may change at any time. ianb and Standard8 know most about the process
Warning: This document does not yet contain how to handle multiple add-ons. Please talk to ianb and Standard8 before attempting to proceed.
Warning: Multiple system add-ons are released together as one bundle which should be tested. Take account of this when updating the template files.
(Update ftp details and basic access information.) |
(Add details about creating releases and rules in balrog) |
||
| Line 14: | Line 14: | ||
** Talk to Release Engineering team for access | ** Talk to Release Engineering team for access | ||
== Procedure | == Procedure == | ||
This process assumes you have a xpi that is ready for release. | This process assumes you have a xpi that is ready for release. | ||
=== Uploading the xpi === | |||
* Get the xpi signed, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1249764 clone this bug] | * Get the xpi signed, e.g. [https://bugzilla.mozilla.org/show_bug.cgi?id=1249764 clone this bug] | ||
* Upload the signed xpi to ftp in the <code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code> directory. | * Upload the signed xpi to ftp in the <code>[https://ftp.mozilla.org/pub/system-addons/ /pub/system-addons/]</code> directory. | ||
** Use a sub-directory appropriate for the add-on. | ** Use a sub-directory appropriate for the add-on. | ||
* | |||
=== Setting up Balrog === | |||
* | |||
{{warning|Multiple system add-ons are released together as one bundle which should be tested. Take account of this when updating the template files.}} | |||
* Sign into Balrog at https://aus4-admin.mozilla.org/ | |||
First step is to generate the template for the System add-on update release. This contains detail about the xpis, and which platform(s) they are for. | |||
** | |||
** Under Rules, search for | * Under Releases, search for <code>SystemAddons</code>. | ||
*** | * Find the latest release and download the existing template. | ||
** | ** Update the fileUrl to point to the location on ftp. '''The url must be https'''. | ||
** Update the hashValue (<code>shasum -a 512 <file></code>). | |||
** Update filesize (bytes, <code>ls -la <file></code>). | |||
** Update version to the version number of the add-on. | |||
** Update the name, use something like <code>"SystemAddons-<addon shortname><addon shortversion>"</code> and append extra add-on sections for each add-on. | |||
*** e.g. <code>SystemAddons-hello112</code> | |||
*** We might need to review the naming eventually, but for now it'll do. | |||
** Save the template with the filename matching the name in the file (e.g. <code>SystemAddons-hello112.json</code> | |||
* Back in Balrog, select "Add a new release" | |||
** Enter the name as matching the name in the file. | |||
** Enter the product as <code>SystemAddons</code> | |||
** Under data, select the file you just created. | |||
** Select "Save Changes". | |||
* The new release should appear in the list. | |||
At this stage, the details for the add-on release have been created. Now you need to create a rule for it to be picked up. | |||
{{warning|Rules go live as soon as they are created or updated.}} | |||
A note about channels: | |||
* <code>beta</code> and <code>release</code> are production channels. Do not use these for testing. | |||
* For testing system addons, we are using the <code>beta-sysaddon</code> and <code>release-sysaddon</code> channels | |||
** This is designed to avoid testing on the same channel that QA uses for updates. | |||
* If you need to test something special, it may be useful to use a different channel. | |||
To add a rule: | |||
* Under Rules, search for <code>SystemAddons</code>. | |||
** You can use the results to check your expectations of values to put in fields. | |||
* Select "Add a new rule" | |||
** Leave blank: Alias, Locale, Distribution, Build Target, OS Version, Dist Version, Whitelist, Header Architecture | |||
** Product: <code>SystemAddons</code> | |||
** Channel: <code>beta-sysaddon</code> (or the one you want to use) | |||
** Mapping: The name of the release you created earlier, should auto-complete. | |||
** Rate: The rate at which you wish to push the release out (100 = full, 0 = none) | |||
** Priority: <code>100</code> | |||
** Version: The version of Firefox the add-ons should be released to. | |||
** Build ID: The build id of Firefox you wish to push the add-ons to. You can leave this blank to push it to all builds of versions specified in the version field. | |||
** Update Type: Leave as <code>minor</code> | |||
** Comment: Enter a comment about the release if necessary, e.g. something exceptional. | |||
* Select "Save Changes" | |||
The changes are live within a few seconds. | |||
Testing via url: | |||
* You can check the data via a url: https://aus5.mozilla.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-sysaddon/default/default/default/update.xml | |||
** You'll need to replace the version, build id and maybe the channel in the url above. | |||
Testing in Firefox: | |||
* Note: currently system add-ons updates don't apply until you restart Firefox. | |||
* You may need to change <code>/path/to/binary/folder/browser/defaults/preferences/prefs.js</code> to point to the specified channel. | |||
* Add-on manager activity can be monitored by setting <code>extensions.logging.enabled</code> to true. | |||
* You can force an add-on update with the [https://addons.mozilla.org/en-US/firefox/addon/timer-fire/ timer-fire add-on] | |||
** Using "Tools > Fire Timer > Add-on Update" | |||
** If you don't force, you'll need to wait for the update - one check occurs each day. | |||
* about:support shows the current add-on version | |||
Revision as of 10:49, 25 February 2016
This document only contains details about the mechanics for releasing. You will need to discuss with release drivers and other folks about being able to actually do a release.
Access Rights
To upload and release add-ons, you'll need access to:
- ftp (
/pub/system-addons/)- Talk to the Cloud Services team for access
- balrog via VPN
- Talk to Release Engineering team for access
Procedure
This process assumes you have a xpi that is ready for release.
Uploading the xpi
- Get the xpi signed, e.g. clone this bug
- Upload the signed xpi to ftp in the
/pub/system-addons/directory.- Use a sub-directory appropriate for the add-on.
Setting up Balrog
- Sign into Balrog at https://aus4-admin.mozilla.org/
First step is to generate the template for the System add-on update release. This contains detail about the xpis, and which platform(s) they are for.
- Under Releases, search for
SystemAddons. - Find the latest release and download the existing template.
- Update the fileUrl to point to the location on ftp. The url must be https.
- Update the hashValue (
shasum -a 512 <file>). - Update filesize (bytes,
ls -la <file>). - Update version to the version number of the add-on.
- Update the name, use something like
"SystemAddons-<addon shortname><addon shortversion>"and append extra add-on sections for each add-on.- e.g.
SystemAddons-hello112 - We might need to review the naming eventually, but for now it'll do.
- e.g.
- Save the template with the filename matching the name in the file (e.g.
SystemAddons-hello112.json
- Back in Balrog, select "Add a new release"
- Enter the name as matching the name in the file.
- Enter the product as
SystemAddons - Under data, select the file you just created.
- Select "Save Changes".
- The new release should appear in the list.
At this stage, the details for the add-on release have been created. Now you need to create a rule for it to be picked up.
A note about channels:
betaandreleaseare production channels. Do not use these for testing.- For testing system addons, we are using the
beta-sysaddonandrelease-sysaddonchannels- This is designed to avoid testing on the same channel that QA uses for updates.
- If you need to test something special, it may be useful to use a different channel.
To add a rule:
- Under Rules, search for
SystemAddons.- You can use the results to check your expectations of values to put in fields.
- Select "Add a new rule"
- Leave blank: Alias, Locale, Distribution, Build Target, OS Version, Dist Version, Whitelist, Header Architecture
- Product:
SystemAddons - Channel:
beta-sysaddon(or the one you want to use) - Mapping: The name of the release you created earlier, should auto-complete.
- Rate: The rate at which you wish to push the release out (100 = full, 0 = none)
- Priority:
100 - Version: The version of Firefox the add-ons should be released to.
- Build ID: The build id of Firefox you wish to push the add-ons to. You can leave this blank to push it to all builds of versions specified in the version field.
- Update Type: Leave as
minor - Comment: Enter a comment about the release if necessary, e.g. something exceptional.
- Select "Save Changes"
The changes are live within a few seconds.
Testing via url:
- You can check the data via a url: https://aus5.mozilla.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-sysaddon/default/default/default/update.xml
- You'll need to replace the version, build id and maybe the channel in the url above.
Testing in Firefox:
- Note: currently system add-ons updates don't apply until you restart Firefox.
- You may need to change
/path/to/binary/folder/browser/defaults/preferences/prefs.jsto point to the specified channel. - Add-on manager activity can be monitored by setting
extensions.logging.enabledto true. - You can force an add-on update with the timer-fire add-on
- Using "Tools > Fire Timer > Add-on Update"
- If you don't force, you'll need to wait for the update - one check occurs each day.
- about:support shows the current add-on version