summaryrefslogtreecommitdiffstats
path: root/doc/development.rst
blob: da8ddcd42976902c1dd3ed100924fdd7ab83775c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
===========
Development
===========


Communication channels
======================

Hang out on IRC and ask questions on ``#mailman`` or join the mailing list
``hyperkitty-devel@lists.fedorahosted.org``.


Setting up Hyperkitty for development
=====================================

The recommanded way to develop on HyperKitty is to use VirtualEnv. It will
create an isolated Python environment where you can add HyperKitty and its
dependencies without messing up your system Python install.

First, create the virtualenv and activate it::

    virtualenv venv_hk
    source venv_hk/bin/activate

Then download the components of HyperKitty::

    git clone git://github.com/pypingou/kittystore.git
    cd kittystore
    python setup.py develop
    cd ..
    bzr branch bzr://bzr.fedorahosted.org/bzr/hyperkitty/hyperkitty
    cd hyperkitty
    python setup.py develop
    cd ..
    bzr branch bzr://bzr.fedorahosted.org/bzr/hyperkitty/hyperkitty_standalone


.. Setting up the databases

.. include:: database.rst


Running HyperKitty
==================

If you're coding on HyperKitty, you can use Django's integrated web server.
It can be run with the following command::

    cd hyperkitty_standalone
    python manage.py runserver

.. warning::
    You should use the development server only locally. While it's possible to
    make your site publicly available using the dev server, you should never
    do that in a production environment.


Testing
=======

Use the following command::

    python manage.py test hyperkitty

All test modules reside in the ``hyperkitty/tests`` directory
and this is where you should put your own tests, too. To make the django test
runner find your tests, make sure to add them to the folder's ``__init__.py``: