in brackets):
* A python interpreter
- * django >= 1.2
+ * django >= 1.5
* A webserver (apache)
* mod_python or flup
* A database server (postgresql, mysql)
lib/packages is for stuff we'll download, lib/python is to add
to our python path. We'll symlink python modules into lib/python.
- At the time of release, patchwork depends on django version 1.2 or
+ At the time of release, patchwork depends on django version 1.5 or
later. Your distro probably provides this. If not, do a:
cd lib/packages
- svn checkout http://code.djangoproject.com/svn/django/tags/releases/1.2
+ git clone https://github.com/django/django.git -b stable/1.5.x
cd ../python
ln -s ../packages/django/django ./django
If you have patchwork installed in somewhere other than /srv/patchwork,
you'll also need to define:
+ ROOT_DIR
MEDIA_ROOT
TEMPLATE_DIRS
Then, get patchwork to create its tables in your configured database:
cd apps/
- PYTHONPATH=../lib/python ./manage.py syncdb
+ PYTHONPATH=../lib/python/django ./manage.py syncdb
And add privileges for your mail and web users. This is only needed if
you use the ident-based approach. If you use password-based database
sudo -u nobody /srv/patchwork/apps/patchwork/bin/parsemail.sh < mail
+7. Set up the patchwork cron script
+
+ Patchwork uses a cron script to clean up expired registrations, and
+ send notifications of patch changes (for projects with this enabled).
+
+ Something like this in your crontab should work:
+
+ # m h dom mon dow command
+ PYTHONPATH=apps:.
+ DJANGO_SETTINGS_MODULE=settings
+ */10 * * * * cd patchwork; python apps/patchwork/bin/patchwork-cron.py
+
+
+ - the frequency should be the same as the NOTIFICATION_DELAY_MINUTES
+ setting, which defaults to 10 minutes.
+
+8. Optional: Configure your VCS to automatically update patches
+
+ The tools directory of the patchwork distribution contains a file
+ named post-receive.hook which is an example git hook that can be
+ used to automatically update patches to the Accepted state when
+ corresponding comits are pushed via git.
+
+ To install this hook, simply copy it to the .git/hooks directory on
+ your server, name it post-receive, and make it executable.
+
+ This sample hook has support to update patches to different states
+ depending on which branch is being pushed to. See the STATE_MAP
+ setting in that file.
+
+ If you are using a system other than git, you can likely write a
+ similar hook using pwclient to update patch state. If you do write
+ one, please contribute it.
Some errors: