The Road to 1.9
Upgrading from MoinMoin 1.8.x to 1.9.x
Please Note
This is a Cliffs Notes version of upgrading. While this will [probably] be complete enough to get you upgraded, you should always read the CHANGES file in the Moin directory.
(If you're upgrading from a version prior to 1.8, see my homepage for instructions for upgrading from prior versions.)
Work-in-progress warning: This page is currently under construction. Feel free to add any steps I missed.
Upgrading
As with any upgrade for anything, I strongly recommend taking a backup before beginning. Test the backup (restore onto a different computer), to make sure you can revert back if you need to. You can then use this backup for testing the upgrade procedure.
Upgrade Your Python Accelerator
If you've been following my upgrade guides, you should note that after the upgrade to 1.8, I switched from FastCGI to WSGI. WSGI offers all the advantages of FastCGI, but it's slightly faster and in line with the development track of MoinMoin (in other words, it is officially the "preferred" python accelerator. As of 1.9, Moin is now WSGI-native). Therefore, before upgrading to 1.9, you may want to first convert. It's relatively straightforward, and I have instructions here: Upgrading from FastCGI to mod_wsgi (and, just for completeness, here are the install-from-scratch instructions: HowTo/ApacheWithModWSGI).Install Moin-1.9.0
Because the install process will be copying files on top of the old install, you sometimes get (on Windows at least) a merged hybrid of two versions, resulting in a 'Internal Server Error'. So, to ensure you're getting a clean install, back up and delete the Moin code folder. On Windows, your path would be similar to: D:\python26\Lib\site-packages\moinmoin\
From the commandline, cd into the expanded moin-1.9.0 folder, and then type in d:\python26\python setup.py install
Update the moin.wsgi file
The moin.wsgi file has been completely re-written. Delete the old one from your moin data folder and replace with the new one from d:\python26\share\moin\server\
Open the newly copied file and change sys.path.insert to match your configuration. Mine is sys.path.insert(0, 'd:\moin')
Edit your farmconfig.py (or wikiconfig.py) file
In your farmconfig.py file, Find the line from MoinMoin.config.multiconfig import DefaultConfig and change to:
from MoinMoin.config import multiconfig, url_prefix_static
..and find the class FarmConfig(DefaultConfig): line, and change to
class FarmConfig(multiconfig.DefaultConfig):
The authentication command has been changed again. If you use authentication, find the authenticator you use in your farmconfig.py and update accordingly (see Help On Authentication). I use http authentication, so that my users are authenticated before even entering the wiki. Change:
from MoinMoin.auth.http import HTTPAuth auth = [HTTPAuth(autocreate=True)]
tofrom MoinMoin.auth import GivenAuth auth = [GivenAuth(autocreate=True, strip_windomain=True, titlecase=True, )]
There is also a good chance that you have to update the regular expressions in the wikis list in farmconfig.py. URLs are now prefixed with the protocol (i.e. http://wiki1.example.org instead of wiki.example.org). Change
("wiki1", r"^wiki1\.example\.org/.*$")
to("wiki1", r"^http://wiki1\.example\.org/.*$")
Default theme changed from modern to modernized, if you haven't updated your theme, you might as well switch to the more modern modern ;-). Find the theme_default = 'modern' and change to modernized.
Clean caches after upgrading
After every upgrade, Moin recommends cleaning caches due to potential changes between versions. For Windows, I've created a double-clickable .bat file that looks similar to this (you will have to modify to match your configuration:d:\python26\python d:\python26\Lib\site-packages\MoinMoin\script\moin.py --config-dir=d:\moin --wiki-url=wikiserver.example.com/mywiki maint cleancache
Note for Linux users: if you run the clean caches script as the root user while apache is running (as it must be!) under another dedicated user, the __session__ folder in cache will be recreated with root ownership and you won't be able to authenticate. Run something like chown -R wwwrun:www /PATH/data/cache/__session__ to fix that.