Summary of the XWiki 9.x Cycle

Last modified by Ecaterina Moraru (Valica) on 2018/01/05

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.

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

Here are the top 10 features that we wish to mention (arbitrarily hand-picked; it's hard to pick 10 out of 307 improvements and new features):

  1. Flavors
  2. Notifications
  3. CKEditor Integration Improvements
  4. Administration reorganization
  5. Protection against accidental deletion
  6. Restore a batch of deleted pages
  7. Attachments improvements
  8. More Livetables filters
  9. Blame View and Syntax Highlighting
  10. Other usability improvements

Flavors

We switched from the old "XWiki Enterprise" package and we now provide the "XWiki Standard" flavor. When creating a new wiki, Administrators can choose which flavor they want.

In XWiki, a flavor is simply a bundle of extensions that serve a particular usage. We expect in the future that the community members will provide additional flavors built on top of XWiki. Imagine a flavor for application development, one for documentation, one for procedures or even a flavor created especially for your team. Using flavors you can customize your XWiki to the smallest details.

Notifications

Notifications is the biggest new feature for this cycle.

You can subscribe to be notified about events happening in your wiki. You control the level of details you want to receive and what applications and pages are interesting for you. For example you can decide to receive Notifications when Comments are created but only on the Blog page and its children.

Notifications can be received in the UI or by email. The emails are sent periodically and according to you preferences: hourly, daily, weekly or live. A user can now define notification filters that are either inclusive or exclusive, and can even black list some users.

The Watchlist feature has been deprecated by the Notifications functionality.

CKEditor Integration Improvements

In 8.x we added the CKEditor. Since then we improved even more the integration by preventing the editor from generating content that cannot be saved as wiki syntax, adding more styles supported by XWiki, creating dedicated Insert Macro buttons, importing office files directly from the CKEditor, etc. The support for wiki rendering macros has also been improved. Inserting a block-level macro in-line will split the paragraph, avoiding the "macro cannot be used inline" error.

We also upgraded the editor to the 4.7.3 version which brings a couple of improvements and bug fixes.

We finally removed the old WYSIWYG editor based on Google WebToolkit.

Administration reorganization

The Administration has been reorganized. Most of the administration sections from the "Applications" group have been moved to existing or new groups. We applied a consistent style across all the administration sections and we added more hints for the configuration options. The administration menu is now implemented using a collapsible accordion and has a search input at the top that can be used to filter the administration categories and sections. 

Protection against accidental deletion

System and Extension pages are now protected against accidental deletion. When you try to delete such pages, XWiki will now ask you to confirm the operation, and list all concerned pages.

Restore a batch of deleted pages

If you have performed an operation that deletes multiple pages at the same time (like delete with children or delete space), it is now possible to restore all the deleted pages together, to their original state and location. For each deleted page, you can now also choose to see the batch where it was deleted from and if you want to restore just one page or the entire batch.

Attachments improvements

Preview of attachments are displayed in the attachments tab at the bottom of the page.

We improved also the Attachments tab from the Page Index by providing a thumbnail preview for image attachments, allowing filtering by attachment type, file size, date, etc.

Added several improvements also to the Attachments Selector. Added support for attachments bigger than 2GB and many other Filesystem attachment improvements.

More Livetables filters

We added user suggest and date filters for our LiveTables. We also provide a suggest filter for any column that corresponds to a Database List property. Multilists are now filterable.

Blame View and Syntax Highlighting

Working with the syntax has become easier. The Syntax Highlighting Application is now bundled and used in the wiki and object editors.

A new Blame View was also added to the code viewer (More Actions > View Source). In this mode, each line of the page'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 page revision (other than the latest one) so it can be accessed at any point in the history of a page.

Other usability improvements

We are slowly improving usability across the interface. From improving the grouping and naming of our menus, to bundling more useful applications for newcomers, like the Help Center and the Menu Application.

We improved the way we recommend Templates when creating pages. Example: When going to the Blog home page or when on any Blog post, if you try to create a page, you will see that the Blog Post Template will be displayed first in the list and it will be pre-selected. 

The Admin user used to be an Advanced user by default, and this was troubling for users discovering XWiki since they were seeing advanced features from the onset. The Admin user is now a Simple user.

We will continue improving usability across XWiki. If you have suggestions don't hesitate to tell them at forum.xwiki.org.

Top User Features

For our users, here are the top features from the Release Notes:

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 Notifications email layout

The email layout for notifications has been totally redesigned.

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.

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

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.

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.

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.

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.

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

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.

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.

Top Admin Features

For our admins, here are the top features from the Release Notes:

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

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).

Top Developer Features

For our developers, here are the top features from the Release Notes:

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.

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

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

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.

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()

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.

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

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).

Detailed Release Notes

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

Check the highlight and summary of the XWiki 9.x cycle.

Version 9.9.x

Version 9.8.x

Version 9.7.x

Version 9.6.x

Version 9.5.x

Version 9.4.x

Version 9.3.x

Version 9.2.x

Version 9.11.x

Version 9.10.x

Version 9.1.x

Version 9.0.x

Tags:
Created by Ecaterina Moraru (Valica) on 2017/07/18
   

Get Connected