Release Notes for XWiki 14.8

Last modified by Thomas Mortagne on 2023/05/25

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 brings links and attachments refactoring on the farm (i.e., cross wikis and sub-wikis), and an improved attachments listing now based on LiveData. In addition to the usual bug fixes (including 4 security fixes), this release also brings various improvements for administrators and developers.

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

Full list of issues fixed and Dashboard for 14.8.

For Users

PDF Export Application Improvements

 
The PDF Export Application (which is still experimental and not bundled in XWiki Standard) has a couple of improvements:

  • The user's own web browser is now used by default to generate the PDF, but the application can still be configured to use a remote Chrome instance or one that runs inside a Docker container. Check out the migration section below for more information.
  • When a remote (or Docker based) Chrome instance is used for PDF printing the application now checks if connection is working before showing the PDF export options. An error message is shown in case the Chrome browser can't be accessed.
  • In case of PDF export failure, the last error message from the PDF export job log is now displayed.
  • The underlying JavaScript library used for paginating the content before printing to PDF (PagedJS) has been upgraded to its latest version.

Replace the Livetable from the attachments tab with a LiveData

 
The attachments Livetable was updated to use the new LiveData.

Miscellaneous

  • Cross wiki refactoring of links by default: Cross wiki refactoring of links is now much faster (being in a different wiki does not anymore have any specific performance impact when refactoring links) and enabled by default.

For Admins

Indexing User

 
A new section to define a dedicated indexing user has been added in the "Search" category in the wiki administration.

The search index usually runs without a dedicated user. In some cases this creates minor issues when indexing the title of pages, e.g. in case of a closed wiki, where one cannot access as guest user the sheet that computes the user profile pages title as "Profile of «firstname» «lastname»". This is not possible unless the indexer is associated with a user that has access to the corresponding sheet. A new section in the "Search"  category of the wiki administration allows to set an "indexing user", which is used to access the sheets which might be used to compute page titles.

If this setting is left empty, the stored plain title of the page name is shown as title of the search result for affected pages.

Please read the description and especially about the security implications before setting an indexing user.

Miscellaneous

  • Configurable hidden macros categories : The list of categories hidden by default, previously hard-coded to Internal and Deprecated, can now be configured using the rendering.transformation.macro.hiddenCategories property in xwiki.properties.

    #-# [Since 14.8RC1]
    #-# Override the default hidden macro categories.
    #-# Note: the categories are case sensitive.
    #-#
    #-# The default value is:
    # rendering.transformation.macro.hiddenCategories = Internal,Deprecated
    #-#
    #-# For instance, to make the "Development" category hidden by default, in addition to the "Internal" and
    #-# "Deprecated" categories, you'd use:
    # rendering.transformation.macro.hiddenCategories = Development,Internal,Deprecated

For Developers

Async Form Validation

 
A new JavaScript API is available to help implement asynchronous form validation. It can be used like this:

require(['jquery', 'xwiki-form-validation-async'], function($) {
 const titleInput = $('input[name=title]');

 const validateTitle = () => {
   if (!titleInput.val()) {
     return Promise.reject();
    } else {
     return new Promise((resolve, reject) => {
        ...
      });
    }
  };

  titleInput.on('input', () => {
   // Schedule the asynchronous validation after 500ms. The namespace is used to prevent replacing validations added by
   // other modules.
   titleInput.validateAsync(validateTitle, /* delay: */ 500, /* namespace: */ 'myModule');
  });
});

Miscellaneous

  • New event when livedata entries are displayed: A new javascript event xwiki:livedata:entriesUpdated is now triggered for LiveData when the entries are displayed: this event can be listened to when an extension need to augment the data.

  • Provide Raw content filtering mechanism for macros: A new rendering transformation component is now provided for macros to allow perform filtering of RawBlocks. A new API is provided, RawBlockFilter, with a first implementation for HTML raw blocks, used in html macro.

  • DocumentVersionReference is part of the model API: The DocumentVersionReference is now part of the model API: this reference API allows to manipulate a DocumentReference with a specific version attribute, allowing to specifically target a version of the document.

  • Hidden macro categories API: The MacroCategoryManager role gives access to the list of hidden macro categories.

    @Role
    public interface MacroCategoryManager
    {
       // [...]

       /**
         * @return the set of hidden categories (e.g., "Deprecated, Internal")
         * @since 14.8RC1
         */

       @Unstable
       default Set<String> getHiddenCategories()
       {
           return Set.of();
       }
    }

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 105Not Tested
Chrome30.pngGoogle Chrome 106Tests run and results
Edge30.pngMicrosoft Edge 105Jira Tickets Marked as Fixed in the Release Notes
Safari30.pngSafari 15Not Tested

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

 DatabaseTested on:
hypersql.pngHyperSQL 2.7.0Not Tested
postgresql.pngPostgreSQL 14Jira Tickets Marked as Fixed in the Release Notes
mariadb.pngMariaDB 10.6Not Tested
mysql.pngMySQL 8Not Tested
oracle.pngOracle 19cTests run and results

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.67
jetty-icon.pngJetty 10.0.7 (XWiki Standalone packaging)Not Tested
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.8

Changes in Solr search core

The schema of the Solr search core (the one used as source for document search in the UI) has been modified and will need to be resetted. This is done automatically in case of embedded Solr (the default) but is a manual process in the case of a standalone remote Solr install: you should remove the Solr core with name "xwiki" and reinstall it as documented on Solr Search API.

Also, since the version of Solr with which XWiki is tested (the version embedded in XWiki) has been upgraded to 8.11.2, it is highly recommended to make sure, if you use a remote standalone Solr setup, that you have an 8.11.x version of Solr (it may work with other versions but XWiki was not tested with them).

PDF Export Application

Starting with this version, the new (experimental) PDF Export Application (not bundled in XWiki Standard yet) is using by default the user's browser to generate the PDF. In previous versions the default was to use a headless Chrome web browser running inside a Docker container. You can restore the previous behavior from xwiki.properties by adding:

export.pdf.serverSide = true

API Breakages

The following APIs were modified since XWiki 14.7:

No breakage!

Credits

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

  • Alex Cotiugă
  • Andreea Chirica
  • Clemens Klein-Robbenhaar
  • Clemens Robbenhaar
  • Manuel Leduc
  • Marius Dumitru Florea
  • Michael Hamann
  • Nikita Petrenko
  • Oana-Lavinia Florean
  • Simon Urli
  • Thomas Mortagne
  • Vincent Massol
  • acotiuga
  • raphj
Tags:
   

Get Connected