Upgrading a 1.3 Site
The 2.0 release introduced major changes to RXML, tag modules, the port handling as well as the administration interface. However most of the changes are backwards compatible, it is possible to move a 1.3 site to 2.0 with no or very minor changes.
The configuration files have changed, mostly because the ports has moved from the sites (or virtual servers) to being top level object. It is therefore not possible to just upgrade an old site, you need to reinstall it. The same, or compatible, modules are available.
Roxen 2.0 uses a new XML compatible RXML parser, which means that RXML tags must now always be terminated with an end tag or a /. For example <imgs />. Output tags, (formoutput, sqloutput, ldapoutput, etc) have been replaced with the <emit> tag and entities. Many simple tags have been replaced with entities instead. <realfile> is now .
The new RXML is simpler to use and less prone to errors. Especially the more complex uses of RXML, such as databases, are much simpler and safer. It is therefore important to convert existing sites to RXML 2.0.
However it is not necessary. By enabling the Old RXML compatibility module Roxen 2.0 will be compatible with the old RXML parser. This compatibility mode will be kept as long as it is needed.
Since the changes to RXML are so great it might be necessary to gradually move from RXML 1.3 to RXML 2.0. This can be achieved in several ways. The safest way is to keep the 1.3 release running in parallel with a 2.0 server, and switch when everything works. By using the HTTP relay module the web site can still seem like one, although two servers handle it.
Another way to handle the gradual upgrade is to use two sites: one new RXML 2.0 site and one with the Old RXML compatibility module installed. The compatibility site could be run on an URL of the new site, for example http://my-site/old/. By using the HTTP redirect module it is then possible to overload the two sites so that it seems like one site.
A 2.0 SiteBuilder uses the same storage as a 1.3. Upgrading should be a matter of installing a new Platform server and choosing the old storage. However, since the 1.3 release will not work with a storage that has been used by the 2.0 release, it is smart to make a copy of the storage before upgrading.
As with the rest or RXML the SiteBuilder specific tags have changed. You need the compatibility module to get the old behavior. Fortunately most SiteBuilder specific RXML should be located in the template files, which limits the migration work.
The template system has changed, as well as how templates are found. We use XSLT templates rather than the old template module. It is still possible to use old style templates but they should be phased out. It is possible to make XSLT templates that emulate any behavior of old templates, it is not necessary to change the data files. The new XSLT template processor can work with HTML as input format. However if you have defined any singletags of your own, in the templates, it is necessary to change the data files from <singletag> to <singletag />.
Modules and Pike Scripts
The module API is backwards compatible with the 1.3 release. Minor differences in the inheritance as well as in Pike's class library might cause compatibility problems with a few modules or scripts. If you site relies on third-party modules or script you should wait until they have been tested with the 2.0 release. If you have programmed any modules or scripts yourself you should test them on a 2.0 server before upgrading. The compatibility errors should be found when compiling the modules or scripts and thus be easy to locate.