Changes between Initial Version and Version 1 of TracSlimTimerPluginInstallation


Ignore:
Timestamp:
Apr 27, 2007 9:43:36 AM (7 years ago)
Author:
tst
Comment:

Initial version

Legend:

Unmodified
Added
Removed
Modified
  • TracSlimTimerPluginInstallation

    v1 v1  
     1= TracSlimTimerPlugin installation = 
     2 
     3'''Most of all read [http://trac.edgewall.org/wiki/TracPlugins TracPlugins]. Also, if you get stuck [http://trac.edgewall.org/wiki/TracDev/PluginDevelopment PluginDevelopment] is very useful.''' 
     4 
     5 1. Install the plugin. If you want to run it from source you might use something like, 
     6 
     7{{{ 
     8/opt/trac/0.10.3/install/bin/python setup.py develop -md /var/trac/0.10.3/var/trac/plugins 
     9}}} 
     10 
     11Otherwise you can can make the egg and use `easy_install`. e.g. 
     12 
     13{{{ 
     14/opt/trac/0.10.3/install/bin/python setup.py bdist_egg 
     15}}} 
     16 
     17Then run `/opt/trac/0.10.3/install/bin/easy_install <egg>` where `<egg>` is whatever got dumped in your `dist` directory. 
     18 
     19You might have some trouble with dependencies. If you do check below under [#dependencies Dependencies] below. 
     20 
     21 2. Enable the plugin in trac.ini. For example, in `/var/trac/0.10.3/var/trac/conf/trac.ini.` you should add `tracslimtimer.* = enabled` under `[components]`, e.g. 
     22 
     23{{{ 
     24... 
     25[components] 
     26... 
     27tracslimtimer.* = enabled 
     28}}} 
     29 
     30 3. Upgrade (setup) the environment for the plugin by running trac-admin, e.g. 
     31 
     32{{{ 
     33/opt/trac/0.10.3/install/bin/trac-admin /var/trac/0.10.3/var/trac upgrade 
     34}}} 
     35 
     36This 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). 
     37 
     38{{{ 
     39[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: ... 
     40}}} 
     41 
     42 4. Restart the trac server, e.g. 
     43 
     44{{{ 
     45/opt/trac/0.10.3/install/etc/init.d/httpd restart 
     46}}} 
     47 
     48{{{ 
     49#!html 
     50<a name="dependencies"/> 
     51}}} 
     52== Dependencies == 
     53 
     54If you have trouble with installation it may well be because of the dependencies. There are two dependencies: !ElementTree and MySQL-python aka MySQLdb. 
     55 
     56The 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.  
     57 
     58You can learn all about `easy_install` at: http://peak.telecommunity.com/DevCenter/EasyInstall 
     59 
     60Make sure you use trac's version of `easy_install`, e.g. 
     61 
     62{{{ 
     63e.g. /opt/trac/0.10.3/install/bin/easy_install 
     64}}} 
     65 
     66Running 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. 
     67 
     68So just try something like: 
     69 
     70{{{ 
     71/opt/trac/0.10.3/install/bin/easy_install elementtree 
     72}}} 
     73 
     74After installing, you'll need to restart the trac server. This can be done like so: 
     75 
     76{{{ 
     77/opt/trac/0.10.3/install/etc/init.d/httpd restart 
     78}}} 
     79 
     80The other dependency is MySQL-python. This module can also be installed using `easy_install` and implements the Python DB-API for MySQL. 
     81 
     82NOTE: 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. 
     83 
     84== Troubleshooting == 
     85 
     86'''1. Just disable the plugin''' 
     87 
     88If 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. 
     89 
     90'''2. Inspect the logs''' 
     91 
     92If you actually want to fix the problem you should start with the logs: 
     93 
     94 * `/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. 
     95 * `/var/trac/0.10.3/log/httpd/error.log` — Sometimes errors show up here. I think these are mostly errors encountered while loading plugins like syntax errors. 
     96 
     97'''3. But I've got nothing''' 
     98 
     99I came across one occasion where the whole web server would just crash with no log, nothing, 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 [http://www.dscpl.com.au/wiki/ModPython/Articles/ExpatCausingApacheCrash this article] for details. 
     100 
     101'''4. Restart''' 
     102 
     103So 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: 
     104 
     105{{{ 
     106/opt/trac/0.10.3/install/etc/init.d/httpd restart 
     107}}} 
     108 
     109== Summary of important paths == 
     110 
     111On my setup here are the places to look: 
     112 
     113`/opt/trac/0.10.3/install/bin` — trac's version of Python, easy_install etc. 
     114 
     115`/var/trac/0.10.3/var/trac/plugins` — trac plugins (eggs) 
     116 
     117`/var/trac/0.10.3/var/trac/conf` — trac configuration (including trac.ini and !TracSlimTimer's users.xml) 
     118 
     119`/var/trac/0.10.3/log/httpd` — trac logs (and logs from the module) 
     120 
     121`/var/trac/0.10.3/log/time_report.log` — reporting module log 
     122 
     123`/opt/trac/0.10.3/install/etc/init.d/httpd restart` — The command to restart trac (including Apache)