Release Notes for XWiki 13.8

Last modified by Manuel Leduc on 2023/05/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.

Mostly a developer's release and some performance improvement for the new LiveData feature.

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

Full list of issues fixed and Dashboard for XWiki 13.8.

For Users

  • Live Data performance improvements: The rendering time of the Live Data Macro has been improved. The performance is now comparable to the Livetable Macro.

    For instance, taking the loading time of the Panels table with 30 rows, the rendering time is now of 2s 180ms with the optimization, and was 3s 50ms before the optimizations, and 2s 250ms with the Livetable Macro. In addition, when the Less style is not yet cached, the rendering time is improved by about 12 seconds.

For Admins

No changes!

For Developers

Translation Messages in JavaScript

 
We added support for using translation messages in JavaScript without relying on Velocity code. This has the big advantage that the JavaScript code can be cached without the need to invalidate the cache when the current locale changes. Here's how you can do it:

// First you need to define a module that holds the required translation keys.
define('my-translation-keys', {
  prefix: 'livedata.',
  keys: [
   "dropdownMenu.title",
   "selection.infoBar.allSelectedBut"
  ]
});

// Then you require the translation messages using the dedicated loader.
require(['xwiki-l10n!my-translation-keys'], function(l10n) {
 // Translation key without parameters.
 console.log(l10n['dropdownMenu.title']);

 // Translation key with parameters.
 console.log(l10n.get('selection.infoBar.allSelectedBut', 'parameter value'));
});

See the Localization Module documentation for more information on this topic.

Miscellaneous

  • Provide a script service API for serializing a UserReference: It is possible to serialize a user reference with the default serializer using the user script service:

    {{velocity}}
    #set ($userReference = $api.returning.user)
    Retrieved user: $services.user.serialize($userReference)
    {{/velocity}}
  • Byte array to InputSource: The org.xwiki.filter.input.InputSource converter now support byte[] as input.

  • Attachments content: It's now possible to indicate in input the list of attachment for which the content should be taken into account (when serializing a document, for example). It used to be all (generally used when exporting a XAR) or nothing (in the case of the document history).

  • Allow Skins to be loaded from the classloader: Skins can now be stored in extensions. If an extension installed on a wiki contains a skins/skinName/ folder, it can be discovered and used as a wiki Skin.

Upgrades

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

eslint-plugin-vue 7.16.0
eslint 7.32.0
@vue/test-utils 1.2.2
@babel/eslint-parser 7.15.0
vue and vue-template-compiler 2.6.14
vue-i18n 8.25.0
Tika 2.1
Plexus Utils 3.4.1
Mockito 3.12.4
Jackson 2.12.5
JNA 5.9.0
Hibernate 5.5.7
Gson 2.8.8
Error Prone annotations 2.9.0
Byte Buddy 1.11.13

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:
Edge30.pngMicrosoft Edge 94Not Tested
Chrome30.pngGoogle Chrome 94Not Tested
IE30.pngInternet Explorer 11Tests run and results
Firefox30.pngMozilla Firefox 92Jira Tickets Marked as Fixed in the Release Notes
Safari30.pngSafari 14Not Tested

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

 DatabaseTested on:
hypersql.pngHyperSQL 2.5.2Not Tested
mariadb.pngMariaDB 10.6Jira Tickets Marked as Fixed in the Release Notes
mysql.pngMySQL 8Tests run and results
postgresql.pngPostgreSQL 13 
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.53
jetty-icon.pngJetty 9.4.29 (XWiki Standalone packaging)
jetty-icon.pngJetty 9.4.29Not 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.

API Breakages

The following APIs were modified since XWiki 13.7:

Unknown Criticality

These violationq are missing a criticality and need to be fixed.

  • Unstable API: this API was not properly designed and shouldn't have returned that in first place.
    • Violation type:
      java.method.returnTypeChanged
    • Code:
      ## Old:
      method javax.mail.internet.InternetAddress org.xwiki.security.authentication.script.AuthenticationScriptService::requestResetPassword(org.xwiki.user.UserReference) throws org.xwiki.security.authentication.ResetPasswordException

      ## New:
      method void org.xwiki.security.authentication.script.AuthenticationScriptService::requestResetPassword(org.xwiki.user.UserReference) throws org.xwiki.security.authentication.ResetPasswordException
  • Unstable API: this API was not properly designed and shouldn't have returned that in first place.
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method javax.mail.internet.InternetAddress org.xwiki.security.authentication.ResetPasswordRequestResponse::getUserEmail()
  • Not a breackage. Moved to legacy.
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method java.lang.String com.xpn.xwiki.XWiki::invokeServletAndReturnAsString(java.lang.String, com.xpn.xwiki.XWikiContext)
  • Not a breackage. Moved to legacy.
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method java.lang.String com.xpn.xwiki.api.XWiki::invokeServletAndReturnAsString(java.lang.String)

Credits

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

Clemens Robbenhaar
Jarle Sandmo
Manuel Leduc
Marius Dumitru Florea
Simon Urli
Thomas Mortagne
Vincent Massol
slauriere
xrichard

Get Connected