Note: These activities should be completed before or at the same time we have the merge for the next major release of Firefox.
Using Docker to quickly add versions and milestones without the UI
- You will need to be in the
editcomponentspermissions group for this to work.
- Install Docker support for your operating system https://www.docker.com/get-started
- You will need to clone the saneutils Github repository as you will need to configure the config.json file to edit milestones and versions.
git clone https://github.com/mozilla-bteam/saneutils saneutils; cd saneutils
cp config.json.example config.json
- You will need to look at your current browser cookies for the bugzilla.mozilla.org site and find the Bugzilla_login and Bugzilla_logincookie values. There are cookie manager extensions that make this simpler.
- Edit the config.json file and place those values in the bugzilla.mozilla.org section for the respective keys.
Example: Below is the command for editing the Firefox milestones.
docker run --rm -ti -v "$(pwd)/config.json:/app/config.json" mozillabteam/saneutils ./edit-milestones.pl --urlbase https://bugzilla.mozilla.org --product Firefox
This will pull the
mozillabteam/saneutils Docker image locally and then spawn vim with a list of all milestones for Firefox loaded.
The format for the milestones is:
id:0000 100 Milestone 10 [x]
id:0000 is an identifier used to track changes to the milestone (such as renames),
100 is the sort key (used for sorting the milestones in the UI) and
Milestone 10 is the milestone name.
The portion inside square braces (
) is the active status. It can be either
[x] for enabled or
[_] for disabled.
The workflow here involves making changes using the text editor, saving the file,
and exiting. Any changes made to the file will be applied to the system passed to
so if a mistake is made simply quit the editor without saving.
Changes made to the sort key, name, and active checkbox will cause updates to the milestone. Renames of milestones with no bugs are simple renames; renames of milestones *with* bugs will cause bug updates to happen, so it is advisable to do this with a Bugzilla account that is a *silent user*.
Adding new milestones is done by adding new lines without the
id:XXXX prefix, such as:
2710 Firefox 71 [x]
Note all three elements (sortkey, name, active checkbox) are required. Make sure the sortkey follows the same spacing as the current product so that they are consistent. The gaps allow for the the default milestone
--- to be moved to specific locations in the list as described in the bug report.
Finally, deleting lines will cause those milestones to be deleted -- but you cannot delete milestones that have bugs associated.
Repeat the above Docker command for each product, replacing Firefox with the next product name. Remember to use quotes for product names with spaces in it.
Updating versions is very similar to the above Docker command. Instead of using
./edit-milestones.pl, change it to
./edit-versions.pl before executing.
The text that will be edited it also very similar except there is no value for sortkey so that column is omitted.
Adding a new "rapid release" version to Firefox/Core/Thunderbird
Status and Release Flags
The flags for release status and tracking are created with the release tracking flags administration page, not the "custom fields" page.
This is now done by the Release Management team.
- Create a copy of the current release's version of the following flags, updating the name and sort-order:
- copy cf_tracking_firefoxN to cf_tracking_firefoxN+1
- copy cf_status_firefoxN to cf_status_firefoxN+1
Only members of the
mozilla-next-drivers group may set a tracking flag to something other than ?. Members of the
edtibugs group can set status flags or set a tracking flag to ?.
- copy cf_tracking_thunderbirdN to cf_tracking_thunderbirdN+1
- copy cf_status_thunderbirdN to cf_status_thunderbirdN_1
- edit the flags for previous (now released) versions (N-3) and uncheck 'active':
- update cf_tracking_firefox_relnote (which is relnote-firefox in the UI) (add N+1, disable N-3 except for ESR)
- update the current esr tracking field: cf_tracking_firefox_esr* (add N+2)
- update cf_tracking_fxios (which is tracking-fxios in the UI) (add N+1, disable N-3 and dot releases)
- Use the milestone admin page to add new milestones
- Move the --- milestone marker to between N-1 and N for all products where a milestone was added
- Leave all milestones from most recent ESR to nightly (and '---' and 'Future') active. Disable others
- Don't delete old milestones
- Calendar: "NN Branch"
- Chat Core: "NN Branch"
- Cloud Services: "NN Branch"
- Core: "NN Branch"
- DevTools: "NN Branch"
- Fenix: "NN Branch"
- Firefox: "NN Branch"
- Firefox Build System: "NN Branch"
- Focus: "NN Branch"
- GeckoView: "NN Branch"
- MailNews Core: "NN Branch"
- Remote Protocol: "NN Branch"
- Testing: "NN Branch
- Thunderbird: "NN Branch
- Toolkit: "NN Branch
- WebExtensions: "NN Branch"
Use the version admin page to add new versions.
- Calendar: "Thunderbird NN"
- Chat Core: "Thunderbird NN"
- Cloud Services: "Firefox NN"
- Core: "Firefox NN"
- DevTools: "Firefox NN"
- Fenix: "Firefox NN"
- Firefox: "Firefox NN"
- Firefox Build System: "Firefox NN"
- Focus: "Firefox NN"
- GeckoView: "Firefox NN"
- MailNews Core: "Thunderbird NN"
- Remote Protocol: "Firefox NN"
- SeaMonkey: "SeaMonkey N.0"
- Testing: "Firefox NN"
- Thunderbird: "Thunderbird NN"
- Toolkit: "Firefox NN"
- Web Compatibility: "Firefox NN"
- WebExtensions: "Firefox NN"
Adding a "rapid release" version to SeaMonkey
To determine the correct version number to add, check with a SeaMonkey owner first (Callek, or any member of the SeaMonkey Council).
these steps use 2.27 as an example.
use the release tracking flags admin page to:
- copy the prior flags and edit as per firefox
- copy cf_tracking_seamonkey226 to cf_tracking_seamonkey_227
- copy cf_status_seamonkey226 to cf_status_seamonkey_227
- deactivate old flags for previous (now released) versions (N-4)
- deactivate cf_tracking_seamonkey223 and cf_status_seamonkey223
use the milestone admin page to:
- add a new milestone "seamonkey2.27"
- move the --- milestone marker to between seamonkey2.26 and seamonkey2.27
use the version admin page to:
- add a new version "SeaMonkey 2.27 Branch"