5. Now one can run patchwork within that environment
- (django-1.7)$ ./apps/manage.py --version
+ (django-1.7)$ ./manage.py --version
1.7
- (django-1.7)$ ./apps/manage.py runserver
+ (django-1.7)$ ./manage.py runserver
6. To exit the virtual environment
Then, get patchwork to create its tables in your configured database:
- cd apps/
- PYTHONPATH=../lib/python ./manage.py syncdb
+ PYTHONPATH=lib/python ./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
Once you have apache set up, you can start the fastcgi server with:
- cd /srv/patchwork/apps
+ cd /srv/patchwork/
./manage.py runfcgi method=prefork \
socket=/srv/patchwork/var/fcgi.sock \
pidfile=/srv/patchwork/var/fcgi.pid
directory. (Note, do not use the parsemail.py script directly). Something
like this in /etc/aliases is suitable for postfix:
- patchwork: "|/srv/patchwork/apps/patchwork/bin/parsemail.sh"
+ patchwork: "|/srv/patchwork/patchwork/bin/parsemail.sh"
You may need to customise the parsemail.sh script if you haven't installed
patchwork in /srv/patchwork.
Test that you can deliver a patch to this script:
- sudo -u nobody /srv/patchwork/apps/patchwork/bin/parsemail.sh < mail
+ sudo -u nobody /srv/patchwork/patchwork/bin/parsemail.sh < mail
7. Set up the patchwork cron script
Something like this in your crontab should work:
# m h dom mon dow command
- PYTHONPATH=apps:.
+ PYTHONPATH=.
DJANGO_SETTINGS_MODULE=settings
- */10 * * * * cd patchwork; python apps/patchwork/bin/patchwork-cron.py
+ */10 * * * * cd patchwork; python patchwork/bin/patchwork-cron.py
- the frequency should be the same as the NOTIFICATION_DELAY_MINUTES
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
- PythonPath "['/srv/patchwork/apps', '/srv/patchwork/lib/python'] + sys.path"
+ PythonPath "['/srv/patchwork', '/srv/patchwork/lib/python'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE settings
</Location>
basedir = os.path.join(
os.path.dirname(__file__), os.path.pardir, os.path.pardir)
sys.path.append(basedir)
-sys.path.append(os.path.join(basedir, 'apps'))
-os.environ['DJANGO_SETTINGS_MODULE'] = 'apps.settings'
+os.environ['DJANGO_SETTINGS_MODULE'] = 'patchwork.settings.prod'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
BIN_DIR=`dirname $0`
-PATCHWORK_BASE=`readlink -e $BIN_DIR/../../..`
+PATCHWORK_BASE=`readlink -e $BIN_DIR/../..`
-PYTHONPATH="$PATCHWORK_BASE/apps":"$PATCHWORK_BASE/lib/python:$PYTHONPATH" \
+PYTHONPATH="$PATCHWORK_BASE":"$PATCHWORK_BASE/lib/python:$PYTHONPATH" \
DJANGO_SETTINGS_MODULE=settings \
- "$PATCHWORK_BASE/apps/patchwork/bin/parsemail.py"
+ "$PATCHWORK_BASE/patchwork/bin/parsemail.py"
exit 0
import django
ROOT_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)),
- os.pardir, os.pardir, os.pardir)
+ os.pardir, os.pardir)
#
# Core settings
--- /dev/null
+../../bin/pwclient
\ No newline at end of file
+++ /dev/null
-../../apps/patchwork/bin/pwclient
\ No newline at end of file
#!/bin/bash
toolsdir="$(dirname "$0")"
-pwpath="${toolsdir}"/../apps/patchwork
+pwpath="${toolsdir}"/../patchwork
if [ "$#" -lt 1 ]
then
#
EXCLUDE=""
-PWDIR=/srv/patchwork/apps/patchwork
+PWDIR=/srv/patchwork/patchwork
do_exit=0
trap "do_exit=1" INT
[flake8]
ignore = E121,E122,E123,E124,E125,E126,E127,E128,E129,E131,E251,H405
-exclude = ./apps/patchwork/tests
+exclude = ./patchwork/tests
[testenv:lint]
basepython = python2.7
deps =
pylint
-r{toxinidir}/docs/requirements-django-1.7-mysql.txt
-commands = pylint apps --rcfile=pylint.rc
+commands = pylint patchwork --rcfile=pylint.rc
[testenv:coverage]
basepython = python2.7
DJANGO_SETTINGS_MODULE = patchwork.settings.dev
commands =
coverage erase
- {toxinidir}/apps/manage.py syncdb
- coverage run --omit=*tox* --branch {toxinidir}/apps/manage.py test patchwork
+ {toxinidir}/manage.py syncdb
+ coverage run --omit=*tox* --branch {toxinidir}/manage.py test patchwork
coverage report -m
[testenv]
basepython =
py27: python2.7
commands =
- {toxinidir}/apps/manage.py syncdb
- {toxinidir}/apps/manage.py test patchwork
+ {toxinidir}/manage.py syncdb
+ {toxinidir}/manage.py test patchwork
deps =
python-dateutil==1.5
MySQL-python==1.2.5