Release Notes for XWiki 12.10
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 improves the Jump to Page modal and introduces a new Solr-based local extension index that should speedup the Extension Manager search and improve the results by suggesting only compatible extensions.
New and Noteworthy (since XWiki 12.9)
Full list of issues fixed and Dashboard for 12.10.
For Users
Improved Jump to Page
The Jump to Page modal (Ctrl+G) has been updated to use the new page picker which fixes the keyboard navigation and improves the display of page suggestions (page title and location are now shown).
For Admins
New local extensions index
A new Solr based index of all the extensions available on the configured searchable repositories has been introduced. It's updated regularly (every hours in that version) and it also recommends compatible versions to install so that the default list you get in the Extension Manager UI only contains extensions which are not already installed and for which the install/upgrade should work in your instance.
Miscellaneous
Allow to force-download attachments based on their mimetype: It is now possible to decide which attachments should be always downloaded based on their mimetypes: until now two properties (attachments.download.whitelist and attachments.download.blacklist) were allowing to control the display of some attachments for security reasons, but those properties are not able to control the behaviour of attachments added by a user with programming rights.
A new property has been added to allow force-download any attachment, whoever added it:
#-# [Since 12.10]
#-# Define the kind of attachment that you always want to be downloaded and never displayed inline.
#-# By default this list is empty, but you can specify a list of mime-types (coma separated list of values) which
#-# should be always downloaded no matter who attached them or what is the whitelist/blacklist configuration.
#-#
#-# The distinction with the blacklist configuration above is that the blacklist won't affect file attached by a user
#-# with programming rights, while this configuration affect any attachment.
# attachment.download.forceDownload=Mail Resender Scheduler Job: It's now possible to run a Scheduler Job to resend automatically emails that were prepared successfully but that were not sent (for example if the XWiki JVM crashed before they could be sent).
For Developers
Async Rendering improvements
- Saving/restoring the context action is now supported.
- When saving the context document but not the wiki, the context wiki should be restored from the document.
User Mentions API upgraded
The User Mentions API has been upgraded to support new use-cases, such as sending notification to different kind of actors. This new API is a first step toward the mention of users from remote wikis, or to the mention of groups. A new event has also been introduced, making it easier to listen and react to mentions from new modules.
Solr dedicated core improvements
- The base schema now provide a type "text_general" and associated helpers which follow the Solr standard "text_general" type, "a general text field that has reasonable, generic cross-language defaults: it tokenizes with StandardTokenizer, removes stop words from case-insensitive 'stopwords.txt' (empty by default), and down cases. At query time only, it also applies synonyms". This is the easiest way to insert full text search friendly fields in your schema.
- A Solr core initializer can now decide if the data should be stored as cached data or not
Miscellaneous
Forms styling handle HTML5 inputs: HTML5 inputs (color, date, datetime-local, email, number, search, tel and time) are now consistent with older input types (text and password) in the Flamingo Skin. They are all compatible with the Vertical Forms Guidelines.
Synchronous mail resending: There's now an API to resend emails synchronously (we only had an asynchronous API before). This is useful when resending large amounts of emails which would require a lot of memory since all emails would be loaded from disk and put in the resending memory queue.
Upgrades
The following runtime dependencies have been upgraded (they have a different release cycle than XWiki Commons, XWiki Rendering and XWiki Platform):
- CSS4J 3.1.0
- log4j API 2.14.0
- cssparser 0.9.29
- XStream 1.4.14
- Templates Application v1.0.6
- PostgresSQL connector 42.2.18
- MySQL connector 8.0.22
- Joda-Time 2.10.7
- Infinispan 11.0.5.Final
- Hibernate 5.4.23
- Guava 30.0-jre
- Closure Compiler v20201102
- Checker Qual 3.7.1
- Byte Buddy 1.10.18
- Bouncy Castle 1.67
Downgrades
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: | |
---|---|---|
Google Chrome 87 | Jira Tickets Marked as Fixed in the Release Notes | |
Mozilla Firefox 83 | Not Tested | |
Microsoft Edge 87 | Not Tested | |
Internet Explorer 11 | Not Tested | |
Safari 14 | Not Tested |
Here is the list of databases we support and how they have been tested for this release:
Database | Tested on: | |
---|---|---|
HyperSQL 2.5.1 | Not Tested | |
MySQL 8 | Not Tested | |
Oracle 19c | Not Tested | |
PostgreSQL 13 | Jira Tickets Marked as Fixed in the Release Notes | |
MariaDB 10.5 | 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.40 | Jira Tickets Marked as Fixed in the Release Notes | |
Jetty 9.4.29 (XWiki Standalone packaging) | Not Tested | |
Jetty 9.4.29 | Not 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 12.10
Changes in Infinispan configuration
With the upgrade to Infinispan 11.0.5 the format of the configuration changed in WEB-INF/cache/infinispan/config.xml:
- If you haven't cuztomized this file, you don't have anything to do.
- If you have customized it, then you should check the new format. For example, XWiki's default config.xml uses <local-cache> (to override the configuration of an XWiki cache) and this must be changed to <local-cache-configuration> (this tag existed before but Infinispan has changed the way they interpret it).
API Breakages
The following APIs were modified since XWiki 12.9:
- Unstable API.
- Violation type:java.method.numberOfParametersChanged
- Code:## Old:
method java.lang.String org.xwiki.security.authentication.api.AuthenticationFailureManager::getForm(java.lang.String)
## New:
method java.lang.String org.xwiki.security.authentication.api.AuthenticationFailureManager::getForm(java.lang.String, javax.servlet.http.HttpServletRequest)
- Violation type:
- Unstable API.
- Violation type:java.method.numberOfParametersChanged
- Code:## Old:
method boolean org.xwiki.security.authentication.api.AuthenticationFailureManager::recordAuthenticationFailure(java.lang.String)
## New:
method boolean org.xwiki.security.authentication.api.AuthenticationFailureManager::recordAuthenticationFailure(java.lang.String, javax.servlet.http.HttpServletRequest)
- Violation type:
- Unstable API.
- Violation type:java.method.parameterTypeChanged
- Code:## Old:
parameter boolean org.xwiki.security.authentication.api.AuthenticationFailureManager::validateForm(java.lang.String, ===org.securityfilter.filter.SecurityRequestWrapper===)
## New:
parameter boolean org.xwiki.security.authentication.api.AuthenticationFailureManager::validateForm(java.lang.String, ===javax.servlet.http.HttpServletRequest===)
- Violation type:
- Unstable API.
- Violation type:java.method.parameterTypeChanged
- Code:## Old:
parameter boolean org.xwiki.security.authentication.api.AuthenticationFailureStrategy::validateForm(java.lang.String, ===org.securityfilter.filter.SecurityRequestWrapper===)
## New:
parameter boolean org.xwiki.security.authentication.api.AuthenticationFailureStrategy::validateForm(java.lang.String, ===javax.servlet.http.HttpServletRequest===)
- Violation type:
- Young API. Redesign of the mention notifications mechanism.
- Violation type:java.class.removed
- Code:## Old:
interface org.xwiki.mentions.MentionNotificationService
- Violation type:
- Young API. Redesign of the mention notifications mechanism.
- Violation type:java.method.numberOfParametersChanged
- Code:## Old:
method void org.xwiki.mentions.notifications.MentionNotificationParameters::<init>(org.xwiki.model.reference.DocumentReference, org.xwiki.model.reference.DocumentReference, org.xwiki.model.reference.DocumentReference, org.xwiki.mentions.MentionLocation, java.lang.String, org.xwiki.rendering.block.XDOM)
## New:
method void org.xwiki.mentions.notifications.MentionNotificationParameters::<init>(java.lang.String, org.xwiki.model.reference.EntityReference, org.xwiki.mentions.MentionLocation, java.lang.String)
- Violation type:
- Young API. Redesign of the mention notifications mechanism.
- Violation type:java.method.removed
- Code:## Old:
method java.lang.String org.xwiki.mentions.notifications.MentionNotificationParameters::getAnchorId()
- Violation type:
- Young API. Redesign of the mention notifications mechanism.
- Violation type:java.method.returnTypeChanged
- Code:## Old:
method org.xwiki.model.reference.DocumentReference org.xwiki.mentions.notifications.MentionNotificationParameters::getAuthorReference()
## New:
method java.lang.String org.xwiki.mentions.notifications.MentionNotificationParameters::getAuthorReference()
- Violation type:
- Young API. Redesign of the mention notifications mechanism.
- Violation type:java.method.removed
- Code:## Old:
method org.xwiki.model.reference.DocumentReference org.xwiki.mentions.notifications.MentionNotificationParameters::getDocumentReference()
- Violation type:
- Young API. Redesign of the mention notifications mechanism.
- Violation type:java.method.removed
- Code:## Old:
method org.xwiki.model.reference.DocumentReference org.xwiki.mentions.notifications.MentionNotificationParameters::getMentionedIdentity()
- Violation type:
- Young API. Redesign of the mention notifications mechanism.
- Violation type:java.method.removed
- Code:## Old:
method org.xwiki.rendering.block.XDOM org.xwiki.mentions.notifications.MentionNotificationParameters::getXdom()
- Violation type:
- Young API. Redesign of the mention notifications mechanism.
- Violation type:java.method.numberOfParametersChanged
- Code:## Old:
method java.lang.String org.xwiki.mentions.script.MentionsScriptService::format(java.lang.String, org.xwiki.mentions.DisplayStyle)
## New:
method java.lang.String org.xwiki.mentions.script.MentionsScriptService::format(java.lang.String, org.xwiki.mentions.DisplayStyle, java.lang.String)
- Violation type:
- Not a breackage
- Violation type:java.field.constantValueChanged
- Code:## Old:
field org.xwiki.search.solr.AbstractSolrCoreInitializer.SCHEMA_BASE_VERSION
## New:
field org.xwiki.search.solr.AbstractSolrCoreInitializer.SCHEMA_BASE_VERSION
- Violation type:
- Young API.
- Violation type:java.method.addedToInterface
- Code:## Old:
## New:
method long org.xwiki.ratings.RatingsManager::moveRatings(org.xwiki.model.reference.EntityReference, org.xwiki.model.reference.EntityReference) throws org.xwiki.ratings.RatingsException
- Violation type:
- Young API: fix typo.
- Violation type:java.method.removed
- Code:## Old:
method void org.xwiki.ratings.RatingsManager::setIdentifer(java.lang.String)
- Violation type:
- Young API: fix typo.
- Violation type:java.method.addedToInterface
- Code:## Old:
## New:
method void org.xwiki.ratings.RatingsManager::setIdentifier(java.lang.String)
- Violation type:
Credits
The following people have contributed code and translations to this release (sorted alphabetically):
- Abhishek Kumar
- Carlos Amengual
- Clemens Robbenhaar
- Clément Desableau
- DenisF
- Eduard Moraru
- Eunike Leti Kajiwara
- Francisco García Moreno
- Guillaume Delhumeau
- Jarle Sandmo
- Joan
- Leif Erik Andersen
- Manuel Leduc
- Marius Dumitru Florea
- Simon Urli
- Thomas Mortagne
- Vincent Massol
- Wing Pang
- xrichard