X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;ds=sidebyside;f=docs%2FINSTALL;h=d40ddd2e7d072528728dbee47c4204a45b36e2ac;hb=a5d803a565aea5b655058ff244e9ae8356004963;hp=cb71cdd3eb8845bc7c85a3e06c3985831d0a4303;hpb=508510d29aa7b0aaf946f6565e8040f9895f84c8;p=patchwork diff --git a/docs/INSTALL b/docs/INSTALL index cb71cdd..d40ddd2 100644 --- a/docs/INSTALL +++ b/docs/INSTALL @@ -9,10 +9,11 @@ You'll need the following (applications used for patchwork development are in brackets): * A python interpreter - * django >= 1.2 + * django >= 1.5 * A webserver (apache) * mod_python or flup - * A database server (postgresql) + * A database server (postgresql, mysql) + * relevant python modules for the database server (e.g: python-mysqldb) 1. Database setup @@ -51,19 +52,43 @@ in brackets): settings, using local_settings.py (see below) to override the defaults in settings.py: - DATABASE_ENGINE = 'postgresql_psycopg2' - DATABASE_NAME = 'patchwork' - DATABASE_USER = 'patchwork' - DATABASE_PASSWORD = 'my_secret_password - DATABASE_HOST = 'localhost' - DATABASE_PORT = '' + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'HOST': 'localhost', + 'PORT': '', + 'USER': 'patchwork', + 'PASSWORD': 'my_secret_password', + 'NAME': 'patchwork', + }, + } For MySQL: $ mysql - > CREATE DATABASE 'patchwork'; + > CREATE DATABASE 'patchwork' CHARACTER SET utf8; > CREATE USER 'www-data'@'localhost' IDENTIFIED BY ''; > CREATE USER 'nobody'@'localhost' IDENTIFIED BY ''; + Once that is done, you need to tell Django about the new Database + settings, using local_settings.py (see below) to override the defaults + in settings.py: + + DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'HOST': 'localhost', + 'PORT': '', + 'USER': 'patchwork', + 'PASSWORD': 'my_secret_password', + 'NAME': 'patchwork', + 'TEST_CHARSET': 'utf8', + }, + } + + TEST_CHARSET is used when creating tables for the test suite. Without + it, tests checking for the correct handling of non-ASCII characters + fail. + 2. Django setup Set up some initial directories in the patchwork base directory: @@ -73,11 +98,11 @@ in brackets): 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 @@ -101,12 +126,6 @@ in brackets): chars = string.letters + string.digits + string.punctuation print repr("".join([random.choice(chars) for i in range(0,50)])) - If you have patchwork installed in somewhere other than /srv/patchwork, - you'll also need to define: - - MEDIA_ROOT - TEMPLATE_DIRS - If you wish to enable the XML-RPC interface, add the following to your local_settings.py file: @@ -204,6 +223,39 @@ fastcgi: 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: