Release Notes for XWiki 15.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 is another release focused mainly on bugs and security fixes, but it also includes improvements on the WYSIWYG editor's image dialog and the PDF export. The developers might be interested by the new source parameter for the content and context macros.
New and Noteworthy (since XWiki 15.0)
Full list of issues fixed and Dashboard for 15.1.
For Users
Warning when the dimensions are larger than the selected image
A warning message is displayed to the user when the width or height of an image are larger than the dimensions of the selected image.
Miscellaneous
PDF Internal Links: The PDF export is now generating internal links as much as possible. By internal links we mean links that make the PDF viewer scroll the target content into view rather than opening it in a web browser. The following types of internal links are supported:
- links to a fragment from the same page that is included in the PDF export (e.g. #HDescription)
- links to a fragment from another page that is included in the PDF export (e.g. /xwiki/bin/view/Other/Page#HDescription)
- links to another page that is included in the PDF export (e.g. /xwiki/bin/view/Other/Page)
Internal links that use fragment identifiers are updated automatically, before printing the content to PDF, to target the corresponding global fragment identifier that is generated by the shared id generator used when rendering multiple pages for PDF export. In other words, having multiple sections with the same name in the PDF export shouldn't cause any problems because the links that target them are updated properly.
Checkout the PDF Export Application documentation for more information.
Tags are hidden when there are none: When there aren't any tags assigned to a page, the text “Tags:” is no longer displayed at the bottom of the page unless the user has edit rights.
The tabulator order in the page creation Location breadcrumb now matches the visuals, going from left to right as expected.
Limit parameter in tag cloud: The tag cloud macro supports a new parameter to limit the number of tags to the n most occurring tags.
The location picker breadcrumb icons now have a proper text alternative displayed on hover to assist in the understanding of their use.
For Admins
The administration right buttons now have a proper text alternative. It can be displayed on hover.
For Developers
New source support for content and context macros
The content and context macros now have an alternative way to indicate the content to parse, which allows executing content coming from a script value. See Content Macro for more details.
Miscellaneous
What's New API: New experimental API to gather external news related to XWiki.
Example to get news items from a xwikiblog source, for a given user, filtered by a category:
@Inject
@Named("xwikiblog")
private NewsSourceFactory factory;
@Inject
@Named("xwikiblog")
private NewsConfiguration configuration;
...
List<NewsSourceDescriptor> descriptors = this.configuration.getNewsSourceDescriptors();
NewsSourceDescriptor descriptor = descriptors.get(0);
List<NewsSourceItem> items = this.factory.create(descriptor.getParameters())
.forUser(...)
.forCategories(...)
.build()
NewsContent content = items.get(0).getDescription().get();
String itemDescription = content.getContent();
Syntax itemSyntax = content.getSyntax();
...Refactored tips panel extension point: The tips panel extension point has been refactored to be safer and easier to use. See the "Add Tip to Tips Panel" extension point for more details on how to define a tip in 15.1+. Note that any custom tip you may have will continue to work as is, but we encourage you to move the tip definitions from the UIXP parameter to the UIXP content as the old way is now deprecated and will be removed one day (and it's also safer to use the new way).
Velocity macro for sanitizing URLs: A new velocity macro has been provided to allow getting sanitized URLs from request parameters to be used in HTML.
Upgrades
The following runtime dependencies have been upgraded (they have a different release cycle than XWiki Commons, XWiki Rendering and XWiki Platform):
- CSS4J & CSS4J-DOM4J 3.9.1
- XML-DTD 4.1.1
- MySQL connector 8.0.32
- MariaDB connector 3.1.2
- Liquibase 4.19.0
- Jackson 2.14.2
- JGroups 5.2.12
- Infinispan 14.0.6
- Dom4j 2.1.4
- Templates Application v1.0.9
- Tour Application 1.3.7
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 110 | Jira Tickets Marked as Fixed in the Release Notes | |
Google Chrome 110 | Tests run and results | |
Microsoft Edge 110 | 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.1 | Not Tested | |
MariaDB 10.6 | Not Tested | |
MySQL 8 | Tests run and results | |
PostgreSQL 15 | 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 tested for this release:
Servlet Container | Tested on: | |
---|---|---|
Tomcat 9.0.72 | ||
Jetty 10.0.12 (XWiki Standalone packaging) | ||
Jetty 10.0.12 | 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 15.1
Reinitialization of Solr search index during migration
A bug with the Solr search index has been fixed as part of this release, but it needs a reindex of the documents to be properly taken into account. The migration will empty the index so that a full reindex is performed: as a consequence the search feature might take a bit of time to be entirely working after the first restart depending on the number of documents in your wiki.
Delete right now implies View right
The Delete right now implies the View right: this means that starting with this version, if a user has the Delete right on a page, they're also implicitly gaining the View right on it.
API Breakages
The following APIs were modified since XWiki 15.0:
Unstable APIs
Not real backward compatibility breakages since they were done on APIs marked @Unstable (a.k.a Young APIs). Thus it's part of the contract that they can be broken until they become stable. They're listed purely for reference in case you decided to still use them (and thus agreed to be broken).
- Young API. Refactored into a more generic version exposed by xwiki-rendering.
- Violation type:java.method.returnTypeChanged
- Code:## Old:
method org.xwiki.rendering.macro.code.source.CodeMacroSourceReference org.xwiki.rendering.macro.code.CodeMacroParameters::getSource()
## New:
method org.xwiki.rendering.macro.source.MacroContentSourceReference org.xwiki.rendering.macro.code.CodeMacroParameters::getSource()
- Violation type:
- Young API. Refactored into a more generic version exposed by xwiki-rendering.
- Violation type:java.method.parameterTypeChanged
- Code:## Old:
parameter void org.xwiki.rendering.macro.code.CodeMacroParameters::setSource(===org.xwiki.rendering.macro.code.source.CodeMacroSourceReference===)
## New:
parameter void org.xwiki.rendering.macro.code.CodeMacroParameters::setSource(===org.xwiki.rendering.macro.source.MacroContentSourceReference===)
- Violation type:
- Young API. Refactored into a more generic version exposed by xwiki-rendering.
- Violation type:java.method.parameterTypeChanged
- Code:## Old:
parameter void org.xwiki.rendering.macro.code.source.CodeMacroSource::<init>(===org.xwiki.rendering.macro.code.source.CodeMacroSourceReference===, java.lang.String, java.lang.String)
## New:
parameter void org.xwiki.rendering.macro.code.source.CodeMacroSource::<init>(===org.xwiki.rendering.macro.source.MacroContentSourceReference===, java.lang.String, java.lang.String)
- Violation type:
- Young API. Refactored into a more generic version exposed by xwiki-rendering.
- Violation type:java.method.returnTypeChanged
- Code:## Old:
method org.xwiki.rendering.macro.code.source.CodeMacroSourceReference org.xwiki.rendering.macro.code.source.CodeMacroSource::getReference()
## New:
method org.xwiki.rendering.macro.source.MacroContentSourceReference org.xwiki.rendering.macro.code.source.CodeMacroSource::getReference()
- Violation type:
- Young API. Refactored into a more generic version exposed by xwiki-rendering.
- Violation type:java.method.parameterTypeChanged
- Code:## Old:
parameter org.xwiki.rendering.macro.code.source.CodeMacroSource org.xwiki.rendering.macro.code.source.CodeMacroSourceFactory::getContent(===org.xwiki.rendering.macro.code.source.CodeMacroSourceReference===, org.xwiki.rendering.transformation.MacroTransformationContext) throws org.xwiki.rendering.macro.MacroExecutionException
## New:
parameter org.xwiki.rendering.macro.code.source.CodeMacroSource org.xwiki.rendering.macro.code.source.CodeMacroSourceFactory::getContent(===org.xwiki.rendering.macro.source.MacroContentSourceReference===, org.xwiki.rendering.transformation.MacroTransformationContext) throws org.xwiki.rendering.macro.MacroExecutionException
- Violation type:
- Young API. Refactored into a more generic version exposed by xwiki-rendering.
- Violation type:java.class.removed
- Code:## Old:
class org.xwiki.rendering.macro.code.source.CodeMacroSourceReference
- Violation type:
- Young API. Refactored into a more generic version exposed by xwiki-rendering.
- Violation type:java.class.removed
- Code:## Old:
interface org.xwiki.rendering.macro.code.source.CodeMacroSourceReferenceConverter<T>
- Violation type:
- Removed unused method from unstable API.
- Violation type:java.method.removed
- Code:## Old:
method void org.xwiki.export.pdf.browser.BrowserTab::setBaseURL(java.net.URL) throws java.io.IOException
- Violation type:
Credits
The following people have contributed code and translations to this release (sorted alphabetically):
- Abhay Kumar Gupta
- Alex Cotiugă
- ClemDee
- Clemens Robbenhaar
- Clément Aubin
- Gankov Andrey
- Jesse Veentjer
- Kevin222004
- Manuel Leduc
- Marius Dumitru Florea
- Michael Hamann
- Nelson Osacky
- Nikita Petrenko
- Oana-Lavinia Florean
- Rajat Khanduri
- Sachin Shukla
- Sereza7
- Simon Urli
- Simpel
- Suguru Hirahara
- Thomas Mortagne
- Vincent Massol
- vivek0719