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.

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: 

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 13.8

<issues specific to the project>

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

Tags:
Created by Simon Urli on 2021/09/27
   

Get Connected