Release Notes for XWiki 15.2

Last modified by Manuel Leduc on 2023/04/19

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 provides 2 new features: a dedicated UI to see what's new in the XWiki ecosystem directly inside XWiki instances, and a new macro to easily display icons in wiki pages. Besides those features, it also includes a lot of bug fixes and some fixes for important security vulnerabilities.

The following regressions were introduced in this release (and found after it was released). Please check them out and if they impact you we recommend waiting to upgrade to a version where they are fixed.

New and Noteworthy (since XWiki 15.1)

Full list of issues fixed and Dashboard for XWiki 15.2.

For Users

Icon Macro

 
A new icon macro has been introduced. It supports displaying an icon from the current or a chosen icon set and can thus be used to display icons that are consistent with XWiki's UI.

What's New in XWiki

 
Displays news about XWiki and its ecosystem, directly into your XWiki instance.

Miscellaneous

  • Responsive Content in PDF Export: XWiki's user interface (UI) adapts automatically to the screen size (i.e. it's responsive), thanks to Bootstrap's grid system, and this sometimes applies even to the wiki page content. For instance the page content could be split into columns, the number of columns depending on the available screen width: a single column on extra small devices, 2 columns on small devices, 3 columns on medium and large devices. When exporting such a page to PDF the outcome can be different than what you see in view mode because the available width depends on the print page size which is different than the screen size. Starting with this version we're adapting Bootstrap's grid system for print media, in order to have a more predictable outcome:

    • extra small print: anything less than A4 portrait width => should match the behaviour from extra small screens
    • small print: A4 portrait up to A4 landscape => should match the behaviour from small screens
    • medium print: A4 landscape up to A3 landscape => should match the behaviour from medium screens
    • large print: A3 landscape and up => should match the behaviour from large screens

    By default the PDF export uses the A4 print page size so it should match the behaviour from small screens. See the PDF Export Application for more information.

For Admins

No changes!

For Developers

  • Add parameters to the CKEditor html conversion request: A new xwiki:ckeditor:convertHTML event is send before a request to convert some content to HTML is sent by CKEditor. Listeners can add new request parameters by add properties on the data object send with the event. The example below show how to add an example parameter with value 1.

    $(document).on('xwiki:ckeditor:convertHTML', function(event, data) {
        data.example = 1;
    });
  • Allow to chose conflict fallback version when merging: The storage merge API have been improved in order to allow consumers of the API to define what should be the fallback versions to use in case of merging conflicts: by default the version is still the current version element, but it's now also possible to chose the next version element.

Upgrades

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

Translations

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 111Jira Tickets Marked as Fixed in the Release Notes
Chrome30.pngGoogle Chrome 112Tests run and results
Edge30.pngMicrosoft Edge 111Not 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.1Not Tested
mariadb.pngMariaDB 10.11Jira Tickets Marked as Fixed in the Release Notes
mysql.pngMySQL 8Not Tested
postgresql.pngPostgreSQL 15Tests run and results
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.73
jetty-icon.pngJetty 10.0.12 (XWiki Standalone packaging)Not Tested
jetty-icon.pngJetty 10.0.12Not 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.

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
    • xwiki.properties
    • web.xml
    • hibernate.cfg.xml
  • Add xwiki.store.migration=1 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.2

HTML Cleaning behaviour changed

To fix a security vulnerability, restricted HTML cleaning now removes form-related HTML elements (in particular, form, input, select, textarea, and button). This should only affect HTML and raw macros that are authored by users without script right. In case of any issues, they can be allowed again by adding them to the xml.htmlElementSanitizer.extraAllowedTags configuration option in xwiki.properties.

New restrictions on document revisions

Old or deleted revisions of documents are displayed in a restricted mode that prevents the execution of script macros. This also affects the rendered diff. This may lead to unexpected errors, a warning for this is displayed for advanced users or if there is an actual error in the output. The same applies to the edit action if the request is not verified with a form token - the standard ways for creating documents shouldn't be affected by this but custom implementations might need to be adapted to avoid being affected by this change. In case you're using a lot of script macros in regular content, you could consider creating and using wiki macros instead that cover your most-used script features.

Form token required on the REST API

The REST API now requires a form token for certain requests, see  its documentation for details.

API Breakages

The following APIs were modified since XWiki 15.1:

Real breakages

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

  • Change needed to provide a merge operation taking into account the configuration: we cannot provide a default method as it would wrongly give the feeling that the operation succeeded. We consider this breaking change acceptable since it's unlikely anyone directly implements this interface.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:


      ## New:
      method org.xwiki.store.merge.MergeManagerResult<com.xpn.xwiki.objects.ElementInterface, java.lang.Object> com.xpn.xwiki.objects.ElementInterface::merge(com.xpn.xwiki.objects.ElementInterface, com.xpn.xwiki.objects.ElementInterface, com.xpn.xwiki.doc.merge.MergeConfiguration, com.xpn.xwiki.XWikiContext)

Unstable APIs

Not real backward compatibility breakages since they were done on APIs marked @Unstable (a.k.a Young APIs). Thus it's part of the contract that they can be broken until they become stable. They're listed purely for reference in case you decided to still use them (and thus agreed to be broken).

  • Young API
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:


      ## New:
      method int java.lang.Comparable<T>::compareTo(T) @ org.xwiki.whatsnew.NewsSourceItem

Credits

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

  • Alex Cotiugă 
  • Jesse Veentjer 
  • Manuel Leduc 
  • Marius Dumitru Florea 
  • Michael Hamann 
  • Oana-Lavinia Florean 
  • Sereza7 
  • Simon Urli 
  • Simpel 
  • Thomas Mortagne 
  • Vincent Massol

Get Connected