Release Notes for XWiki 15.0-rc-1

Last modified by Manuel Leduc on 2023/03/29

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 is the first release of the 15.x cycle. This release consists mostly of dependency upgrades and bug fixes including security fixes with some small new features for admins and developers. Some fixes also required changes that could cause breakages, please read the respective sections before upgrading.

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

Full list of issues fixed and Dashboard for 15.0.

For Users

No changes!

For Admins

  • New tags right check strategy configuration: It is now possible to configure the algorithm used when checking view rights on tags (returned by the Tags API) by editing xwiki.properties.

    #-# [Since 14.4.8, 14.10.4, 15.0RC1]
    #-# Configure the tag selection algorithm to use.
    #-# The default algorithm is "exhaustive", which check all elements (documents and tags) for view right before returning
    #-# them. This exhaustive check can lead to tag clouds and tag lists being slow to compute on instances with very large 
    #-# amounts of tags or tagged documents (more than 5000 of elements).   
    #-# Note that it is advised to keep using the default implementation as much as possible, and to switch to the "unsafe"
    #-# option only when all performance improvements options have been exhausted 
    #-# (see https://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Performances/)
    #-# The "unsafe" algorithm does not perform any right checks. It is approximately 10 times faster than "exhaustive"
    #-# but does not provide any guarantee that the current user won't be able to view a tag he/she is not allowed to. 
    #-# Therefore, we cannot recommend to use it unless tags performance is critical AND tags and document references are 
    #-# not considered as critical information.
    # tag.rightCheckStrategy.hint=exhaustive
    # tag.rightCheckStrategy.hint=unsafe

For Developers

  • New script service for HTML operations: A new HTML script service has been introduced allowing to use the recently introduced HTMLElementSanitizer in scripts. It can be used in velocity with $services.html.xxx.

  • Extension plan in isolation: It's now much easier to run extension jobs isolated from the current instance. The following two new properties has been added to ExtensionRequest:

    • coreExtensionRepository: a custom repository to use to find available core extension
    • installedIgnored: true if already-installed extensions should not be taken into account while resolving the install plan

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 109Tests run and results
Chrome30.pngGoogle Chrome 109
Edge30.pngMicrosoft Edge 109Jira 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
mariadb.pngMariaDB 10.6Jira Tickets Marked as Fixed in the Release Notes
mysql.pngMySQL 8Tests run and results
postgresql.pngPostgreSQL 15
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.71
jetty-icon.pngJetty 10.0.12 (XWiki Standalone packaging)
jetty-icon.pngJetty 10.0.12Not 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 15.0-rc-1

Change of macro priorities

The priority of the following macros has been changed from very high (10) to normal (1000):

  • include
  • display
  • context
  • template
  • uiextension
  • uiextensions

It means they have the same priority that most other macros so they will be executed in the order you see them in the wiki content instead of before previous macros, it's especially important when combined with script macros.

This hopefully fixes more confusion than causing problems but it could impact cases like:

  • if you include a document which contains macro which a very high priority, those macros used to be executed very early and they are now limited by the priority of the include macro
  • if you were including things to use in a script macro after that script macro, it won't work anymore:

    {{velocity}}
      #macroFromTheTemplate('value')
    {{/velocity}}

    {{template name="template/with/macros.vm"/}}

    doesn't behave as expected anymore and should instead be written as

    {{template name="template/with/macros.vm"/}}

    {{velocity}}
      #macroFromTheTemplate('value')
    {{/velocity}}

    because in the first version the velocity macro is going to be executed before the template macro (because it appear first in the content).

Change of default author when executing the include macro

For security reasons, it was decided to modify the default behavior of the include macro regarding the execution of the included content: if the content author of the target document does not have programming rights, the include macro will execute it right away with the right of the target document content author instead of just parsing it and returning the blocks.

Change of behavior for ComponentManager#getInstanceList

org.xwiki.component.manager.ComponentManager#getInstanceList and org.xwiki.component.manager.ComponentManager#getInstanceMap don't fail anymore by default, if one of the components fail to initialize. However, it's possible to still thrown an exception if needed, by using the @ComponentMandatory annotation, either on the component class, or at a higher level in the inheritance hierarchy (e.g. inside the role class), to impact all components who are a subclass of it.

API Breakages

The following APIs were modified since XWiki 14.10.2:

Real breakages

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

  • JGroups upgrade
    • Violation type:
      java.method.removed
    • Code:
      ## Old:
      method void org.jgroups.MembershipListener::suspect(org.jgroups.Address) @ org.xwiki.observation.remote.jgroups.JGroupsReceiver
  • JGroups upgrade
    • Violation type:
      java.class.noLongerImplementsInterface
    • Code:
      ## Old:
      interface org.xwiki.observation.remote.jgroups.JGroupsReceiver

      ## New:
      interface org.xwiki.observation.remote.jgroups.JGroupsReceiver
  • JGroups upgrade
    • Violation type:
      java.class.noLongerImplementsInterface
    • Code:
      ## Old:
      interface org.xwiki.observation.remote.jgroups.JGroupsReceiver

      ## New:
      interface org.xwiki.observation.remote.jgroups.JGroupsReceiver
  • JGroups upgrade
    • Violation type:
      java.class.noLongerImplementsInterface
    • Code:
      ## Old:
      interface org.xwiki.observation.remote.jgroups.JGroupsReceiver

      ## New:
      interface org.xwiki.observation.remote.jgroups.JGroupsReceiver
  • Bad definition of xwiki-platform-legacy-office-viewer which use to embed xwiki-platform-office-viewer where it should not have. No breakage in practice.
    • Violation type:
      java.class.removed
    • Code:
      ## Old:
      interface org.xwiki.office.viewer.OfficeResourceViewer
  • Bad definition of xwiki-platform-legacy-office-viewer which use to embed xwiki-platform-office-viewer where it should not have. No breakage in practice.
    • Violation type:
      java.class.removed
    • Code:
      ## Old:
      interface org.xwiki.office.viewer.OfficeViewerScriptService
  • Bad definition of xwiki-platform-legacy-office-viewer which use to embed xwiki-platform-office-viewer where it should not have. No breakage in practice.
    • Violation type:
      java.class.removed
    • Code:
      ## Old:
      class org.xwiki.office.viewer.script.DefaultOfficeViewerScriptService

Credits

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

  • Alex Cotiugă
  • Andreea Chirica
  • Antoine Mottier
  • DenisF
  • Jens Mittelbach
  • Manuel Leduc
  • Marius Dumitru Florea
  • Michael Hamann
  • Nikita Petrenko
  • Oana-Lavinia Florean
  • Raphaël Jakse
  • Simon Urli
  • Simpel
  • Suguru Hirahara
  • Thomas Mortagne
  • Vincent Massol
  • tambovtsev
  • trrenty

Get Connected