Addon Submission Pipeline¶
listed - Addon is viewable on AMO by end-users.
unlisted - Addon is available only to the addon uploader for download, and servable outside of AMO.
Language Pack - A translation pack for Gecko strings bundled as an addon.
Language packs now need to be signed (as of Gecko 60.1esr/61.0) to be run inside of Firefox. In order to do that our release process submits every language pack to AMO for signing.
In order to achieve this we have to contend with a few current restrictions of AMO itself, as well as Firefox the product, and correlate them with our release process.
Version number of the language pack is baked into the language pack itself.
AMO only accepts one copy of each language pack for each specific version (a new upload needs a new version)
AMO does not support “promoting” an upload to
listedif it was previously
AMO needs the first
listedversion of an addon to be submitted via the admin web interface manually, the first time.
Firefox, for every code check-in, builds an English (US) copy that is suitable for shipping to end users, as part of this build we generate the en-US language pack.
Once Release Management indicates we want to build a release, we kickoff the ‘promote’ phase of the release process, which starts the Localized Repackages, which generate each languages language pack.
The language packs get sent off to AMO on an addon submission task, this task submits and retries while it waits for AMO to sign the langpacks. Timing out (with a signal to retry the task) if needed.
The Addon Submission task is idempotent, so if a given langpack version is uploaded it will retrieve the same upload on subsequent calls (and resubmit any uploads which failed)
The Addon Submission task exposes the signed langpacks as task artifacts.
Beetmover moves the language packs to the release folder, allowing them to be easily downloaded by users not on AMO.
How to handle New Languages for Release¶
Once the promote phase is kicked off, any new language packs will fail the addon submission task, and require human intervention.
Go to the failed task, and look for its dependency on a nightly-l10n task, locally download the .xpi for the language in question.
Select the relevant language(s) to go to the extension detail page. [Screenshot 8]
Select to Upload a new version, to see the following page [Screenshot 9]
Summary can be simple “Language pack for ”
License is to be set to MPL 2.0
Submit this page with no further changes
Success! [Screenshot 20]
Go back and rerun the addon submission task that failed, to unblock the release.
What if I don’t do the important step in the manual process above?¶
If you forget to do the CHANGE to make the addon listed when manually uploading it above. The release can still be unblocked, AMO will see the requests and see “hey we have that version” and hand the release process back the unlisted version. HOWEVER this means, the new language pack will not be listed for this version of Firefox.
In order to make it listed we need a new build number (on a new buildid), relman may be ok with waiting for another RC, or they may be ok letting the new locale stay off AMO for the release cycle (until a dot release), this is mostly a value judgment on which path forward.
Screenshots relevant to above¶
Back to how to section ### 02 Back to how to section ### 03 Back to how to section ### 04 Back to how to section ### 05 Back to how to section ### 06 Back to how to section ### 07 Back to how to section ### 08 Back to how to section ### 09 Back to how to section ### 10 Back to how to section ### 11 Back to how to section ### 12 Back to how to section ### 13 Back to how to section ### 14 Back to how to section ### 15 Back to how to section ### 16 Back to how to section ### 17 Back to how to section ### 18 Back to how to section ### 19 Back to how to section ### 20 Back to how to section