How to setup your dev environment
First you need to decide which projects you want to develop. You will most likely always need mailman-core and mailmanclient.
After that you can choose if you want to stick to the core, or you want to also develop django projects. There is postorius - Management Interface And Hyperkitty - Mailman Archiver
This guide assumes that you are setting everything in the directory created below:
$ mkdir -p ~/dev/mailman
And that you have two virtualenvs:
$ cd ~/dev/mailman $ virtualenv -p /usr/bin/python3 venv3 $ virtualenv -p /usr/bin/python2 venv2
Contents
Mailman Core
Detailed instructions can be found at readthedocs.org.
$ cd ~/dev/mailman $ git clone git@gitlab.com:mailman/mailman.git $ source venv3/bin/activate $ cd mailman $ python setup.py develop $ deactivate
Mailman Client
Detailed instructions can be found at readthedocs.org.
$ cd ~/dev/mailman $ git clone git@gitlab.com:mailman/mailmanclient.git $ source venv2/bin/activate $ cd mailmanclient $ python setup.py develop $ deactivate
Postorius
Detailed instructions can be found at readthedocs.org.
Make sure to install mailmanclient first!
$ cd ~/dev/mailman $ git clone git@gitlab.com:mailman/postorius.git $ source venv2/bin/activate $ cd postorius $ python setup.py develop $ deactivate
Hyperkitty
Detailed instructions can be found at readthedocs.org.
Make sure to install mailmanclient first!
$ cd ~/dev/mailman $ git clone git@gitlab.com:mailman/hyperkitty.git $ source venv2/bin/activate $ cd hyperkitty $ python setup.py develop $ deactivate
Django projects
These are not needed if you are going to set up the WSGI interface in a general webserver such as Apache or gunicorn. They are convenient, however, because the recommended configuration for servers exposed to the Internet does not provide debug pages.
$ cd ~/dev/mailman $ git clone git@gitlab.com:mailman/hyperkitty_standalone.git $ git clone git@gitlab.com:mailman/postorius_standalone.git
To run either of the django projects
$ cd ~/dev/mailman $ source venv2/bin/activate $ cd postorius_standalone # After the first time, migrate is a no-op unless the Postorius DB schema changes. $ python manage.py migrate # You only need to createsuperuser once. $ python manage.py createsuperuser $ python manage.py runserver
Hyperkitty is setup the same way as Postorius (but in hyperkitty_standalone).