Flexible Release Notes
Renaming “Releases“ to “Packages“
As of June, 2024 we re renaming “Releases“ to “Packages“ to be aligned with our Cloud products and avoid long running confusion with “Releases“ in Jira. Some areas of our App will still have release notion/naming due to technical limitations, namely:
API roots will still be called / release / while tags and descriptions in Swagger changed to packages
Webhook injectable variables will be called entity.*
Release notes injectable variables will be called release.*
JQL functions will still be called versionsOfReleases.. & issuesOfReleases..
Topics
- 1 Renaming “Releases“ to “Packages“
- 2 Overview and quick start guide
- 3 Release notes templates
- 4 Export options
- 4.1 Download as HTML
- 4.2 Download as AsciiDoc (Coming Soon)
- 4.3 Upload to Confluence
- 4.3.1 Getting started
- 4.3.1.1 Authentication via token (Confluence 7.9 or later)
- 4.3.1.1.1 Troubleshooting connectivity
- 4.3.1.2 Basic Authentication
- 4.3.1.2.1 Troubleshooting connectivity
- 4.3.1.1 Authentication via token (Confluence 7.9 or later)
- 4.3.2 Configuring the destination
- 4.3.3 Propagating Confluence link to Jira issues
- 4.3.1 Getting started
Overview and quick start guide
Release management app has embedded functionality for release notes generator. User can define multiple release notes templates for version and package and use them for the notes generation.
Release notes templates support rich text formatting. Furthermore, data from version or package (such as version or package fields, issues lists etc) could be automatically injected to the release body.
Quick start guide
In order to generate the first release notes follow a few simple steps:
Navigate to Release Notes tab in the main menu
Click create template button:
Specify template name and save a template with a default body:
Click
button
Choose version from a list an click button
Download generated release notes as HTML
Release notes templates
Templates operations
User can create, clone or delete release notes template.
Template type could be defined while release notes template creation and can not be changed after that.
Template body formatting and injectable variables
Following features are available for the rich text formatting:
Define text style
3 fonts are supported
Bold, Underlined, Italic styles
Define text colour and background
Text alignment
Insert numeric or bullet lists
Insert a link
Pictures
Code block
Also, the user can inject variables into the template body. The variables will be replaced to actual values from the selected version or package while the release notes generation.
The list of variables depends on template type: Version or Package.
Version variables
Name
Start date
Release date
Projected release date
Version delayed. "Not Delayed" or "Delayed" values will be injected to the notes depends on the version status
Description
Project name
Project key
User name. Name of a user who generated release notes
Current date. Date when release notes were generated.
Current timestamp. Date and time of release notes were generated.
Version specific custom properties
Package variables
Name
Start date
Release date
Projected release
Release delayed. "Not Delayed" or "Delayed" values will be injected to the notes depends on the package status
User name. Name of a user who generated release notes
Current date. Date when release notes were generated.
Current timestamp. Date and time of release notes were generated.
Package specific custom properties
JQL Table section
Table of issues based on JQL query could be added to the release notes body.
Use button to add a new table to the template.
Following configuration parameters are available for the table:
Name of the section. A section with the same name will be added to the release notes.
Section description. If the text is specified - it will be added as a plain text after the section name.
JQL variables. In order to build flexible JQL which will use data from the selected version or package the user can inject variables to JQL query. List of available variables depends on the template type
Version specific variables
Version name
Start date
Release date
Projected release date
Project key
User name
Current date
Current timestamp
Package specific variables
Start date
Release date
Projected release date
Versions in package
User name
Current date
Current timestamp
JQL query to extract an issue list.
If the option is enabled the section will be rendered if JQL will return 0 rows. Otherwise, the section will not be rendered at all.
If this option is enabled all the issue will be grouped by respected Jira Epics.
The message which will be injected to a template if JQL will return 0 rows. This option will be working in case a switcher #5 is turned on.
Columns to be shown in the table. User can select the majority standard and custom Jira fields. See details in the chapter below.
Custom properties in JQL
You can also use custom properties for versions and package to define JQL. If you do we will disable JQL validation, therefore suggest to enter a valid JQL with some hard-coded values and then change it to injectable variables.
Columns configuration
On the "Columns" tab the user can define a list of columns to be presented the table.
Majority of standard fields and custom fields are available there. We also provide 2 (two) additional "CALCULATED" fields to outline
Parent Epic Name - link to parent epic (if any) with Name to display
Parent Epic Status - status of the parent epic
Also, the user can define various render type where it is applicable.
Available render types are:
Text - just a plan text
Link - link to a presented entity. E.g. issue, user, component, label etc.
Icon - icon for the defined value. For instance issue type icon.
User can change columns order.
Package Versions section
For package templates you can pick up a "Package versions" table to outline the specific components and it's versions comprising your package.
The output of the table looks like the following
Environments Table section
If you want to add Deployment Environments details to your Release Notes you can add "Environments table" to your template.
Thus you can show not only the scope of new package / version but also where it's deployed until now and specif build numbers. This might be very useful for rolling updates to multiple geo-distributed environments.
The output of the "Environments table" looks like the following:
The feature could be used for both version-specific and package-specific templates. For package-specific templates the table will show all the included versions and their Deployed Environments, e.g.
Your own variables
You can define a set of free text variables that you would need to populate with each and every report generation. This is a useful workaround for the custom fields that we do not support for versions and package. Also might be a solution to extend our standard variables list with your own list.
To add one click "+ Free text variable" and name it accordingly
Once you click "Generate" you will be asked to select a version and package as well as specify all free text variables for your notes
Export options
Download as HTML
The output on Release Notes could be downloaded as HTML
You can use it to Copy/Paste into MS Word, Google Docs, Confluence and any other wiki with (almost) no changes to layout. See other options below plus Upcoming Features for more formats we plan to support shortly.
Download as AsciiDoc (Coming Soon)
AsciiDoc is a lightweight markup language that helps you concentrate on writing content rather than being distracted by complex word processors, bury the content in XML schemas like DocBook, or battle with finicky WYSIWYG editors. Read more.
With Flexible Release Notes in Release Management App you can now download your notes in AsciiDoc format.
Upload to Confluence
To substitute “Copy/Paste to Confluence” we implemented a direct integration with Confluence to upload into one of your available spaces.
Getting started
Authentication via token (Confluence 7.9 or later)
In order to upload your release notes to Confluence Release App need to authenticate to act on behalf of user.
We suggest token-based authentication as default scenario. This is available in Confluence version 7.9 or later.
Please navigate to Atlassian documentation on How to Use Personal Access Tokens.
We keep your token ONLY in your browser storage in encrypted way to use during next uploads.
Troubleshooting connectivity
Token based authentication should work out of the box w/o any fuss. In case there are some issues with that and you can't upload you release notes to confluence we suggest to assure there's a connectivity established from Jira Server to Confluence server via HTTPS.
Basic Authentication
Less secured authentication option for Confluence version 7.9 or later is "Basic Authentication". Also default for previous versions of Confluence.
Basic authentication requires you to enter login/password of your Confluence user.
Troubleshooting connectivity
With basic authentication there's usually some fuss with connectivity.
Sometimes upload to confluence might not out of the box as it depends on your Confluence Server configuration.
If you experience the following issue:
... it's because Cross-Origin Resource Sharing (CORS) is not enabled for your Confluence Server as result the requests which are coming from Jira are not accepted.
To overcome please follow the instructions below
Stop Confluence server
Navigate to your confluence home directory (Usually for Linux: /opt/atlassian/confluence/)
Open confluence_home_directory/confluence/WEB-INF/
Backup web.xml
Open web.xml for editing
Add the flowing code block after the last <filter>...</filter>.
<filter> <filter-name>CorsFilter</filter-name> <filter-class >org.apache.catalina.filters.CorsFilter</filter-class > <init-param> <param-name>cors.allowed.origins</param-name> <param-value>https://jira.your_company_domain.com</param-value> </init-param> <init-param> <param-name>cors.allowed.methods</param-name> <param-value>OPTIONS,GET,POST,PUT,DELETE</param-value> </init-param> <init-param> <param-name>cors.exposed.headers</param-name> <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value> </init-param> <init-param> <param-name>cors.allowed.headers</param-name> <param-value>X-Atlassian-Token,Authorization, Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value> </init-param> <init-param> <param-name>cors.support.credentials</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CorsFilter</filter-name> <url-pattern>/rest/api/*</url-pattern> </filter-mapping>
Save changes
Start Confluence server and make sure that the server has been successfully started. If no, restore web.xml from backup
Also, the Jira host should be whitelisted in the confluence admin panel.
In order to do so:
Could you please try to dop the following:
1. Open Administration
2. Navigate to whitelist
3. Turn on a whitelist
4. Add your Jira host and click the checkbox “All incoming“
5. Test Jira URL
Configuring the destination
If you already connected to confluence you will see the following dialog to help us define the destination to upload your release notes
You would need to specify
Confluence Space to shortlist the parent pages
Parent page - any selected page within the Space defined
Page title - you can define a custom name of use some of our version/package variables to include in the naming. If such name already exists we will create a new version of the document.
Click “Export“.
Navigating to Confluence
Once our App successfully uploaded your release notes to Confluence, the following confirmation will be shown
Click on the link specified to navigate to your release notes in confluence.
Propagating Confluence link to Jira issues
You have an option to automatically add Confluence link with generated notes to all encompassing Epics. To do so turn on "Add release notes link to epics" toggle before you push to Confluence.
Here's the link to generated notes from Jira issue view: