- Install the plugin. If you want to run it from source you might use something like,
/opt/trac/0.10.3/install/bin/python setup.py develop -md /var/trac/0.10.3/var/trac/plugins
Otherwise you can can make the egg and use easy_install:
/opt/trac/0.10.3/install/bin/python setup.py bdist_egg
Then run /opt/trac/0.10.3/install/bin/easy_install <egg> where <egg> is whatever got dumped in your dist directory.
You might have some trouble with dependencies. If you do check below under Dependencies below.
- Enable the plugin in your trac.ini file. For example, in /var/trac/0.10.3/var/trac/conf/trac.ini you should add tracslimtimer.* = enabled under [components]:
[components] tracslimtimer.* = enabled
- Upgrade the environment for the plugin by running trac-admin:
/opt/trac/0.10.3/install/bin/trac-admin /var/trac/0.10.3/var/trac upgrade
This adds the slimtimer_id custom ticket field. If you skip this step, you'll probably get an error in the error.log. See below for more information on troubleshooting.
[Tue Apr 24 12:50:34 2007] [error] [client 10.0.10.177] PythonHandler trac.web.modpython_frontend: TracError: The Trac Environment needs to be upgraded. Run trac-admin /var/trac/0.10.3/var/trac upgrade", referer: ...
- Restart the Trac server:
If you have trouble with installation, it may well be because of the dependencies. There are two dependencies: ElementTree and MySQL-python aka MySQLdb.
The main dependency of is ElementTree. It is listed as a dependency in setup.py file, so if you're lucky simply installing the egg might result in the ElementTree module being downloaded. Chances are though you will have trouble here. The best option is just to easy_install it.
You can learn all about easy_install at: http://peak.telecommunity.com/DevCenter/EasyInstall
Make sure you use trac's version of easy_install:
Running this version of easy_install will mean the packages are installed in the appropriate site-packages folder, so Trac's version of Python can find them.
So just try something like:
After installing, you'll need to restart the Trac server:
The other dependency is MySQL-python. This module can also be installed using easy_install and implements the Python DB-API for MySQL.
Note: The latest version of MySQL-python that is compatible with Python 2.3 does not support the authentication protocol used by some MySQL servers. You must use at least Python 2.4, so that you can use the most recent version of MySQL-python.
1. Just disable the plugin
If you run in to trouble the easiest thing to do so you can keep working is just to disable the TracSlimTimer plugin. Go to the admin page in Trac, Plugins, TracSlimTimer 0.1.0. Then untick the "Enable" box next to each component, although it is probably only the TracSlimTimerTicketChangeListener component that will get in your way. Select "Apply Changes" and restart Trac.
2. Inspect the logs
If you actually want to fix the problem, you should start with the logs:
- /var/trac/0.10.3/log/httpd/trac.log — This is usually the most helpful log. You can set the logging level to 'debug' under the Administration page, see 'General', 'Logging'. The TracSlimTimer plugin writes quite a few things to this log, so it's worth a look.
- /var/trac/0.10.3/log/httpd/error.log — Sometimes errors show up here. These are mostly errors encountered while loading plugins like syntax errors.
3. But I've got nothing
In rare cases the web server crashes without any log, just a seg fault. The problem seemed to be that Apache's version of expat (1.95.7) was conflicting with Python's (1.95.8). It would happen whenever a module was loaded that used expat (e.g. elementtree and I think Genshi too). The solution was simply to upgrade the system (and also Apache's) expat to 1.95.8. See this article for details.
So you've changed the code and yet you're still getting the problem? I don't know how Python/Trac's caching works but often it doesn't reload the file properly. One way to ensure the file is reloaded is to restart Trac:
Summary of important paths
On my setup here are the places to look:
/opt/trac/0.10.3/install/bin — Trac's version of Python, easy_install etc.
/var/trac/0.10.3/var/trac/plugins — Trac plugins (eggs)
/var/trac/0.10.3/var/trac/conf — Trac configuration (including trac.ini and TracSlimTimer's users.xml)
/var/trac/0.10.3/log/httpd — Trac logs (and logs from the module)
/var/trac/0.10.3/log/time_report.log — reporting module log
/opt/trac/0.10.3/install/etc/init.d/httpd restart — The command to restart Trac (including Apache)