%TOC% %STARTINCLUDE%
# TWiki Upgrade Guide
_Upgrade from TWiki 01-Dec-2000 to TWiki 01-Sep-2001 (previous to new full release)_
## Overview
The latest version of TWiki (01-Sep-2001) involves several major new features and numerous enhancements to the last full version (01-Dec-2001). The file system set-up is almost identical, but much of the underlying data structure and processes are new. With all the changes, the upgrade procedure is straightforward, and your existing page data is imported directly.
## Upgrade Requirements
* To upgrade from a 01-Dec-2000 standard installation to the new, next generation 01-Sep-2001 TWiki Production Release, follow the instructions below.
* **_NOTE:_** To upgrade from a **pre-01-Dec-2000** TWiki, start with %TWIKIWEB%.TWikiUpgradeTo01Dec2000.
* To upgrade from a Beta of the new release, or if you made custom modifications to the application, read through all new reference documentation, then use the procedure below as a guideline.
## Major Changes from TWiki 01-Dec-2000
The 01 Sep 2001 release includes the following new features and enhancements:
* **[[TWikiDocumentation]]** - Easily install program enhancements using external plug-in modules. Developers can create plug-ins in Perl, with the [[TWikiPlugins]].
* **[[TWikiDocumentation]]** (preinstalled) - Link to external sites with text aliases, `SiteAlias:Page`; rules are defined in [[InterWikis]]. (Get more Plugins from the TWiki:Plugins web.)
* **[[TWikiDocumentation]]** - New, more flexible template system.
* **[[TWikiDocumentation]]** - Overwrite template headers and footers; page content is unaffected.
* **[[TWikiDocumentation]]** - New data format
* **[[TWikiDocumentation]]** - Create multiple input forms per web; data is rendered in HTML tables.
* **[[TWikiDocumentation]]** Individual pages can be managed through the browser. Deleted topics are stored in a common Trash web.
* **[[TWikiDocumentation]]** Change and reset passwords using forms.
* **TOC (Table of Contents)** - %TOC%
variable generates a hierarchical table of contents from topic headings: <HI>...<H6>. Set depth.
* **[[TWIKIWEBTWikiVariables]]** - Text formatting rules to generate automatic links from any combination of words and spaces.
* **\[[%TWIKIWEB%.FileAttachments]\[Attachments Under Revision Control]** Changes to files attached to topics - - are now tracked under revision control (RCS).
* **ConvertToXHTML10** - Templates and HTML page rendering are in XHTML 1.0 as far as possible without breaking HTML 3.2 compliance.
* **HierarchicalNavigation** uses new Meta Data variables to link hierarchically, for example, as in Yahoo! and other search sites.
The TWiki directory structure remains the same, with one exception, the new `lib/TWiki/Plugins` directory tree to for the main configuration file, library, internal modules and the new Plugin modules. Pre-existing files were formerly in `bin`.
## Standard Upgrade Procedure
Follow this step-by-step guide to upgrade the 01 Dec 2000 version to the 01 Sep 2001 release, and import your original page data:
### Step 1: Backup & Unpack
1. 1. Backup all existing TWiki directories ( `bin`, `pub`, `data`, `templates` )
1. 1. Unpack the zip file into some working directory:
`mkdir -p ~/tmp/`
`cd ~/tmp`
`unzip ~/TWiki20001201.zip`
### Step 2: Upgrade TWiki document files
1. 1. Move the document files to your TWiki root ( `twiki` ):
`mv ~/tmp/TWiki*.html $TWIKIROOT`
`mv ~/tmp/index.html $TWIKIROOT`
`mv ~/tmp/readme.txt $TWIKIROOT`
`mv ~/tmp/license.txt $TWIKIROOT`
### Step 3: Upgrade CGI scripts
1. 1. Rename your original `twiki/bin` directory: ( `twiki/bin` )
`mv $TWIKIROOT/bin $TWIKIROOT/bin.old`
2. Move the new scripts to your original `twiki/bin` location, i.e.
`mv ~/tmp/bin $TWIKIROOT/bin`
3. Merge the changes in your current `wikicfg.pm` into the new `wikicfg.pm`. We suggest using `diff -c` to compare the two files if you have made heavy changes to the file:
`diff -c $TWIKIROOT/bin.old/wikicfg.pm $TWIKIROOT/bin/wikicfg.pm | less`
4. Restore any additional scripts you might have from the old directory, ex:
`mv $TWIKIROOT/bin.old/somescript $TWIKIROOT/bin/`
5. Test your TWiki installation if you can view topics.
* * Pay attention to the file and directory permissions (security issue)
### Step 4: Upgrade template files
1. 1. Rename your original `twiki/templates` directory: ( `twiki/templates` )
`mv $TWIKIROOT/templates $TWIKIROOT/templates.old`
2. Move the new templates to your original `twiki/templates` location:
`mv ~/tmp/templates $TWIKIROOT/templates`
3. Customized templates and skins need to be upgraded to the [[TWikiDocumentation]]. The safest way is to use the new templates as a base and to merge your changes back. Changes in new templates:
* Changed format from HTML to XHTML.
* Templates are now rendered by TWiki. You can use all [[TWikiDocumentation]], but you have to escape unwanted ones. Also, remove empty lines unless you want a `=
**notedited.tmpl**
template, create a [[WebTopicEditTemplate]] to conform with the new [[TWikiDocumentation]] feature. Retired `notedited.tmpl`, `notext.tmpl` and `notwiki.tmpl` templates.
7. Restore any additional template subdirectories of your TWiki webs you might have and merge the changes.
8. Test your TWiki installation to see if you can view topics.
### Step 5: Upgrade public files
1. 1. Move the new `twiki/pub/TWiki` directory to your installation: ( `twiki/pub` ) **.htaccess**
, add the `rename` script \* You may want to add `[ALLOW|DENY][WEB|TOPIC]RENAME` in some places, like %TWIKIWEB%TWikiPreferences, [[WebPreferences]] and %MAINWEB%.TWikiUsers
### General Format Changes
* Format changed of **%GMTIME\{"..."\}%**
and **%SERVERTIME\{"..."\}%**
variables. Format is now **"$hour:$min"**
instead of **"hour:min"**
. More in %TWIKIWEB%.TWikiVariables.
* [[ExtendingTableSyntax]]: Enhanced table syntax might have unwanted side effect: **| \*bold\* |**
cells, **| center aligned |**
and **| right aligned |**
cells, span multiple columns using **| empty cells |||**
. More in %TWIKIWEB%.TextFormattingRules.
* Use **Net::SMTP**
module instead of **sendmail**
if installed.
* Use **<verbatim> ... </verbatim>**
tags instead of **<pre> ... </pre>**
tags where appropriate. More in %TWIKIWEB%.TextFormattingRules.
* New variable **%STARTINCLUDE%**
and **%STOPINCLUDE%**
variables to control what gets included of a topic. More in %TWIKIWEB%.TWikiVariables.
* [[FileAttachment]] info is now stored as [[TWikiDocumentation]].
* Upgrading of imported pagess is done automatically after first edit, on save. "In memory" upgrade is done on topic view.
* Attachments are now under revision control: `$attachAsciiPath` in `TWiki.cfg` defines which file types are stored in ASCII, otherwise, binary format is used. This means that the RCS version used should support binary files.
* Handling for topic-specific templates like `edit.new.tmpl` has been removed and replaced by template topics in the new [[TWikiDocumentation]] )
* A new file `warning.txt` file can appear in the `data` directory. It may contain diagnostic info identifying problems that need fixing. This file could get fairly large if you have a lot of problems your site - you can delete it at any time.
## Known Upgrade Issues
* * Check