Release Notes Application

Last modified by Vincent Massol on 2024/03/25 00:11

cogManages Release Notes for software products (creation, reports)
Developed by

Vincent Massol

Active Installs7
0 Votes
LicenseGNU Lesser General Public License 2.1

Version 2.1 requires XWiki 14.10+

Installable with the Extension Manager


This release notes application is installed on and can be seen in action there.

Accessing the application

The Application can be accessed from the Application Index or from the Applications Panel.

From Applications Panel

Home Page

From the home page of the application, you can:


Example of a generated Release Note:


Adding Changes

A Release Notes is composed of changes. Each change is created as a page and the changes are then displayed inside the Release Note page using either the {{changes.../}} or the {{releasenotechanges/}} macros (see below for more details on those macros).

Right now, to add a new change, you need to navigate to ReleaseNotes.Data.WebHome. In the future you'll be able to add changes directly from the Release Note pages.


Example of viewing a given change:


Custom Reports

The application home page (and the Changes home page) offer the ability for users to generate their own custom Release Note change report. This is useful for example if you wish to see, for example, all user-related changes that happened between 2 product versions.


The form allows to choose the displayer to use. Currently we provide the following displayers:

  • Grid Displayer


  • Flow Displayer


  • Simple Displayer


  • List Displayer



The following macros are made available.


Get Release Notes change items and store them in a variable.


{{getChanges products="..." versions="..." audience="..." containsScreenshots="..." contextVariable="..."/}}


  • products: (Optional) The product for which to get changes for, e.g. XWiki. Defaults to all products.
  • versions: (Optional) The comma-separated list of versions for which to get changes, e.g. 1.2,2.5. Defaults to all versions.
  • audience: (Optional)The audience for which to get changes for, e.g. user. Defaults to all audience.
  • containsScreenshots: (Optional) Whether we include only changes with screenshots or not, e.g. true. Default to all changes (with and without screenshots)
  • contextVariable: (Mandatory) The variable name that will contain the list of release note change document references (as String), i.e. documents containing a ReleaseNotes.Code.Change.ChangeClass xobject.

Also note that HQL LIKE wildcards are allowed (e.g. ? and % characters). The >, <, >= and <= characters are also supported at a start of a numeric value (e.g. for versions).

Full Example:

{{getChanges products="XWiki" versions="12.%" audience="user" containsScreenshots="true" contextVariable="changeDocs"/}}

#foreach ($changeDoc in $changeDocs)
 * $changeDoc


Display Release Notes change items.


{{displayChanges displayer="..." displayEditLink="..." contextVariable="..."/}}


  • displayer: (Optional) The type of display to use to display the changes. Valid values are list, grid, flow, simple. Default is grid#. Note that you can create your own displayer since the default behavior is to include a displayer document located at <space where the app is installed, e.g. ReleaseNotes>.Code.Change.ChangeDisplayer<Capitalized displayer name>.
  • displayEditLink: (Optional) Whether to display a link to directly edit the change. Defaults to false
  • contextVariable: (Mandatory) The variable name containing the list of document reference strings pointing to documents containing a ReleaseNotes.Code.Change.ChangeClass xobject.


Display a full release notes for a product, version, etc, by reading an xobject from the current page having the following xproperty names: 

  • product
  • version. In addition the version is also extracted from the current document's parent reference. TODO: Clarify this.
  • released (whether the version has been released already or not)




NameOptionalAllowed valuesDefault valueDescription
exclusionsYesComma-separated listN/AReleaseNotes Application 2.1+ List of change references to exclude, e.g. ReleaseNotes.Data.XWiki.14\.9RC1.Entry002.WebHome, ReleaseNotes.Data.XWiki.14\.9RC1.Entry003.WebHome


When adding a new release notes, the template used is the one defined in the ReleaseNotes.Code.ReleaseNotesConfig page's xobject which allows to configure:

  • the default product name (used on the home page to pre-fill the form to add a new release note)
  • the reference to the template to use.


Creating a Template

When creating a release notes template, two velocity bindings are available to the template content:

  • product: the name of the product
  • version: the short version

Creating a Displayer

It's possible to add new Displayers. To add one, create a page at ReleaseNotes.Code.ChangesDisplayer<id> where <id> is the id of your new displayer. For example the Grid Displayer use the id Grid and is available at ReleaseNotes.Code.ChangesDisplayerGrid.

Inside your displayer page you can:

  • Include the ReleaseNotes.Code.DisplayerMacros page which has a few velocity Macros and some variables to help you
  • Access Velocity bindings:
    • changeItems: list of references to change pages to display
    • All {{changes}} macro parameter values: audience, products, versions, categories, importance, containsScreenshots, displayEditLink

Example (code for the Simple Displayer):

{{include reference="ReleaseNotes.Code.DisplayerMacros"/}}

## Inputs:
## - $changeItems
## - $displayEditLink
#foreach ($item in $changeItems)
  #set ($changesDoc = $xwiki.getDocument($item))
  #generateDisplayEditLink($$displayEditLink, $changesDoc)
 === $changesDoc.getValue('title')${displayEditLinkMarkup}===

  #displayScreenshots($changesDoc, true, false)

  #set ($description = $changesDoc.getValue('description'))
  #if ("$!description" != '')
    [[More details&gt;&gt;doc:$changesDoc.documentReference]]

Prerequisites & Installation Instructions

We recommend using the Extension Manager to install this extension (Make sure that the text "Installable with the Extension Manager" is displayed at the top right location on this page to know if this extension can be installed with the Extension Manager). Note that installing Extensions when being offline is currently not supported and you'd need to use some complex manual method.

You can also use the following manual method, which is useful if this extension cannot be installed with the Extension Manager or if you're using an old version of XWiki that doesn't have the Extension Manager:

  1. Log in the wiki with a user having Administration rights
  2. Go to the Administration page and select the Import category
  3. Follow the on-screen instructions to upload the downloaded XAR
  4. Click on the uploaded XAR and follow the instructions
  5. You'll also need to install all dependent Extensions that are not already installed in your wiki

A Release Notes Demo application is also available and can be installed using the Extension Manager using advanced search and the org.xwiki.contrib.releasenotes:application-releasenotes-demo extension id.

Release Notes




Dependencies for this extension (org.xwiki.contrib.releasenotes:application-releasenotes-ui 2.1):

Get Connected