Release Notes for XWiki 17.2.0-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 makes it possible for users with just edit right to re-order pages in the navigation, fixes bugs and improves the performance of XWiki in particular for larger instances. This release contains security fixes, with the highest severity being 8.7/10.
New and Noteworthy (since XWiki 17.1.0)
Full list of issues fixed and Dashboard for 17.2.0.
For Users
Users with edit rights can pin pages in spaces
It was already possible for global administrators and administrators of spaces to pin pages for organizing the navigation panel. Now the feature is also available for people having edit rights on a space: a new tab is available in the page children view, available from the more action menu. From this new tab, it is possible for a user to entirely reorganize the pages of the space by using drag & drop or by using the action button to pin / unpin pages, pretty much like it was already possible in the navigation panel administration.
New user registration form updated order
Reverted the changes to the fields of the registration form merged in 16.10.0 . The form fields are now: first name, last name, username, password, password validation, email ( and then Captcha if enabled).
For Admins
Filter stream export supports excluding property types: The XWiki instance input stream supports excluding certain property types now. This can be used to exclude, for example, "Email" and "Password" properties from an export.
New configuration to improve indexing performance at startup: By default, the Solr search index is synchronized with the document database when XWiki starts. For this, XWiki queries and compares batches of documents from both the Solr search index and the database. As those queries can take a lot of time in large wikis, the batch size has been increased from 100 to 1000 by default and has been made configurable to allow further increasing it to reduce the number of queries at the expense of a higher memory usage. Increasing this option is recommended for large wikis (for example, more than 100k pages in a single wiki), in particular if you notice that performance is slow and that there is a high load on the database after startup. You can find all options related to synchronization on startup in the documentation.
For Developers
New Velocity instanceOf: A new API was added to the Velocity $objecttool to check if a Java Object extend/implement a given class. For example $objecttool.instanceOf($myObject, 'java.lang.Number').
Added a way to define macro property features as mandatory with the `@PropertyFeature` annotation: The @PropertyFeature annotation used to define the feature of a property, typically used in java Macro parameter definitions, now supports a mandatory attribute. A mandatory feature is a feature for which at least one field fulfilling this feature must have a value. E.g. The reference feature of the include macro is implemented by two properties: reference and page. Making the feature mandatory with:
@PropertyFeature(value = "reference", mandatory = true)Means that at least one of the properties reference or page MUST have a value for the provided macro parameters to be valid. This is an intermediate level between making both properties mandatory and having no mandatory property.
Delete an attachment through script: The script Document API now provide a public API remove an attachment.
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
Automated testing
XWiki executes a lot of automated tests during its build, testing all supported configurations. In addition, some manual QA is also executed to try to discover additional problems (see below):
Manual testing
Here is the list of browsers we support and how they have been manually tested for this release:
Browser | Tested on: | |
---|---|---|
![]() | Mozilla Firefox 137 | Jira Tickets Marked as Fixed in the Release Notes |
![]() | Google Chrome 135 | Not Tested |
![]() | Microsoft Edge 135 | Tests run and results |
![]() | Safari 18 | Not Tested |
Here is the list of databases we support and how they have been manually tested for this release:
Database | Tested on: | |
---|---|---|
![]() | HyperSQL 2.7.3 | Not Tested |
![]() | MariaDB 11.6 | Tests run and results |
![]() | MySQL 9.0 | Not Tested |
![]() | PostgreSQL 16 | Jira Tickets Marked as Fixed in the Release Notes |
![]() | Oracle 19c | Not Tested |
Here is the list of Servlet Containers we support and how they have been manually tested for this release:
Servlet Container | Tested on: | |
---|---|---|
![]() | Tomcat 11.0.5 | |
![]() | Jetty 12.0.18 (XWiki Standalone packaging) | Not Tested |
![]() | Jetty 12.0.18 | 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.2 level AA compliance.
Current status:
- A total of 414985 automated tests are run.
- 99.63% of our automated WCAG tests are passing. There are 22 warnings left in the tests to fix (< 0.01%) and 1495 incomplete tests (0.35%). By "incomplete", it means that 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. We plan to continue running regularly some manual WCAG tests in addition to all these automated tests.
- Out of the 61 rules automatically tested on XWiki, only 3 of them return warnings. All the other tests will fail the build if violated in the future.
- The three types of violations found in automated tests currently are:
- Remaining 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 17.2.0-rc-1
Protection against concurrent modification of cached document
It's considered bad practice to directly modify the document from the cache (mainly because it can badly impact other requests/threads). This version introduces automatic protections to avoid this situation as much as possible by doing the following: if the XWikiDocument instance in the document store has been modified, any attempt to access it will result in the reloading of the document from the store and the replacement of the "corrupted" document from the cache.
But also a warning is logged when the mistake is made so that the related code is identified and fixed, because the protection cannot fix all cases. To avoid the warning, one must clone the XWikiDocument before modifying it. That's something that has already been done automatically for a long time when using the Document script API.
It would be great to report those warnings if you encounter any, but it's also possible to disable them easily because they are considered deprecation logs: control them using the property logging.deprecated.enabled in the xwiki.properties configuration file.
API Breakages
The following APIs were modified since XWiki 17.1.0:
No breakage!
Credits
The following people have contributed code and translations to this release (sorted alphabetically):
- Alex Cotiugă
- Alvaro
- Anmol
- Gankov Andrey
- LEE CHENG WEI
- LucasC
- Manuel Leduc
- Marius Dumitru Florea
- Michael Hamann
- Simon Urli
- Thomas Mortagne
- Vincent Massol
- slauriere
- zon1002