Release Notes for XWiki 15.8-rc-1
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 comes with various look and feel improvements on buttons and continues the work on replacing the old livetable with livedata (here for the deleted document restore view). It also starts showing results regarding performance improvements induced by the caching of Velocity, especially around the skin execution in this version. Finally, new customization possibilities have been added to the PDF export for developers.
New and Noteworthy (since XWiki 15.7)
Full list of issues fixed and Dashboard for 15.8.
For Users
Buttons appearance
We made some changes on the visual aspect of buttons:
- the gradient on the buttons background has been removed
- buttons are now borderless, except for the default buttons since they have the same background as the default background
Live Data in Batch Restore
The list of deleted pages that is displayed when restoring a batch of pages uses Live Data instead of Livetable.
Increasing contrast
The info button of the Flamingo Theme is now increased to conform to the minimum contrast defined in the Web Content Accessibility Guidelines.
Miscellaneous
Added keyboard navigation to the lightbox dropdown. The dropdown can now be opened from a keyboard and navigated with tabulator presses.
Added keyboard support to the "Media type" Solr search facet.
For Admins
Performance improvement in templates: Wiki skins and filesystem templates are now cached. In addition, the Velocity from Velocity templates (not yet those based on wiki syntax) is compiled to speed up following executions.
The first performances tests suggest that the XWiki Standard skin is now up to 5 times faster thanks to this caching.
It will continue to improve in upcoming versions of XWiki with the caching and compilation of Velocity (and other costly tasks) in other areas (templates located in JAR extensions, velocity scripts located in wiki content like UI extensions and panels, code macros, etc.).
Groups can be filtered by their title in groups livetables: It is now possible to filter groups by their title in the groups livetables or the access rights livetables. This is particularly helpful in case a group has a “pretty name” that is more user-friendly than the name of the group document.
For Developers
PDF Export Metadata
The PDF export template has a new field named "Metadata" that you can use to display additional information about the exported wiki pages in the PDF header or footer. You need to follow three steps:
- Use the Metadata field to indicate the extra information you want to display. For instance, if you want to display the tags:{{velocity output="false"}}
$metadata.putAll({
'data-tags': $stringtool.join($doc.getTagList(), ', ')
})
{{/velocity}} - Use the Header or Footer fields to indicate where to display the metadata:{{html clean="false"}}
Tags: <span class="pdf-doc-tags"></span>
{{/html}} - Use the Style Sheet Extension object to inject the metadata in the PDF header or footer:h1[data-xwiki-document-reference] {
string-set: doc-tags attr(data-tags);
}
.pdf-doc-tags:before {
content: string(doc-tags);
}
See the PDF Export Application documentation for more information.
Miscellaneous
Forced default image style: The default image style can now be forced, meaning that it will be used by default and a style must be selected.
Table of content entries customization: It is possible to decorate the Table of Content entries by providing a component with the TocEntryExtension role.
Velocity AST caching: VelocityEngine API now expose helpers to much easier to compile and cache the Velocity AST.
Added accessibility test overview: Now, builds with the property xwiki.test.ui.wcag property activated will create overview reports of the accessibility results. These reports will generate whatever the results are, and will contain statistics about the tests in the test suite.
ClassLoader name: The ClassLoaders associated to namespace are now implementing ClassLoader#getName() so you don't need to cast it to NamespaceURLClassLoader to access the namespace anymore.
Upgrades
The following runtime dependencies have been upgraded (they have a different release cycle than XWiki Commons, XWiki Rendering and XWiki Platform):
- CSS4J 4.1, CSS4J DOM4J 4.0, XML-DTD 4.2
- common-compress 1.24.0
- Tika 2.9.0
- Snakeyaml 2.2
- SLF4J 2.0.9
- Protostream 4.6.5.Final
- Protobuf Java 3.24.3
- Netty 4.1.97.Final
- Liquibase 4.23.2
- Jetty Client 9.4.52.v20230823
- JNR POSIX 3.1.18
- JNR FFI 2.2.15
- JFFI 1.3.12
- JGroups 5.3.0
- Ivy 2.5.2
- Groovy 3.0.19
- Docker Java to 3.3.3
- Commons DBCP2 2.10.0
- Checker Qual 3.38.0
- Byte Buddy 1.14.7
- AspectJ 1.9.20.1
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:
Browser | Tested on: | |
---|---|---|
Mozilla Firefox 120 | Not Tested | |
Google Chrome 119 | Jira Tickets Marked as Fixed in the Release Notes | |
Microsoft Edge 119 | Not Tested | |
Safari 16 | Not Tested |
Here is the list of databases we support and how they have been tested for this release:
Database | Tested on: | |
---|---|---|
HyperSQL 2.7.2 | Not Tested | |
MariaDB 11.1 | Not Tested | |
MySQL 8.2 | Jira Tickets Marked as Fixed in the Release Notes | |
PostgreSQL 16 | Not Tested | |
Oracle 19c | Not Tested |
Here is the list of Servlet Containers we support and how they have been tested for this release:
Servlet Container | Tested on: | |
---|---|---|
Tomcat 9.0.83 | Jira Tickets Marked as Fixed in the Release Notes | |
Jetty 10.0.15 (XWiki Standalone packaging) | Not Tested | |
Jetty 10.0.15 | Not Tested |
Security Issues
Security issues are not listed in issue lists or dashboards to avoid disclosing ways to use them, but they will appear automatically in them once they're disclosed. See the XWiki Security Policy for more details.
Accessibility
We are working towards WCAG 2.1 level AA compliance.
Current status:
- A total of 389157 automated tests are run.
- 99.18% of our automated WCAG tests are passing. There are 1816 warnings left in the tests to fix (0.45%) and 1349 incomplete tests (0.34%), i.e. they need manual validation.
- Note that the automated WCAG tests have 2 limitations: WCAG tests are executed only for UIs for which we have automated functional tests available, and the underlying library we use for testing (Axe Core) estimates that it catches only about 50% of WCAG issues. In the future we plan to also run manual WCAG tests once we've fixed all the issues we can catch automatically.
- Accessibility violations can be seen on this filter result table.
- The progress of fixing accessibility issues vs raising them can be seen on this status chart.
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.8-rc-1
Notifications "Mark event as read" button
The computation of the "Mark the event as read" button in the notification area has been changed and is no longer dynamically injected with javascript. As a result if an extension is overriding the standard macro for displaying notification (and more specifically the macro displayNotificationEventSkeleton), the button might be lost. For getting it back in any versions of XWiki, extensions should insert the following code in the overridden macro:
title="$escapetool.xml($services.localization.render('notifications.macro.markEventAsRead'))"
disabled="disabled">
$services.icon.renderHTML('check')
</button>
API Breakages
The following APIs were modified since XWiki 15.7:
Real breakages
Real backward compatibility breakages that we have unwillingly accepted to do for the reasons mentioned in each violation below.
- New API added to a component very unlikelly to have a custom implementation
- Violation type:java.method.addedToInterface
- Code:## Old:
## New:
method org.xwiki.velocity.VelocityTemplate org.xwiki.velocity.VelocityEngine::compile(java.lang.String, java.io.Reader) throws org.xwiki.velocity.XWikiVelocityException
- Violation type:
- New API added to a component very unlikelly to have a custom implementation
- Violation type:java.method.addedToInterface
- Code:## Old:
## New:
method void org.xwiki.velocity.VelocityEngine::evaluate(org.apache.velocity.context.Context, java.io.Writer, java.lang.String, org.xwiki.velocity.VelocityTemplate) throws org.xwiki.velocity.XWikiVelocityException
- Violation type:
Credits
The following people have contributed code and translations to this release (sorted alphabetically):
- Clément Aubin
- Dorian OUAKLI
- Gankov Andrey
- Manuel Leduc
- Marius Dumitru Florea
- Michael Hamann
- Nikita Petrenko
- Sereza7
- Simon Urli
- Simpel
- Thomas Mortagne
- Vincent Massol
- dependabot[bot]
- patmanizat
- raphj
- tuz-d