Release Notes for XWiki 10.6

Last modified by Guillaume Delhumeau on 2018/08/13

These are 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 adds a RSS view to the Notifications macro and improves the user picker with compact display and in-line selection. The developers should check the new Page API and the improvements to the existing Icon API. In addition there have been 24 bugs fixed and a couple of small improvements done.

An important bug has been discovered since XWiki 10.6 has been released:

You should wait for the next version of XWiki that will be released soon!

This release contains a bug that can affect the scalability of the service. Until the proper fix, it is highly recommended to make sure that the "autowatch" feature of the notifications is turned off. Note that starting with XWiki 10.7 (10.7RC1 to be precise), "autowatch" is turned off by default.
 
You can do that by adding in the xwiki.properties file the following lines:

# Disable autowatch until the following issue is fixed:
# https://jira.xwiki.org/browse/XWIKI-15445
xwiki.plugin.watchlist.automaticwatch=none

New and Noteworthy (since XWiki 10.5)

Full list of issues fixed and Dashboard for 10.6.

For Users

Page fields now support auto-suggestion

 
You can now use the auto-suggestion feature on Page fields by typing the page title or the page reference. 

New Page picker in the App Within Minutes field palette

 
A Page picker has been integrated in the App Within Minutes and works like the User picker.

The Notifications Macro now includes a RSS view

 

Compact User Picker

 
The List of Users and List of Groups class properties have a new compact display that shows in view mode the user / group avatar followed by the user / group name. In edit mode the selected users / groups are shown in-line. Suggestions are retrieved from both the current wiki and the main wiki, depending on the current wiki's user scope (there's no toggle to switch between local and global users anymore). See the Data Model documentation for more information. This is the same user picker that has been already integrated in the Live Table user filter.

The compact user picker has been integrated in other places such as Administration, App Within Minutes, Wiki Application, Message Sender, Solr Search user facet and Share Page.

For Admins

Ability to set the default auto watch mode in the administration

 
It is now possible, for administrators, to set the default auto watch page behavior.

For Developers

New Page API

 
10.6 brings the Page concept which was introduced in 7.4 to the API and the macros.

PAGE EntityType and Page*Reference classes

First thing first we now have a few new types in EntityType and the corresponding typed Page*Reference helpers. One for each of the element you can have in a page:

  • PAGE
  • PAGE_ATTACHMENT
  • PAGE_OBJECT
  • PAGE_OBJECT_PROPERTY
  • PAGE_CLASS_PROPERTY

Corresponding resolvers/serializer/providers

Each of the already existing DOCUMENT oriented resolvers and serializers have their PAGE oriented implementation.

Conversion from DOCUMENT to PAGE world

The entity resolvers automatically convert from/to DOCUMENT from/to PAGE world references. So yes, using a resolver is the official way to do that conversion.

New syntax

Pages reference have a very different syntax.

To summarize it's a filesystem path syntax with support for parameters.

Here is are a few examples:

wiki:page1/page2;param1=value1;param2=value2;en_US

wiki:page1/page2/attachment

../siblingpage
  • separator: "/" between all elements except WIKI which is still ":"
  • escaping: still "\"
  • current, parent support: like in a file system you can refer to the current page or parent page/wiki using "." and ".."
  • parameters: we now have syntax to express the parameters of an EntityReference. Each parameter is separated by a ";" at the end of the entity name
  • default parameter: the syntax have the concept of default parameter which mean a parameter for which you don't need to indicate the name. For example PAGE reference default parameter is "locale"

New resource reference

A new resource reference of type PAGE has been added and can be used in links for example:

[[parent>>page:..]]
[[page:page1/page2]]

Miscellaneous

  • the $services.model API also got his own new helpers to manipulate pages
  • support for page references have been added to various oldcore (XWiki/XWikiDocument/Document) and bridge (DocumentAccessBridge) APIs
  • support for page references have been added to the security module

Improvement of the icon API

 
It is now possible to manually pull icon theme resources and get a metadata map of an icon to customize the display.

See the Icon Theme Application extension for documentation.

User Picker Velocity Macro Changes

 
The #userPicker Velocity macro has been modified to have a compact display. There is no toggle to switch between local and global suggestions as the picker retrieves suggestions from both the current wiki and the main wiki depending on the current wiki's user scope. You can overwrite this if you want using the data-userScope parameter.

#set ($userPickerParameters = {
  'id': 'wikiOwner',
  'name': 'owner',
  'value': $descriptor.ownerId,
  'data-userScope': 'GLOBAL_ONLY'
})
#set ($multipleSelection = false)
#userPicker($multipleSelection $userPickerParameters)

The JavaScript library used to fetch the suggestions and to display them has been replaced, causing modifications to the HTML structure of the user picker. This means that you may have to update your code in case you did customizations on top of the old library. The new library we use is selectize.js.

Upgrades

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

Translations

We recently moved l10n.xwiki.org to a new translation platform based on Weblate and we're still trying to figure out how to compute an accurate list of the locales that have been updated for real (excluding comments and whitespace changes). We hope to put back the list of updated translations in the next release notes.

Tested Browsers & Databases

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

BrowserTests performed and results
Chrome30.pngGoogle Chrome 68Not Tested
Firefox30.pngMozilla Firefox 61Not Tested
Edge30.pngMicrosoft Edge 17Not Tested
IE30.pngInternet Explorer 11Jira Tickets Marked as Fixed in the Release Notes + New and Noteworthy Features
Safari30.pngSafari 11.1Not Tested

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

DatabaseTests performed and results
hypersql.pngHyperSQL 2.4.1Not Tested
mysql.pngMySQL 5.7Not Tested
oracle.pngOracle 11.2Not Tested
postgresql.pngPostgreSQL 10Jira Tickets Marked as Fixed in the Release Notes + New and Noteworthy Features

Known issues

Backward Compatibility and Migration Notes

General Notes

When upgrading make sure you compare your xwiki.cfg, xwiki.properties and web.xml files with the newest version since some configuration parameters may have been modified or added. Note that you should add xwiki.store.migration=1 so that XWiki will attempt to automatically migrate your current database to the new schema. Make sure you backup your Database before doing anything.

Issues specific to XWiki 10.6

User Picker Velocity Macro

The implementation of the #userPicker* and #groupPicker* Velocity macros has been modified. You should review the usage of these macros in your own (custom) code to make sure they still work as expected. We changed the JavaScript library used to fetch and display the suggestions and this lead to changes on the HTML structure of the user and group pickers. This means that you may have to update your code in case you did customizations on top of the old library. The userPicker.js file has been deprecated (but it's still bundled) and the userPicker.css file has been removed (but the styles have been integrated into the skin). We also deprecated the suggestUsers and suggestGroups CSS classes in favor of the new suggest-users and suggest-groups. You can still use the old CSS classes but you need to import userPicker.js yourself.

API Breakages

The following APIs were modified since XWiki 10.5:

  • Adding a REST endpoint is actually not an API breakage.
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method java.lang.String org.xwiki.notifications.rest.NotificationsResource::getNotificationsRSS(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.lang.Exception
  • Not a breake: the REST endpoint is the same.
    • Violation type:
      java.method.returnTypeChanged
    • Code:
      ## Old:
      method org.xwiki.notifications.rest.model.Notifications org.xwiki.notifications.rest.NotificationsResource::getNotifications(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.lang.Exception

      ## New:
      method javax.ws.rs.core.Response org.xwiki.notifications.rest.NotificationsResource::getNotifications(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String) throws java.lang.Exception
  • Young API
    • Violation type:
      java.method.addedToInterface
    • Code:
      ## Old:
      null

      ## New:
      method org.xwiki.notifications.filters.watch.AutomaticWatchMode org.xwiki.notifications.filters.watch.WatchedEntitiesConfiguration::getDefaultAutomaticWatchMode(org.xwiki.model.reference.WikiReference)

Credits

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

Adel Atallah
Alex Cotiugă
Clément Aubin
CostiChD
Ecaterina Moraru (Valica)
Eduard Moraru
Fekete Judit
Guillaume Delhumeau
Marius Dumitru Florea
slauriere
Thomas Mortagne
Vincent Massol
xrichard

Tags:
   

Get Connected