Summary of the XWiki 9.x Cycle

Version 3.25 by Ecaterina Moraru (Valica) on 2018/01/05
Warning: For security reasons, the document is displayed in restricted mode as it is not the current version. There may be differences and errors due to this.

This is a summary of the release notes for XWiki Commons, XWiki Rendering and XWiki Platform, for the whole 9.x cycle (i.e. the whole year 2017). They share the same release notes as they are released together and have the same version.

The biggest highlight of this cycle is ...

XWiki Enterprise is dead, long live XWiki Standard! Added support for Flavors.

New Notifications (grouping, templates, by mail, filters, diff)

Administration reorganization

HTML export

Protection against accidental deletion of important pages

We continued improving the CKEditor integration

Attachment improvements like better handling of bigger attachments and preview.

Work Done

The work is organised using JIRA and here are some JIRA stats of what happened during the 9.x cycle:

  • 1003 issues were closed (See the full JIRA issue list)
  • 480 bugs closed, 254 improvements, 53 new features and more:

    jira-issue-types-9x.png

  • And the top JIRA participants (those contributing to more than 1% of the total jira issue number):

    jira-assignees-9x.png

Congrats to all who participated!

Top 10 Features

Top User Features

For our users, here are the top features that we wish to highlight:

Improved Notifications UI

The notifications menu is more clear now, and a link to see what has changed is available in the details of each event, when you click on the date.

Improved Code Viewer with Blame View

The code viewer (More Actions > View Source) has been improved to look nicer and have proper line numbers that support highlighting and linking.

A new Blame View was also added to the code viewer. In this mode, each line of the document's content is annotated with the last author that modified it and the revision in which this modification was introduced. The blame view also works when viewing the source of a document revision (other than the latest one) so it can be accessed at any point in the history of a document. See the documentation for more details.

Watchlist to be replaced by Notifications

At the end of the 9.x cycle, we plan to remove the Watchlist Application from XWiki Standard. Before being able to do this, we need that the Notifications Application be able to propose the same features (and even more possibilities).

In this version, you can now receive notifications concerning a watched location (ie: a page, a page and its children, a wiki..), without enabling any specific type of events in the preferences.

Warning

This feature is disabled by default (and the Watchlist Application is active by default). See Notifications Application to know how to enable it.

The old WYSIWYG editor based on Google WebToolkit has been removed

In XWiki 8.2RC1 we made CKEditor the default WYSIWYG editor but the users could still use the old Google WebToolkit (GWT) editor by enabling it in the wiki administration. Starting with this version the old WYSIWYG editor is no longer available. CKEditor remains the only WYSIWYG editor option available in XWiki by default.

Restore a batch of deleted documents

If you have performed an operation that deletes multiple documents at the same time (like delete with children or delete space), it is now possible to restore all the deleted documents together, to their original state and location.

This is achieved by assigning a common batch ID to the deleted documents in the recycle bin. You can now browse the deleted documents and group them by batch.

For each deleted document, you can now also choose to see the batch where it was deleted from and if you want to restore just one document or the entire batch.

Check the documentation for more details.

Notifications

We have introduced a list of notifications in the top menu, that list some events that have occurred in the wiki recently: a page has been created, a new blog post has been published, etc...

See the Notifications Application's page to have more infos.

Improved Notifications email layout

The email layout for notifications has been totally redesigned.

Improved Attachment Index

The Attachments tab from the Page Index has been improved:

  • the Space and Page columns have been replaced with the Location column
  • the Type column is now the first column and you can sort and filter attachments by file type
  • the Type column uses the Icon Theme and shows a thumbnail preview for image attachments
  • there's a new column that displays the attachment file size, with support for sorting and filtering the attachments by their file size
  • attachments can be filtered by date using the new date range picker

We also fixed two important bugs:

  • the sort was not working correctly
  • attachments from hidden pages were displayed even if hidden pages were not visible

System and Extension pages are now protected against accidental deletion

You will no longer accidentally erase system or extensions pages and break your wiki! When you try to delete such pages, XWiki will now ask you to confirm the operation, and list all concerned pages.

Table of content in the notifications email

Now, the events described in the notification emails are ordered by pages, and then by dates. To have a quick view of all the changes, a table of content is now displayed at the beginning of the mail.

Top Admin Features

For our admins, here are the top features that we wish to highlight:

New filesystem recycle bin

To work around database limitation when deleting documents with a lot of attachments a new file recycle bin component has been introduced.

You can enable in xwiki.cfg configuration file with the following:

xwiki.store.recyclebin.content.hint=file

Flavors search optimization

Speed up display of flavors mostly containing core dependencies (when resolving flavors dependencies, just assume those with know recommended versions are valid).

XWiki Enterprise is dead, long live XWiki Standard!

The XWiki Enterprise distribution of XWiki has been abandoned and replaced in 9.5 by a new XWiki Standard flavor.

Here are the main changes in 9.5 related to distribution packages and flavors:

  • XWiki Enterprise does not exist anymore
  • A new XWiki Standard flavor has been introduced (actually two: one for the main wiki and one for sub wikis like XWiki Enterprise had)
  • Administrators now install XWiki and get to choose which flavor they want (at the time of 9.5 release only XWiki Standard is available but there will be many more as contributors add new ones on http://extensions.xwiki.org) to install on top of it
  • A XIP package is provided to help with offline install use case
  • Graphical installers have been abandoned, too hard to maintain (and not working very well anyway) and not providing much value for something that was unusable in production

Top Developer Features

For our developers, here are the top features that we wish to highlight:

Safe escaping when querying

When writing XWQL or HQL, it's easy to forget to escape the %, _ or even the [ character in LIKE clauses. It's also easy to forget that MySQL considers the default escape character to be \ and thus when you have a serialized Entity Reference in a LIKE you need to change the escape character as otherwise pages with dots (.) in their names won't match!

To avoid bother we're introducing a new Query Manager API when binding a value.

Example usage:

$services.query.xwql("xwqlstatement like :ref").bindValue("ref").literal("${documentReference}.").anyChars().query().execute()

Jobs improvements

  • org.xwiki.job.event.status.JobStatus#ask now allows passing a timeout as parameter
  • a new REST API is available to start any job, see Job REST API (require programming right)
  • the existing REST API to get the job status has been improved to also get the request and the log all at once

XAR export/import changes

  • The XML produced in XAR files is now following the XML 1.1 specification (instead of 1.0). Since it's mostly about supporting thing that were simply not working before there should not be any retro compatibility issues.
  • All from/toXML methods located in classes like XWikiDocument, BaseObject, BaseClass, etc. are now based on Filter modules which became the only way to produce XAR XML format. The only difference remaining when using xwiki.action.export.xar.usefilter and xwiki.action.import.xar.usefilter properties in xwiki.cfg configuration file is the handling of the XAR packaging.

Ability to store events in the event stream and display them as notifications

It is now possible to say to the Event Stream Module that some events, sent with the Observation Module, should be stored.

In addition, this events can be displayed in the notifications menu of users. See the tutorial: How to send notifications.

Filesystem templates now have programming right by default

It was decided to give filesystem template programming right by default. The used to be executed with the right of the current document.

Better handling of webjar extensions

A new webjars Maven extension is now available to package webjar extensions the "standard" way. It automate a bit of plumbing when producing webjar artifact with Maven and more importantly it explicitly indicate that those are webjar so that Extension Manager apply special handling for them (which usually means not requiring programming right to install them).

See WebJAR Maven Handler for more informations about the Maven plugin.

If you can't depend on 9.0 yet you can also use <xwiki.extension.jar.type>webjar</xwiki.extension.jar.type> Maven property which have pretty much the same effect from Extension Manager point of view (for someone installing your extension on 9.0+ of course).

Optional extension dependencies

It's now possible for Extension authors to define which of the dependencies are mandatory and which are optional. The Extension Manager will install all of them by default but optional dependencies won't have any impact on the validity of the extension:

  • if the optional dependency install plan fail, the extension is installed without it
  • if the optional dependency is uninstalled, it won't uninstall the extension
  • if the optional dependency is missing at startup, it won't make the extension invalid

Runtime injection of REST resources

  • It's now possible to install/uninstall/upgrade REST resources dynamically (it used to require a restart of XWiki)
  • Upgrading/uninstalling a JAR extension doesn't break REST resources coming from extensions anymore

Detailed Release Notes

If you wish to see the full details of all features and improvements you can check each release note.

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [xwiki:ReleaseNotes.Code.ReleaseNotesArchiveMacro.WebHome]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [xwiki:ReleaseNotes.ReleaseNotesXWiki9x.WebHome]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.

Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [xwiki:ReleaseNotes.ReleaseNotesXWiki9x.WebHome]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.

Get Connected