summaryrefslogtreecommitdiffstats
path: root/doc/development.rst
blob: 57a618db211a85ae88a676adbc4cebc949aec53e (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
===========
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 https://github.com/hyperkitty/kittystore.git
    cd kittystore
    python setup.py develop
    cd ..
    git clone https://github.com/hyperkitty/hyperkitty.git
    cd hyperkitty
    python setup.py develop
    cd ..
    git clone https://github.com/hyperkitty/hyperkitty_standalone.git


Configuration
=============

For a development setup, you should create a
``hyperkitty_standalone/settings_local.py`` file with at least the following
content::

    DEBUG = True
    TEMPLATE_DEBUG = DEBUG
    ASSETS_DEBUG = DEBUG
    ASSETS_AUTO_BUILD = DEBUG
    USE_SSL = False

It's also recommanded to change the database access paths in the ``DATABASES``,
``KITTYSTORE_URL`` and ``KITTYSTORE_SEARCH_INDEX`` variables.

If you ever want to turn the ``DEBUG`` variable to ``False`` (by removing it
from ``settings_local.py``), you'll have to run two additional commands at
first and each time you change the static files::

    python hyperkitty_standalone/manage.py collectstatic
    python hyperkitty_standalone/manage.py assets build --parse-templates

But for development purposes, it's better to keep ``DEBUG = True``.


.. 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 hyperkitty_standalone/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``: