Release Notes Guide¶
This page gives an overview of the release note process for Mantid.
Like all documentation, release notes are written in reStructuredText and processed using Sphinx along with Sphinx bootstrap theme and custom css. For the basics of how to format your release notes please see the Documentation Guide For Devs .
When to add release notes¶
Release notes are an important part of communicating with users about the new features and bugfixes in the next release of Mantid. This means that any piece of work that impacts on user experience or that has been requested by users will normally require a release note. Examples of the type of work normally requiring notes:-
New GUIs, algorithms, buttons, menus, documentation etc.
Work that will require users to change their workflow
Under the hood work that will make a noticeable difference to users e.g. improving loading speed
Updating user documentation
Making changes at the request of users
The following are examples of when release notes are not required:-
refactoring code in a way that does not alter the user experience
fixing compiler warnings
adding unit or system tests
updating developer documentation
If in doubt check with your team lead/manager for guidance.
How to write a release note¶
Release notes are intended for users and should be written with that audience in mind. Your note should contain enough information to convey the changes to a non-developer audience without containing lengthy details of exactly how the solution was implemented in the code base.
Avoid writing essays. If your new feature/bugfix requires lengthy explanations for users you should consider whether you need to add or update other documentation. You can then summarise the work in a couple of sentences in the release note and include a link to the more detailed information. Also consider using images or a gif walkthrough (see https://docs.mantidproject.org/nightly/release/v6.2.0/indirect_geometry.html for example) to help convey the information.
Developers are asked to check their spelling, punctuation and grammar.
Always start your release note with -
so that it will be formatted as a bullet point in the collated list, e.g. `` - A new release note.``.
Adding release notes¶
Release notes are added as new files in a pull request to avoid merge conflicts. Automated scripts then amalgamate these into the release notes available for users. If your work requires more than one note for the same subheading then it is fine to put them all in the same file. However, new release notes should not be added to any existing files.
Amending release notes¶
If you need to amend a release note from a previous Pull Request (PR) during sprint it is fine to do this as the automated script will update the release note. Provided developers use the naming conventions for files outlined below it should be easy to find the release note you wish to amend.
If the release note you wish to amend is within a Used
directory you will need to contact the Release Editor to discuss how to get the release note amended.
File naming conventions¶
Release note files need to be named in one of the following ways:-
Using the Pull Request (PR) number (preferred method)
Using the Issue number (to be used if multiple PRs stem from the same issue)
Files need to have unique names. By using either the Issue number or PR number this makes them easier to find if they need to be updated at a later date.
Files should always be in .rst format.
File location¶
Release note files need to be saved in the directory that best represents their position within the release notes. First identify which release version your note relates to e.g. v6.3.0
. Navigate to this directory and then navigate through the sub-directories until you reach a suitable sub heading. All notes need to be placed within a New_features
or Bugfixes
directory. For example a Bugfix release note for Engineering Diffraction should sit within /Diffraction/Engineering/Bugfixes
.
Release notes should not be placed in any directory outside of New_features
or Bugfixes
e.g. do not place release notes in /Diffraction/Engineering
. You should also not save release notes in any directory titled Used
as this is for notes that have already been collated into the release notes.
The only exception to this is for Algorithms and Fit Functions in the Framework Directory that additionally have Deprecated
and Removed
.
If you are uncertain where your release note should be see the Standard File Structure.
Adding sub-headings¶
There will be occasions when the range of standard headings is not suitable for your needs. If you want to add a sub-heading to the main headings (e.g. Diffraction, Workbench etc.) or another sub-heading (e.g. Powder Diffraction, Algorithms, MSlice), you need to do the following:-
Add a new directory into the correct part of the filing system. E.g. to add Algorithms to Workbench create the directory
/Workbench/Algorithm
. The directory name should not contain any spaces.Add
New_features
andBugfixes
directories within your new directory. The automated script only works with these directories.Update the top level release note file with your new heading and sub-headings. For each subheading you need to add an
amalgamate
statement with a link to each new directory to ensure the notes will be visible for users. For this example it may look something like this
Algorithms
----------
New features
############
.. amalgamate:: Workbench/Algorithm/New_features
Bugfixes
############
.. amalgamate:: Workbench/Algorithm/Bugfixes
Once all the directories are in place you can add your release note as a separate file as outlined above.
You can add sub-headings to a sub-heading if you would like (e.g. /Workbench/Algorithm/Fitting
) that is fine to do, so long as your new branch ends with the New_features
and Bugfixes
folders.
Adding images to release notes¶
Images or gif walkthroughs can be an excellent way to convey information easily and clearly. To add an image first save your image as a .png
or .gif
file in the ../docs/source/images/
folder.
In your release note add an empty line and then on a new line add the following sphinx directive
.. image:: ../../images/filenameOfYourImage.png
:align: center
Note that the recommended alignment is center and the align command is on the second line of the code block in alignment with the ../
at the start of the image link.
For the image to display correctly when collated please only link to ../../images
folder. This will mean that the individual release note will not look correct on building, however the upper level file will (see Previewing release notes below).
If you would like to add a walkthrough .gif
file then you need to use the .. figure::
directive instead of .. image::
. Your file should be saved in the images folder also.
If you are not sure how to create a walkthrough try using an application like ScreenToGif .
Previewing release notes¶
There are two ways you can preview release notes prior to them being merged in:-
1. A clean build of the docs folder. Delete the docs folder in your build folder and then rebuild the docs. WARNING - this may take some time. Once rebuilt open the upper level file you expect your release note to appear in e.g. framework.html
.
This is a good way to test that images appear correctly and that links work.
2. Via a Pull Request (PR): You can view the release note on Github and it will show it using basic .rst rendering. You cannot check all the features you might expect to see when the release note is merged in (e.g. you cannot verify links work) but it gives you an idea of how it might look.
How to review release notes¶
Reviewers are encouraged to review release notes as diligently as reviewing the functionality and code in a pull request. If you struggle to understand the release note the chances are a user will too. Check for spelling and grammar mistakes.
During release¶
During the release period the automated scripting is turned off and the Release Editor will manually amalgamate release notes as part of their role. This should have no impact on adding new release notes provided you continue to follow the conventions above and do not save any files in the Used
directories.
If you have any queries or concerns about release notes, particularly if you want to edit previous release notes, please contact the Release Editor.
Standard Release file structure¶
This is the basic directory structure that is available to you for release notes.
Diffraction (Main Heading)
Powder Diffraction (Sub-heading)
New features
Bugfixes
Engineering Diffraction (Sub-heading)
New features
Bugfixes
Single Crystal Diffraction (Sub-heading)
New features
Bugfixes
Direct Geometry (Main Heading)
General (Sub-heading)
New features
Bugfixes
CrystalField (Sub-heading)
New features
Bugfixes
MSlice (Sub-heading)
New features
Bugfixes
Framework (Main Heading)
Algorithms (Sub-heading)
New features
Bugfixes
Deprecated
Removed
Fit Functions (Sub-heading)
New features
Bugfixes
Deprecated
Removed
Data Objects (Sub-heading)
New features
Bugfixes
Python (Sub-heading)
New features
Bugfixes
Indirect Geometry (Main Heading)
New features
Bugfixes
Algorithms (Sub-heading)
New features
Bugfixes
Inelastic (Main Heading)
New features
Bugfixes
Algorithms (Sub-heading)
New features
Bugfixes
Mantid Workbench (Main Heading)
New features
Bugfixes
InstrumentViewer (Sub-heading)
New features
Bugfixes
SliceViewer (Sub-heading)
New features
Bugfixes
Muon (Main Heading)
Frequency Domain Analysis (Sub-heading)
Bugfixes
Muon Analysis (Sub-heading)
Bugfixes
Muon and Frequency Domain Analysis (Sub-heading)
Bugfixes
ALC (Sub-heading)
Bugfixes
Elemental Analysis (Sub-heading)
Bugfixes
Algorithms (Sub-heading)
Bugfixes
Reflectometry (Main Heading)
New features
Bugfixes
SANS (Main Heading)
New features
Bugfixes