BMO/new-version

From MozillaWiki
< BMO
Jump to: navigation, search
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

Setup

  • You will need to be in the editcomponents permissions 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.

Milestones

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]

Where 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 --urlbase, 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.

Versions

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 canconfirm 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':
    • cf_tracking_firefoxN-3
    • cf_status_firefoxN-3
    • cf_tracking_thunderbirdN-3
    • cf_status_thunderbirdN-3
  • 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)

Milestones

  • 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

Products

Versions

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"
  • Firefox: "Firefox NN"
  • Firefox Build System: "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"