Release Management/Release Notes: Difference between revisions

Included steps for when adding a release note in Nucleus with a rollout
(Included steps for when adding a release note in Nucleus with a rollout)
 
(28 intermediate revisions by 4 users not shown)
Line 1: Line 1:
=Release Notes=
{{DISPLAYTITLE:The Firefox release notes process}}
<p style="font-size: larger; font-weight:bold;">This page explains how the release management team prepares release notes for Firefox.</p>


==What's the purpose of release notes?==
Release notes are a central source of information about changes in each Firefox release. They're mainly aimed at advanced and technical users of Firefox who want to be informed about the changes in Firefox's latest updates. They may be web developers, IT managers who deploy Firefox for their users, or people who need to know all the details of the browser they use to accomplish their work.  Technical journalists also follow our release notes in order to write stories on changes in Firefox.


==How you can help with release notes==
== About Firefox Release Notes ==
;1. Nominate fixes and features!
Every four weeks, Firefox desktop, Firefox for Android, and Firefox for iOS release a new version of the browser. We publish release notes on [https://www.mozilla.org/firefox/releases/ mozilla.org] for an audience of web developers, tech press, and advanced and technical users of Firefox who want to be informed about the changes in Firefox's latest updates.
Anyone can go to a bug in bugzilla.mozilla.org, and nominate fixes or changes for release notes. Open the "Tracking Flags" menu on the right side of the page. Then please set the relnote-firefox: flag to "?". Release management checks this flag regularly.  
The release notes page lists notable new features, changes, or unfixed critical bugs for a specific release of Firefox.  


A form will pop up in the Bugzilla comments box, asking for your suggested wording for the note and an optional url to link to further documentation.  
For complex software such as Firefox with thousands of patches during a cycle and external contributors, tracking what should be noted in release notes is not always easy. Adding release notes content is the responsibility of the release management team, as requested by engineering/product. Release management monitor patches that land in Central during the nightly cycle and will ask about potential release note inclusion. However, release management also relies on Engineering/Product to nominate when applicable.  


;2. Explain the fix
'''See [https://wiki.mozilla.org/Release_Management/Release_Notes_Nomination Firefox Release Notes Nomination ] for information on how to nominate release notes for Firefox.'''
If your fix or other project should be in release notes, tell us what it did, what it means, and what the users and tech press should know. Ideally, we link from each note to an MDN page, a blog post hosted somewhere on mozilla.org, or even a wiki page for users to understand changes, fixes, and new features.  Details are very useful here.


==What release managers do for relnotes==
Examples of past release notes:
Release management may skim through the entire list of fixed bugs for a release to find possible release notes. That's often around 4000 bugs!
* [https://www.mozilla.org/firefox/103.0/releasenotes/ Firefox 103 for Desktop]
* [https://www.mozilla.org/firefox/103.0beta/releasenotes/ Firefox 103 Beta for Desktop]
* [https://www.mozilla.org/firefox/103.0a1/releasenotes/ Firefox Nightly 103 for Desktop]
* [https://www.mozilla.org/firefox/android/103.0/releasenotes/ Firefox 103 for Android]
* [https://www.mozilla.org/firefox/ios/103.0/releasenotes/ Firefox 103 for iOS]


We also ask engineering managers and developer teams to tell us what note-worthy fixes are upcoming for aurora, beta, and release channels. We  check other sources like hacks.mozilla.org to find notable new work. In every release cycle, relman asks people on several engineering mailing lists to read release note drafts, review them, and suggest changes.  
Here is the full list of [https://www.mozilla.org/firefox/releases/ past Firefox release notes].


The release notes are written and managed in the [[Websites/Mozilla.org/Publishing|Nucleus interface]] available on https://nucleus.mozilla.org/.
Release notes on the Nightly channel are published on Merge Day at the start of a new cycle. They are maintained continuously during the Nightly cycle.  


Notable fixes and new features in more detail for developers can be found at https://developer.mozilla.org/en-US/Firefox/Releases
Release notes for the Beta channel are published on the day we ship the first Firefox Beta of the cycle. They are maintained continuously during the Beta cycle.


==Aurora and Beta Cycles==
Release notes for the Release channel are published on the day we ship Firefox to our users. They are not maintained continuously during the Release Cycle. A new release note page is published for any dot releases during the release cycle.
The release management team maintains release notes for Firefox Desktop, Firefox for Android, and Firefox for iOS only. Release notes for other products are not in our scope at the moment.


For the first aurora release, from the nucleus interface:
For questions on the process please reach out on [https://mozilla.slack.com/archives/C9L102H6X #release-notes] internal Slack channel.
* Create a new aurora release
* Copy the requirements and description from the previous aurora release
* Make sure that is_public is disabled
* Ask for review to the various relevant teams (the list is available in the Release Team Calendar)
* Enable is_public on the aurora release day


For the first beta release, from the nucleus interface:
== Summarized process ==
* Copy the aurora release (is_public is going to be disabled)
# Release management creates a Nightly release notes page in Nucleus, makes the Nightly release notes public on Merge Day, and shares a link to the Nightly release notes on #release-notes.
* Update the title
# During the Nightly cycle, Release management monitors the relnote-firefox flag on Bugzilla and adds release notes for Nightly in Nucleus.
* Update the date
# Release management creates a Beta release notes page in Nucleus for the upcoming version, copies applicable notes from the Nightly to the Beta release notes,  makes the Beta release notes public in Nucleus after pushing Beta 1 live, and shares a link to the Beta release notes on #release-notes.
* Update the description text (since aurora Text links to information about what Developer Edition is)
# Release management creates a shared document for an editorial review, copy-pastes notes from Beta Release Notes to the shared document, and shares it on #release-notes and to the release-notes mailing list,
* Ask for review (cf aurora)
# Engineering/Product may add notes directly to the shared document.
* Enable is_public on the beta release day
# Release management continues to monitor the relnote-firefox flag on Bugzilla and add release notes in Nucleus and the shared document.
# Release management/Engineering/Product performs an editorial review in the shared document.
# Release management creates a release notes page in Nucleus for the upcoming version, and copies the reviewed release notes into Nucleus.
# Release management adds links to security advisories and developer documentation for the release, and shares a link to the staging release notes on #release-notes.
# Release management makes the release notes public in Nucleus after pushing the release live.


During the aurora/beta cycle:
== Nightly - Gathering of notes during the Nightly cycle ==
* Scan the relnote-firefox "?" flags
* Try to find some important unresolved bugs
* Check if some features have not been disabled


==Release==
===At the start of the Nightly cycle===
* Same step as Beta
* Make a copy of the previous Nightly Release in Nucleus.
* Once the notes have been signed off and the release is live, ''is_public'' has to be turn on.
** Update the version and release date.
** Remove the release notes from the previous release, leaving only the nightly-only release notes.
*** Ensure the note includes the nightly version that introduced it, for example:
**** “Starting with Firefox 113, nightly builds…”
**** “Starting with Firefox 112, nightly users…”
*** Ensure to rank the nightly carry over release notes at the bottom.
* Publish the Nightly release notes after central is bumped.
* Share a link to the Nightly Release Notes on [https://mozilla.slack.com/archives/C9L102H6X #release-notes] internal Slack channel.
* Create a copy of [https://docs.google.com/document/d/1w0oz7NSHrz81KKA7FNiRHRsyhCtz5o3PVnMAKYWEEoQ/edit draft release notes doc template]
** Update the version and dates.
** Ensure the document is shared with edit access for Mozilla.


=Product Details=
===Daily during the Nightly cycle===
* These live in [http://viewvc.svn.mozilla.org/vc/libs/product-details/ svn]
* Look through all patches that land in central via [https://whattrainisitnow.com/nightly/ whattrainisitnow.com]
* (Add a link to how to get access)
** Identify if any patch is a candidate for release note nomination.
*** Example: New feature or behavior change.
** Needinfo the bug assignee and request if it should be considered for release note nomination
*** "'':assignee'' could you please consider nominating this for a relnote? https://wiki.mozilla.org/Release_Management/Release_Notes_Nomination"
* Review bugs that were nominated for release note inclusion.
** Check if the wording is appropriate.
** Check if the patch is nightly or early beta only.
** Check the patches that landed. If the changes are behind a pref then check if the pref value is IS_NIGHTLY_BUILD, or IS_EARLY_BETA_OR_EARLIER
** Add the release note in Nucleus.
*** Add the appropriate Tag.
*** Add the bug number in the Bug field.
*** If the note is Nightly only use a html tag to indicate it’s nightly only.
** If the release note is not Nightly only comment on the bug to inform it was added to nightly.
*** "Thanks, added to the Nightly release notes. Keeping the relnote? flag open to keep it on the radar for inclusion in our final release notes."
** If the release note is Nightly only:
*** Set the relnote flag to ''nightly+'' and add a comment:
**** "Thanks, added to the Nightly release notes"


==How to update productdetails==
== Beta - Refining notes during the Beta cycle ==
Product details should be updated for Beta and Release after QE signs off on that push. For example, QE will email release-drivers mailing list with the subject line, "[Desktop] Firefox 37.0b3 updates on beta channel signed off by QE". This means 37.0b3 is already live on the beta channel and QE has tested that the updates work.


Note: Currently we can't update product details for RC builds. (See [https://bugzilla.mozilla.org/show_bug.cgi?id=1192197 Bug 1192197]).  
===At the start of the Beta cycle===
* Create a new beta release in Nucleus.
** Copy the release notes from nightly that are riding the train.
* Copy release notes to the release notes draft document.
* Publish the release notes after pushing Beta 1 live.
* Share a link to the Beta Release Notes on [https://mozilla.slack.com/archives/C9L102H6X #release-notes] internal Slack channel.
** "FxNNN beta preliminary release notes: https://www.mozilla.org/firefox/NNN.0beta/releasenotes/. If you know of anything worth mentioning but is not yet listed, please reach out or nominate it for a release note in Bugzilla. We will follow up with a link to the Firefox NNN Release Notes document."
* Share a link to the draft release notes doc on [https://mozilla.slack.com/archives/C9L102H6X #release-notes] internal Slack channel. Include a link to the draft document and the submission deadline.
{| class="wikitable"
|-
| Hi! We're at the start of the FxNNN Beta cycle, which means it is time for a new release notes cycle!
Draft template for the Firefox NNN Release Notes is here.
The DEADLINE for submissions is ''Month Day, Year''.
This will give us time to make necessary edits and/or changes before publishing on ''Month Day, Year''.
Note: We are still monitoring relnote nomination in bugzilla via setting relnote-firefox? for FxNNN.
|}
* Send an email to the [https://groups.google.com/a/mozilla.com/g/release-notes release-notes] internal mail group. Include a link to the draft document and the submission deadline.
** Example: https://groups.google.com/a/mozilla.com/g/release-notes/c/swrd1tuRejA


Updating for aurora:
===Daily during the Beta cycle===
follow the steps below, but modifying FIREFOX_AURORA.php and mobile_alpha_version.php, for example from 38.0a2 to 39.0a2. History does not need to be updated.  
* Review bugs that were nominated for release note inclusion.
** Check if the wording is appropriate.
** Add the release note in Nucleus and the draft document.
*** Add the appropriate Tag.
*** Add the bug number in the Bug field.
** Comment on the bug to inform that the note was added to Beta.
* If an uplift in beta is to enable a feature to ride the train, ensure to remove the nightly only note from the current nightly release notes where applicable.


Updating for esr:
===Midway through the Beta Cycle===
modify FIREFOX_ESR.php (and potentially FIREFOX_ESR_NEXT), then modify history/firefoxHistory.class.php to add the esr number to the section listing security and stability releases.  
* Send a reminder on the  [https://mozilla.slack.com/archives/C9L102H6X #release-notes] internal Slack channel. Include a link to the draft document and the submission deadline. 
{| class="wikitable"
|-
| Hi! We're at the mid-point of the FxNNN Beta cycle, which means it is time for a release notes reminder!
Draft template for the Firefox NNN Release Notes are here.
The DEADLINE for submissions is ''Month Day, Year''.
This will give us time to make necessary edits and/or changes before publishing on ''Month Day, Year''.
Note: We are still monitoring relnote nomination in bugzilla via setting relnote-firefox? for FxNNN.
|}
* Send a reminder email to the [https://groups.google.com/a/mozilla.com/g/release-notes release-notes] internal mail group. Include a link to the draft document and the submission deadline.


== Release - Finalizing notes ==


Note that in the history classes, there's a stability release section for .1s  (and esrs) and a release section for .0s.
===Day before the release notes deadline===
* Send a reminder on the  [https://mozilla.slack.com/archives/C9L102H6X #release-notes] internal Slack channel. Reply to a thread of the previous reminder, but select to also send to channel.


===Day after the release notes deadline===
* Add a release note for new contributors
** See [https://github.com/mozilla/Relman/wiki/Running-new-contributor-script Running new contributor script] for instructions on the script.
** Use the Community category when adding the release note.
* Review the draft release notes document.
* Inform the Release Management team the document is ready for peer review.
** Another member of the team will review the release notes for clarity and/or to suggest improvements.
* Create a new release in Nucleus for Desktop, Android, and iOS.
* Add release notes from the draft release notes document.
** Add the appropriate Tag.
** Order the release notes via the ''sort num'', the order will be from highest number to lowest. Otherwise, the default order is based when the release notes were added to the release.
** Group items that belong to a category in the same order. For example, items with WebRTC can be grouped together.
** If the release note covers a feature that is part of a rollout and not enabled by default then enable '''Progressive rollout'''.
*** If rollout is only targetted at specific countries then select ''Relevant countries'' from the list of '''Available relevant countries''' 
* Set the relnote tracking flag to XXX+
* Share a link to the staged Release Notes on [https://mozilla.slack.com/archives/C9L102H6X #release-notes] internal Slack channel.
{| class="wikitable"
|-
| NNN.0 Release notes are now available on the staging server.
If there are any wording suggestions or last minute additions, please reply to this thread.
* ''link to staging Desktop release notes''
* ''link to staging Android release notes''
* ''link to staging iOS release notes''
|}
* When available add links to security advisories and developer documentation.


<pre>
== Dot-Release Notes ==
Need to checkout libs/product-details:
There are a few specifics to release notes for a dot-release.
    svn co svn+ssh://'youremail'@svn.mozilla.org/libs/product-details product-details
### in product-details
% ls
README                      json                        regionDetails.class.php
export_json.php              localeDetails.class.php      regions
firefoxDetails.class.php    mobileDetails.class.php      thunderbirdBuildDetails.php
firefoxDetails.class.php~    mobileDetails.class.php~    thunderbirdDetails.class.php
history                      productDetails.class.php


% vim LATEST_FIREFOX_DEVEL_VERSION.php
===During dot release preperation===
# update to most recent version
* Evaluate if an uplift requires a release note
-   const LATEST_FIREFOX_DEVEL_VERSION = '33.0b4';
* Create a release in Nucleus.
+    const LATEST_FIREFOX_DEVEL_VERSION = '33.0b5';
** Add the release notes. Include the bug number indicated in a link between parentheses at the end.
* Add a link to the reference release notes for the major version e.g.: Reference link to [https://www.mozilla.org/firefox/102.0/releasenotes/ 102.0 release notes].
* Share a link to the staged Release Notes on [https://mozilla.slack.com/archives/C9L102H6X #release-notes] internal Slack channel.


% vim LATEST_FIREFOX_RELEASED_DEVEL_VERSION.php
== Known Issues Release Notes ==
# update to most recent version
For some defects reported post-release go-live, it should be evaluated if it is useful to add a known issue to the release notes.
-    const LATEST_FIREFOX_RELEASED_DEVEL_VERSION = '33.0b4';
* Update the release notes to add a Known Issue.
+    const LATEST_FIREFOX_RELEASED_DEVEL_VERSION = '33.0b5';
** Include a link to the bug that is tracking the issue.
** If there are multiple releases on the same version include the Known Issue in the release and all dot release versions.
* After a fix for the issue has been released, edit the Known Issue:
** Format the release note text to strikethrough.
** Append the text with information in a bracket that includes the version that released the fix, for example “(Fixed in 120.0.1)”


% vim mobile_beta_version.php
== Release Notes Style Guide ==
# bump the const
Readers need to know what features are introduced/changed, the technical meaning of the feature, and the impact the feature will have on users.  
-const beta_version_ = '33.0b2';
+const beta_version_ = '33.0b4';


% vim history/firefoxHistory.class.php
* Aim to write in plain language:
# add the newest version
** Avoid using technical language. We should aim to make it easy for the reader to understand. Some technical terms may be necessary depending on the release note.
                '11.0b3' => '2012-02-17',
** Avoid using colloquialisms or idioms. These can be confusing for readers depending on their region or their native language.
+                '11.0b4' => '2012-02-24',
** Avoid using abbreviations. For example, "pref" should be "preference".
* Avoid mentioning about:config prefs
* For new or changed features focus on how it affects the user’s experience of Firefox, not what the software itself is doing.
** Example: "To prevent session loss for inexperienced macOS users, Firefox now requests the user’s permission to install itself if it is being run from a mounted .dmg file. This request is only made the first time Firefox is run on a user’s computer."
** This could be written as "To prevent session loss for macOS users who are running Firefox from a mounted .dmg file, they’ll now be prompted to finish installation. This permission prompt only appears the first time these users run Firefox on their computer."
* For bugs focus on how the user was impacted. Start the release note with a verb in the past tense, for example Fixed, Added, Removed.  
* For known issues focus on how the user is impacted. If a workaround exists ensure to use clear instructions on how to leverage the workaround.
* All URLs in release notes should be de-localized. Typically this means removing the 'en-US/' portion of the URL.
* A release note that applies to both Desktop and Android should be written once and associated with both releases.
* Don't link to bugs in the finalized release notes.
** NOTE:  Include links to bugs in dot release notes.
* Use full stops at the end of every note. The MDN [https://developer.mozilla.org/docs/MDN/Writing_guidelines/Writing_style_guide#writing_style Writing Style] is a good reference to follow for capitalization, contractions, numbers and numerals, pluralization, apostrophes and quotation marks, commas, hyphens, and spelling.


% vim history/mobileHistory.class.php
== Nucleus Additonal Information==
# add the newest version
Release notes are written and managed in [https://nucleus.mozilla.org Nucleus].
                '11.0b3' => '2012-02-17',
+                '11.0b4' => '2012-02-24',


% svn status
The release notes page on mozilla.org for a specific version will not be available while the is_public flag is not selected in Nucleus but it will be available on the staging instance of mozilla.org (www-dev.allizom.org).
M      history/mobileHistory.class.php
M      history/firefoxHistory.class.php
M      firefoxDetails.class.php
M      mobileDetails.class.php


% ./export_json.php
If a release is created in Nucleus but the release notes page doesn't have the is_public flag set to true, a "coming soon" page is displayed on mozilla.org.
% svn status
M      history/mobileHistory.class.php
M      history/firefoxHistory.class.php
M      firefoxDetails.class.php
M      mobileDetails.class.php
M      json/firefox_primary_builds.json
M      json/firefox_history_development_releases.json
M      json/mobile_details.json
M      json/mobile_history_development_releases.json
M      json/firefox_versions.json
M      json/firefox_beta_builds.json


% svn ci -m "11.0b4 released"
There are simplified URLs for release notes that do not contain the version number and will always redirect to the latest version for the channel as provided in product-details:
Sending        firefoxDetails.class.php
* Release: https://www.mozilla.org/firefox/notes/
Sending        history/firefoxHistory.class.php
* Beta: https://www.mozilla.org/firefox/beta/notes/
Sending        history/mobileHistory.class.php
* Nightly: https://www.mozilla.org/firefox/nightly/notes/
Sending        json/firefox_beta_builds.json
* ESR: https://www.mozilla.org/firefox/organizations/notes/
Sending        json/firefox_history_development_releases.json
Sending        json/firefox_primary_builds.json
Sending        json/firefox_versions.json
Sending        json/mobile_details.json
Sending        json/mobile_history_development_releases.json
Sending        mobileDetails.class.php
Transmitting file data ..........
Committed revision 102190.
# grab this commit rev


Mozilla.org syncs with Nucleus every 15mins, depending on CDN caching it may take up to 30mins for release notes to be available worldwide.


In Nucleus you should associate each note with a category. The notes will be grouped by category in the templated page on mozilla.org.
{| class="wikitable"
|-
! Tag (Category) !! Use Case
|-
| New || New features
|-
| Fixed || List of known Issues that have been fixed
|-
| Changed  || Important changes to browser interface/behavior that will be valuable for Firefox end-users to know about
|-
| Developer || Issues that are of special interest to Firefox Developer audience
|-
| HTML5 || Issues related to Web platform
|-
| Enterprise || Used to link to the enterprise release notes
|-
| Community || List of bugs fixed by community contributors this release
|-
|}


==Edit properties on mozilla.com==
The ''Is known issue'' checkbox is used for issues that are not resolved in this release. They are categorized under ''Unresolved'' in the templated page on mozilla.org.
### Now edit the mozilla.com repo
### you will need to go up a directory and checkout mozilla.com
### svn co svn+ssh://'youremail'@svn.mozilla.org/projects/mozilla.com mozilla.com
### you can make sure you have the current commit number that has your changes, by checking on http://svn.mozilla.org/libs/product-details/


% svn propedit svn:externals tags/stage/includes
=== Adding Images ===
# paste in the new commit rev from the libs/product-details push & save
Release notes can include images as follows:
Set new value for property 'svn:externals' on 'tags/stage/includes'
* Compress the image png with [https://tinypng.com/ tinypng.com]
* Use an appropriate filename that includes the release version.
* Commit the image to https://github.com/mozilla/release-notes-media/
** Please see the repo README for additional details.
* Use the image URL in the Nucleus release note with appropriate alt text.
* Example:
** Image Source: 'https://github.com/mozilla/release-notes-media/blob/main/media/115_devtools.png'
** Image URL: 'https://www.mozilla.org/media/img/firefox/releasenotes/note-images/115_devtools.png'
** Release Note: https://nucleus.mozilla.org/admin/rna/note/789608/change/
* The <code><img></code> tag can also be used, which also allows the use of <code>height</code> and <code>width</code> attributes if resizing is necessary.
** NOTE: The <code>height</code> and <code>width</code> attributes <b>must</b> be specified before the <code>alt</code> attribute or the image will not appear in the preview pane. It will still appear as expected in Bedrock, however.


% svn propedit svn:externals tags/production/includes
[[category:Release_Management|Release Notes]]
# paste in the new commit rev from the libs/product-details push & save
[[category:Release_Management:Processes|Release Notes]]
Set new value for property 'svn:externals' on 'tags/production/includes'
 
# probably want to update before trying to commit these
% svn up
 
% svn diff
 
Property changes on: tags/stage/includes
___________________________________________________________________
Modified: svn:externals
  - product-details -r101880 http://svn.mozilla.org/libs/product-details
certs http://svn.mozilla.org/libs/certs
  + product-details -r102190 http://svn.mozilla.org/libs/product-details
certs http://svn.mozilla.org/libs/certs
 
 
Property changes on: tags/production/includes
___________________________________________________________________
Modified: svn:externals
  - product-details -r101880 http://svn.mozilla.org/libs/product-details
certs http://svn.mozilla.org/libs/certs
  + product-details -r102190 http://svn.mozilla.org/libs/product-details
certs http://svn.mozilla.org/libs/certs
 
 
% svn ci -m "11.0b4 released"                       
Sending        tags/production/includes
Sending        tags/stage/includes
Committed revision 102191.
 
 
# Mozilla.org updates the product details every 5 (or so) minutes
</pre>
 
=Updating Web Buttons=
Now that the product-details and mozilla.com externals have been updated, you want the buttons on pages like:
 
* Release: https://www.mozilla.org/firefox/new/
* Beta: http://www.mozilla.org/firefox/channel/#beta
* Aurora: https://www.mozilla.org/firefox/channel/#aurora
* ESR: https://www.mozilla.org/firefox/organizations/all/
 
To have the correct binary download links. 
 
 
After you update product details, within 30 minutes, the web pages will be refreshed with the current information.
 
=Troubleshooting=
* If you get an error like "svn: Entry '/Users/synergy/Dropbox/Mozilla/relman/mozilla-europe.org/trunk/sv-SE' has unexpectedly changed special status" when trying to commit, do a revert `svn revert -R .` then `svn up` and try again, if that still fails - re-pull the repo.
* If you can't get to bedrock and the big red button, check that:
** you are on the VPN
** you don't have https everywhere installed, and are connecting through http
 
If all else fails ask on #MOC or #www
 
[[category:Release_Management|R]]
273

edits