TWiki Release 4.1.0 is a minor release. TWiki releases are either major (major new features and changes in architecture), minor (enhancements and bug fixes), or patch releases (bug fixes only) which can be installed as upgrades on production installations.
TWiki Release 4.1.0 introduces some good enhancements and quite many bug fixes since 4.0.5. It requires some manual work to upgrade from TWiki 4.0.5 to 4.1.0. Depending on the tailoring you have made it may take between 10 minutes to two hours to do an upgrade. If you have not made any changes to the skins the upgrade is for sure an effort that takes less than 30 minutes.
The development team has done everything to maintain full compatibility with topics generated in TWiki-4.0 and there are no changes to the topic format.
TWiki 4.1.1 addresses a series of bugs found in the first 4 weeks after the release of TWiki 4.1.0.
New Features Highlights
Easier Installation and Upgrade
Plugins can now be installed from the configure script.
The loading of plugin preferences settings has been moved earlier in the preferences evaluation order so that plugin settings can be redefined in Main.TWikiPreferences, WebPreferences and in topics. To make TWiki upgrades easier, it is recommended to set the plugin settings in Main.TWikiPreferences, and not to customize the settings in the plugin topic. For example, to change the TEMPLATES setting of the CommentPlugin, create a new COMMENTPLUGIN_TEMPLATES setting in Main.TWikiPreferences.
Plugin settings can now be defined in configure instead of in the plugin topic (requires that the individual plugin has implemented this). TWiki performs slightly better by not looking for preferences settings in plugin topics.
Configure no longer shows many unnecessary errors when run first time.
The webmaster email address is now defined in configure instead of TWikiPreferences.
Default file access rights in the distribution package have been changed to be more universally defined and in line with the default access rights for new topics.
Usability Enhancements
Redesigned result page when typing incomplete topic name into the Jump box, so that it is possible to quickly navigate to a topic, also in a very large TWiki installation. For example, "I know there is a topic about Ajax somewhere in the Eng web. OK, let my type Eng.ajax into the Jump box... Here we go, the third link is the AjaxCookbook I was looking for."
Many user documentation improvements.
URL parameters maintained in Table of Contents links so you can stay in a temporary skin (e.g. print) and keep URLPARAM values when you click the TOC links
Attachment tables now sorted alphabetically.
Better printing of tables and verbatim text in PatternSkin.
Application Platform Enhancements
Auto-incremented topic name on save with AUTOINC<n> in topic name; used by TWiki applications to create topic based database records.
The edit and save scripts support a redirectto parameter to redirect to a topic or a URL; for security, redirect to URL needs to be enabled with a {AllowRedirectUrl} configure flag.
CommentPlugin supports the redirectto parameter to redirect to a URL or link to TWiki topic after submitting comment.
The topic URL parameter also respects the {AllowRedirectUrl} configure flag so redirects to URLs can be disabled which could be abused for phishing attacks.
The view script supports a section URL parameter to view just a named section within a topic. Useful for simple AJAX type applications.
TablePlugin: Highlight the sorted column with custom colors; includes also a general cosmetic update of default colors.
TablePlugin: Support for initsort on more than one table. A table with the initsort option is initsorted UNLESS it is sorted by clicking on a column header. If you click on a header of another table all other tables goes back to the default sort defined by initsort or not sorted if no initsort, and the new table is sorted based on the user clicking on a table header.
Important Changes since 4.0.5
Supported Perl version
TWiki 4.0.5 worked on Perl version 5.6.X. Reports from users has shown that unfortunately TWiki 4.1.0 does not support Perl versions older then 5.8.0. It is the goal that TWiki should work on at least Perl version 5.6.X but none of the developers have had access to Perl installations older than 5.8.0.
Since TWiki 4.1.0 has some urgent bugs the development team decided to release TWiki 4.1.1 without resolving the issue with Perl 5.6.X. We will however address this and try and resolve it for a planned 4.1.2 release. The TWiki community is very interested in contributions from users that have fixes for the code which will enable TWiki to run on older versions of Perl.
See the WhatVersionsOfPerlAreSupported topic to keep up to date with the discussion how to get back support for earlier Perl versions.
Template spec changed
Until TWiki 4.0.5 TWikiTemplates the text inside template definition blocks (anything between %TMPL:DEF{"block"}% and %TMPL:END% was stripped of leading and trailing white space incl new lines.
This caused a lot of problems for skin developers when you wanted a newline before or after the block text.
From TWiki 4.1.0 this has changed so that white space is no longer stripped. Skins like PatternSkin and NatSkin have been updated so that they work with the new behavior. But if you use an older skin or have written your own you will most likely need to make some adjustments.
It is not difficult. The general rule is - if you get mysterious blank lines in your skin, the newline after the %TMPL:DEF{"block"}% needs to be removed. Ie. the content of the block must follow on the same line as the TMPL:DEF.
The spec change have the same impact on CommentPlugin templates where you may have to remove the first line break after the TMPL:DEF. See the CommentPluginTemplate for examples of how comment template definitions should look like in TWiki-4.1.X
An example: A CommentPlugin template that adds a comment as appending a row to a table. Before the spec change this would work.
The advantage of the spec change is that now you can add leading and trailing white space including new lines. This was not possible before.
Important Changes since 4.1.0
An upgrader should note the following important changes.
The directory for passthrough files and session files have been replaced by a common directory for temporary files used by TWiki. Previously the two configure settings {PassthroughDir} and {Sessions}{Dir} were by default set to /tmp. These config settings have been replaced by {TempfileDir} with the default setting value /tmp/twiki. If the twiki directory does not exist twiki will create it first time it needs it. It is highly recommended no longer to use the tmp directory common to other web applications and the new default will work fine for most. You may want to delete all the old session files in /tmp after the upgrade to 4.1.1. They all start with cgisess_. It is additionally highly recommended to limit write access to the {TempfileDir} for security reasons if you have non-admin users with login access to the webserver just like you would do with the other webserver directories.
Many bugs fixed. If you had to implement work arounds to make things work chances are that they are fixed now. See the detailed bugfix list below.
Important Changes since 4.1.1
TWiki works again on Perl 5.6.X
TWiki has now been tested and a few small code changes made so that TWiki now runs on Perl 5.6.X
TWiki 4.1.2 has been confirmed working on the combination RedHat? 7.3, Apache 1.3.23, Perl 5.6.1. Note that many plugins requires Perl 5.8 or at least additional CPAN libraries.
An upgrader should note the following important changes.
The twisty that used to hide the attachment table has been removed because the Javascript code triggers a bug in Internet Explorer when a topic is long making page rendering take up to 1 minute. The twisty may return in later versions of TWiki when the bug has been resolved.
Users of mod_perl should notice a new experimental feature that speeds up searching by a large factor. The feature is described in the NativeSearch topic at the TWiki website. In configure look for the {RCS}{SearchAlgorithm} setting. Normal mode is Forking. The new mode for mod_perl is Native and is a C program which needs to be compiled with a C-compiler like gcc, and this new mode works faster than forking on mod_perl. If you do not run mod_perl stick to the default Forking.
/tmp/twiki directory which was introduced with 4.1.1 is now auto created also with older versions of the CGI::Session library. This is important for distributions that cleans out /tmp when rebooting.
Configure has gotten much better at installing extensions such as plugins.
Configure is now more friendly to a new administator. Configure now only shows the important "General Path Settings" until you have saved and created the LocalSite? .cfg file. This prevents a number of false errors from being wrongly fixed by a first time installer.
The documented bahavior of "* Set ALLOWTOPICCHANGE = (nothing)" does not match the code. Documentation has been updated to match actual behavior in 4.1.2. See also deprecation notice below. You should review your use of access rights settings in topics.
Deprecation Notices
Usage of TWikiForms for setting preferences has been deprecated in favor of TWiki:Plugins.PreferencesPlugin. PreferencesPlugin has been included since TWiki 4.0.0 to allow more convenient editing of preferences. This plugin provides input controls, such as menus, radio buttons, and checkboxes to select preference settings.
From TWiki 4.0.0 the syntax "* Set DENYTOPICVIEW = " (nothing) in a topic means deny noone. Even if ALLOWTOPICVIEW is set to people or group setting DENYTOPICCHANGE to nothing means allow anyone. You have to remove the DENYTOPICVIEW or comment it out to have the ALLOWTOPICVIEW working. The reason for this behavior is that it enables limiting access to an entire web by setting a blank DENYTOPICVIEW setting. Same rule applies for DENYTOPICCHANGE and DENYTOPICRENAME. The rule does not apply for access rights defined for webs. Ie. "*Set DENYWEBCHANGE = " does not allow anyone to edit topics in the web. There has been strong oppinions against the syntax "* Set DENYTOPICXXXX = " meaning giving all access. So please be warned that we will change the syntax to a more transparent and logical syntax in future but we will ensure that it is still possible to secure a web and open up individual topics in future also.
Bug Fix Highlights
User Topics
Unused settings on users home topic removed. (no need to update existing user topics - they are still compatible with all features.)
An attribute column has been added to the UserForm used on users home topic. If you tailored this form just continue using your existing form.
Security
The topic="" parameter to the view script now respects the {AllowRedirectUrl} configure flag so you can disable redirecting to URLs which could be abused for phishing attacks.
The print view handled is updated to allow custom templates that can be printed. Note that the viewprint template is subject to additional changes in next releases.
The Kupu WYSIWYG editor has been split out of WysiwygPlugin into KupuContrib to allow other editors to be integrated with TWiki.
Printing
Verbatim Text not completly printing with IE6.0.
Printable loses URL parameters.
Printing in Firefox truncates tables.
Miscellaneous Bug Fixes
Don't include anything when trying to include a non existing section.
Turn off {AutoAttachPubFiles} in default distribution.
The edit url parameters are not properly passed through change form screen and checkpoint save.
Formfield not correctly rendered when type is textarea.
IF cannot check for existence of INCLUDE parameter.
Firefox downloads attachments as the topic name and not the real file name.
Edit and FormattedSearch expands $nop, $quot, $percnt, $dollar in $formfield()
Scripts hang in TWiki::UI:run at drain STDIN logic (this is now configurable - whether you need it depends on OS and webserver.)
Non-graceful error handling on mail issue during registration.
Include of external doc set wrong url in relative links.
In INCLUDE, warn parameter does not work when including a URL.
WEBMANAGE permission no longer required (removed.)
Context not authenticated despite Apache Require valid-user Login.
INCLUDE of URL on subdomain returns wrong pages.
Combined hidden and mandatory form fields were not hidden in 4.1.0 and 4.1.1.
When creating a new topic, the template is always "Default template", even when the web has a WebTopicEditTemplate properly configured in the preferences.