Firefox/Go Faster/Releasing an add-on mechanics
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.
Contents
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
When experimenting/doing initial setup, it is suggested to use the dev servers for Balrog:
- https://aus4-admin-dev.allizom.org/ with update urls at https://aus4-dev.allizom.org/update/3/SystemAddons/45.0/20160218171844/default/en-US/beta-cdntest1/default/default/default/update.xml
Once you're confident of the configuration, you can then copy this across to production:
- For production, sign into Balrog at https://aus4-admin.mozilla.org/
Set up a release in Balrog
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.
Set up a rule in Balrog
A note about channels:
-
beta
andrelease
are production channels. Do not use these for testing. - For testing system addons, we are using the
beta-sysaddon
andrelease-sysaddon
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
SystemAddons
.- You can use the results to check your expectations of values to put in fields.
- Select "Add a new rule"
- More background on rules at Balrog pages
- 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.
Verifying Balrog
Testing via url:
- You can check the data via a url: https://aus5.mozilla.org/update/3/SystemAddons/49.0.1/20160922113459/default/en-US/release-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.
- In `about:config` open `extensions.systemAddon.update.url` and change %CHANNEL% to `release-sysaddon`
- Add-on manager activity can be monitored by setting
extensions.logging.enabled
to 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