Release Notes for XWiki 14.10.2

Last modified by Ilie Andriuta on 2023/01/04

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 is the first release of the new 14.10.x LTS branch (replacing the 13.10.x LTS). It is mainly a bugfix release that covers important issues that we have discovered since 14.10.1 has been released, but it also contains some improvments in code macro and include macro. It also contains fixes for several security vulnerabilities, making it a recommended upgrade.

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 14.10.1)

Full list of issues fixed and Dashboard for XWiki 14.10.2.

For Users

Split Office Content into Nested Pages

 
The Office Importer Application has been improved to generate (by default) non-terminal (nested) pages when the "Split document" option is selected, if the target wiki page is also non-terminal. The following strategy was implemented:

  • if the target wiki page is terminal then the "child" pages created by the split operation are also terminal
  • if the target wiki page is nested (non-terminal) then:
    • the "child" pages are also nested, if the current user is simple
    • advanced users have a checkbox to control whether the "child" pages are terminal or not, but by default they are not

Besides this, we also did a couple of small improvements to the office import form to:

  • filter office files based on media type (when browsing the local file system)
  • improve existing field labels and hints, adding missing hints
  • hide UI elements that are not relevant for the office import operation
  • perform the office import asynchronously and redirect the user directly to the imported page after a successful import operation

For Admins

For Developers

Include Macro Author

 
It's now possible to control which author should be used to execute the target of include macro. See Include Macro for more details.

Code Macro Source

 
The code macro now have an alternative way to indicate the content to highlight, which allows highlighting a script value or the content of an entity stored in the XWiki database. See Code Macro for more details.

Miscellaneous

  • Extension previous identifiers: It's now possible to explicitly indicate a list of previous identifier (or an empty list) if you don't want to import all the features along with the extension in the Repository Application. See Maven for more details.

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 108Tests run and results
Chrome30.pngGoogle Chrome 108
Edge30.pngMicrosoft Edge 108Jira Tickets Marked as Fixed in the Release Notes
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
postgresql.pngPostgreSQL 15Jira Tickets Marked as Fixed in the Release Notes
mariadb.pngMariaDB 10.6Not Tested
mysql.pngMySQL 8Tests run and results
oracle.pngOracle 19c

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.70
jetty-icon.pngJetty 10.0.7 (XWiki Standalone packaging)
jetty-icon.pngJetty 10.0.7Not 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 14.10.2

  • Translations with user scope now require script right. A new configuration option allows disabling this check.
  • This release introduce some new Japanese translations that might cause error logs such as:

    SQL Error: 1366, SQLState: HY000
    Incorrect string value: '\xC4\xBEa zd...' for column 'XWD_CONTENT' at row 1
    Incorrect string value: '\xC4\xBEa zd...' for column 'XWD_CONTENT' at row 1

    Those errors shouldn't impact you unless you're trying to use Japanese language, in which case you need to ensure to use a database encoded with utf8mb4. You can find details on https://jira.xwiki.org/browse/XWIKI-20517.

API Breakages

The following APIs were modified since XWiki 14.10.1:

Real breakages

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

  • Added support for controlling whether the pages created by the office import splitter are terminal or not.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:


      ## New:
      method java.util.Map<org.xwiki.officeimporter.splitter.TargetDocumentDescriptor, org.xwiki.officeimporter.document.XDOMOfficeDocument> org.xwiki.officeimporter.splitter.XDOMOfficeDocumentSplitter::split(org.xwiki.officeimporter.document.XDOMOfficeDocument, org.xwiki.officeimporter.splitter.OfficeDocumentSplitterParameters) throws org.xwiki.officeimporter.OfficeImporterException
  • Annotated NamingCriterion interface as component role and added two methods needed to refactor existing implementations as components.
    • Violation type:
      java.annotation.added
    • Code:
      ## Old:
      interface org.xwiki.refactoring.splitter.criterion.naming.NamingCriterion

      ## New:
      interface org.xwiki.refactoring.splitter.criterion.naming.NamingCriterion
  • Annotated NamingCriterion interface as component role and added two methods needed to refactor existing implementations as components.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:


      ## New:
      method org.xwiki.model.reference.DocumentReference org.xwiki.refactoring.splitter.criterion.naming.NamingCriterion::getDocumentReference(org.xwiki.rendering.block.XDOM)
  • Annotated NamingCriterion interface as component role and added two methods needed to refactor existing implementations as components.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:


      ## New:
      method org.xwiki.refactoring.splitter.criterion.naming.NamingCriterionParameters org.xwiki.refactoring.splitter.criterion.naming.NamingCriterion::getParameters()

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).

  • New methods on unstable code, allowing to get the mimetype configuration for a given document.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:


      ## New:
      method java.util.List<java.lang.String> org.xwiki.attachment.validation.AttachmentValidationConfiguration::getAllowedMimetypes(org.xwiki.model.reference.DocumentReference)
  • New methods on unstable code, allowing to get the mimetype configuration for a given document.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:


      ## New:
      method java.util.List<java.lang.String> org.xwiki.attachment.validation.AttachmentValidationConfiguration::getBlockerMimetypes(org.xwiki.model.reference.DocumentReference)

Credits

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

  • Manuel Leduc 
  • Marius Dumitru Florea 
  • Michael Hamann 
  • Nikita Petrenko 
  • Oana-Lavinia Florean 
  • Simon Urli 
  • Simpel 
  • Suguru Hirahara 
  • Thomas Mortagne 
  • Vincent Massol 
  • tambovtsev 

Get Connected