Friki 2.1.1 Release Note

This release note describes the "stable" release of Friki 2.1.1, It includes details of changes since the previous stable release (2.0.6), as well as the changes between the various "development" releases (2.0.7, 2.1.1 beta 1, 2.1.1 beta 2, and 2.1.1 rc1).

Overview of ths Release

Development on Friki 2.1.1 was started to solve three main problems which had been irritating users of the previous stable release.

The problem which generated the most comments was the inability to include more than one "pre-formatted block" in a Friki page. This, together with a few other accumulated niggles led to a complete redesign of the way pages are transformed from "wiki markup" into HTML for viewing in a browser. In the old Friki 2.0, all the details of the transformation were embedded in Java code. Although this code used regular expressions to recognize and replace patterns in the page, there was no way to alter these regular expressions without editing, recompiling, and rebuilding the complete application. Friki 2.1 has scrapped all the old transsformation code in favour of a more generic approach, which loads the complete transformation specification from a configuration file, allowing a Friki administrator to tinker and add extra transformations even without stopping a running Friki.

The second major problem was that rebuilding Friki 2.0 from source code was not an easy task. Friki has always been "open source", but this is only of academic use if you can't change things and regenerate a new Friki incorporating your changes. Even had users been tempted to enhance or fix problems in Friki 2.0, rebuilding it was worryingly difficult. Embedded in the build process were assumptions about where code was located, and the presence of other, unrelated, software. Friki 2.0 had also been stable for long enough that it had become "out of synch" with developments in some of the external library code it used, which meant that finding the correct versions of such code, and debugging problems when using it, became an almost insoluble problem. Friki 2.1 has solved this by "catching up" with the external library code, rewriting the build system, and making sure that all needed resources are provided in the source release. It makes the source release a little bigger, but it does mean that you can build your own Friki from scratch with just a Java SDK and Ant.

The final major problem was the lack of support for accented and other non-ASCII characters. Java as a whole supports the full range of unicode characters but, at several places in the code and the transformation regular expressions. Friki 2.0 made assumptions which prevented effective use of other characters. Friki 2.1 has addressed these issues and now correctly preserves non-ASCII characters in stored pages, and supports their use in WikiNames, where appropriate.

Along with these major issues, there are a whole bunch of smaller fixes and improvements including a first stab at a display of what has changed on a page, and a much simpler and more flexible way of reconfiguring almost every aspect of the software without stopping the server or the application.

Detailed Change List

Changes in 2.1.1 final

Changes in 2.1.1 beta 3 (a.k.a 2.1.1 rc1)

Changes in 2.1.1 beta 2

Changes in 2.1.1 beta 1

Changes in 2.0.7


Version 2.1.114 May 2004 Frank Carver