Release Notes for XWiki 15.2-rc-1

Last modified by Ilie Andriuta on 2023/04/06

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 XWiki ecosystem directly in XWiki instances, and a new macro to allow display easily icons in XWiki pages. Besides those features, it also includes a lot of bug fixes and some fixes for important security vulnerabilities. Don't forget to check out the migration notes as it comes with few backward compatibility breakage.

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-rc-1.

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.

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

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-rc-1

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.

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 
  • dependabot[bot] 

Get Connected