Release Notes for XWiki 15.8

Last modified by Lucas Charpentier (Sereza7) on 2024/01/29

This is the release notes for XWiki Commons, XWiki Rendering and XWiki Platform. They share the same release notes as they are released together and have the same version.

This release comes with various look and feel improvements on buttons and continues the work on replacing the old livetable with livedata (here for the deleted document restore view). It also starts showing results regarding performance improvements induced by the caching of Velocity, especially around the skin execution in this version. Finally, new customization possibilities have been added to the PDF export for developers.

New and Noteworthy (since XWiki 15.7)

Full list of issues fixed and Dashboard for 15.8.

For Users

Buttons appearance

We made some changes on the visual aspect of buttons:

  • the gradient on the buttons background has been removed
  • buttons are now borderless, except for the default buttons since they have the same background as the default background

Live Data in Batch Restore

The list of deleted pages that is displayed when restoring a batch of pages uses Live Data instead of Livetable.

Increasing contrast

The info button of the Flamingo Theme is now increased to conform to the minimum contrast defined in the Web Content Accessibility Guidelines


  • Added keyboard navigation to the lightbox dropdown. The dropdown can now be opened from a keyboard and navigated with tabulator presses.

  • Added keyboard support to the "Media type" Solr search facet.

For Admins

  • Performance improvement in templates: Wiki skins and filesystem templates are now cached. In addition, the Velocity from Velocity templates (not yet those based on wiki syntax) is compiled to speed up following executions.

    The first performances tests suggest that the XWiki Standard skin is now up to 5 times faster thanks to this caching.

    It will continue to improve in upcoming versions of XWiki with the caching and compilation of Velocity (and other costly tasks) in other areas (templates located in JAR extensions, velocity scripts located in wiki content like UI extensions and panels, code macros, etc.).

  • Groups can be filtered by their title in groups livetables: It is now possible to filter groups by their title in the groups livetables or the access rights livetables. This is particularly helpful in case a group has a “pretty name” that is more user-friendly than the name of the group document.

For Developers

PDF Export Metadata

The PDF export template has a new field named "Metadata" that you can use to display additional information about the exported wiki pages in the PDF header or footer. You need to follow three steps:

  • Use the Metadata field to indicate the extra information you want to display. For instance, if you want to display the tags:
    {{velocity output="false"}}
      'data-tags': $stringtool.join($doc.getTagList(), ', ')
  • Use the Header or Footer fields to indicate where to display the metadata:
    {{html clean="false"}}
    Tags: <span class="pdf-doc-tags"></span>
  • Use the Style Sheet Extension object to inject the metadata in the PDF header or footer:
    h1[data-xwiki-document-reference] {
     string-set: doc-tags attr(data-tags);
    .pdf-doc-tags:before {
     content: string(doc-tags);

See the PDF Export Application documentation for more information.


  • Forced default image style: The default image style can now be forced, meaning that it will be used by default and a style must be selected.

  • Table of content entries customization: It is possible to decorate the Table of Content entries by providing a component with the TocEntryExtension role.

  • Velocity AST caching: VelocityEngine API now expose helpers to much easier to compile and cache the Velocity AST.

  • Added accessibility test overview: Now, builds with the property xwiki.test.ui.wcag property activated will create overview reports of the accessibility results. These reports will generate whatever the results are, and will contain statistics about the tests in the test suite.

  • ClassLoader name: The ClassLoaders associated to namespace are now implementing ClassLoader#getName() so you don't need to cast it to NamespaceURLClassLoader to access the namespace anymore.


The following runtime dependencies have been upgraded (they have a different release cycle than XWiki Commons, XWiki Rendering and XWiki Platform):


The following translations have been updated:

Tested Browsers & Databases

Here is the list of browsers we support and how they have been tested for this release:

 BrowserTested on:
Firefox30.pngMozilla Firefox 120Not Tested
Chrome30.pngGoogle Chrome 119Jira Tickets Marked as Fixed in the Release Notes
Edge30.pngMicrosoft Edge 119Not Tested
Safari30.pngSafari 16Not Tested

Here is the list of databases we support and how they have been tested for this release:

 DatabaseTested on:
hypersql.pngHyperSQL 2.7.2Not Tested
mariadb.pngMariaDB 11.1Not Tested
mysql.pngMySQL 8.2Jira Tickets Marked as Fixed in the Release Notes
postgresql.pngPostgreSQL 16Not Tested
oracle.pngOracle 19cNot Tested

Here is the list of Servlet Containers we support and how they have been tested for this release:

 Servlet ContainerTested on:
tomcat-icon.pngTomcat 9.0.83Jira Tickets Marked as Fixed in the Release Notes
jetty-icon.pngJetty 10.0.15 (XWiki Standalone packaging)Not Tested
jetty-icon.pngJetty 10.0.15Not Tested

Security Issues

Security issues are not listed in issue lists or dashboards to avoid disclosing ways to use them, but they will appear automatically in them once they're disclosed. See the XWiki Security Policy for more details.


We are working towards WCAG 2.1 level AA compliance.

Current status:

  • A total of 389157 automated tests are run.
  • 99.18% of our automated WCAG tests are passing. There are 1816 warnings left in the tests to fix (0.45%) and 1349 incomplete tests (0.34%), i.e. they need manual validation.
    • Note that the automated WCAG tests have 2 limitations: WCAG tests are executed only for UIs for which we have automated functional tests available, and the underlying library we use for testing (Axe Core) estimates that it catches only about 50% of WCAG issues. In the future we plan to also run manual WCAG tests once we've fixed all the issues we can catch automatically.
  • Accessibility violations can be seen on this filter result table.
  • The progress of fixing accessibility issues vs raising them can be seen on this status chart.

Known issues

Backward Compatibility and Migration Notes

General Notes

  • When upgrading make sure you compare and merge the following XWiki configuration files since some parameters may have been modified, removed or added:
    • xwiki.cfg
    • web.xml
    • hibernate.cfg.xml
  • Add in xwiki.cfg so that XWiki will attempt to automatically migrate your current database to any new schema. Make sure you backup your Database before doing anything.

Issues specific to XWiki 15.8

Notifications "Mark event as read" button

The computation of the "Mark the event as read" button in the notification area has been changed and is no longer dynamically injected with javascript. As a result if an extension is overriding the standard macro for displaying notification (and more specifically the macro displayNotificationEventSkeleton), the button might be lost. For getting it back in any versions of XWiki, extensions should insert the following code in the overridden macro:

<button class="notification-event-read-button btn btn-xs hidden" aria-label="$escapetool.xml($services.localization.render('notifications.macro.markEventAsRead'))"

Updated the #mainContentArea

Changed the #mainContentArea from a div to a main HTML element. Moreover, the document header breadcrumb is always excluded from this element. Note that this is especially important for inline editing, where the form position relative to the mainContentArea is changed.

API Breakages

The following APIs were modified since XWiki 15.7:

Real breakages

Real backward compatibility breakages that we have unwillingly accepted to do for the reasons mentioned in each violation below.

  • New API added to a component very unlikelly to have a custom implementation
    • Violation type:
    • Code:
      ## Old:

      ## New:
      method org.xwiki.velocity.VelocityTemplate org.xwiki.velocity.VelocityEngine::compile(java.lang.String, throws org.xwiki.velocity.XWikiVelocityException
  • New API added to a component very unlikelly to have a custom implementation
    • Violation type:
    • Code:
      ## Old:

      ## New:
      method void org.xwiki.velocity.VelocityEngine::evaluate(org.apache.velocity.context.Context,, java.lang.String, org.xwiki.velocity.VelocityTemplate) throws org.xwiki.velocity.XWikiVelocityException


The following people have contributed code and translations to this release (sorted alphabetically):

  • Clément Aubin
  • Dorian OUAKLI
  • Gankov Andrey
  • Manuel Leduc
  • Marius Dumitru Florea
  • Michael Hamann
  • Nikita Petrenko
  • Oana-Lavinia Florean
  • patmanizat
  • raphj
  • Sereza7
  • Simon Urli
  • Simpel
  • Thomas Mortagne
  • tuz-d
  • Vincent Massol

Get Connected