Differences between revisions 12 and 17 (spanning 5 versions)
Revision 12 as of 2012-03-22 09:25:48
Size: 2921
Editor: syst3mw0rm
Comment: Added a missing django application installation instruction
Revision 17 as of 2012-09-05 08:06:19
Size: 3019
Editor: mindlace
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma page-filename DEV/versions/13304139
This is a quick guide to setup a development environment to work on Mailman 3's web ui. If all goes as planned, you should be done within ~5 minutes. This has been tested on Ubuntu 11.04.
#pragma page-filename DEV/versions/15171651
This is a quick guide to setup a development environment to work on Postorius, Mailman 3's web ui. If all goes as planned, you should be done within ~5 minutes. This has been tested on Ubuntu 11.04 and OS X 10.8.1.
Line 4: Line 4:
In order to download the components necessary you need to have the Bazaar VCS installed on your system. Mailman and mailman.client need at least Python version 2.6. In order to download the components necessary you need to have the Bazaar VCS installed on your system. Mailman and mailman.client need at least Python version 2.6.
Line 6: Line 6:
== GNU Mailman 3 ==
First download the latest revision of Mailman 3 from launchpad.
== Set up your environment with virtualenv ==

If you're not already set up to develop with virtualenv, you should do so:

{{{{#!table
'''Ubuntu'''
|| '''OS X'''
==
{{{$ sudo apt-get install python-setuptools python-dev build-essential}}}

|| {{{
$ brew install python

$ echo "export PATH=/usr/local/share/python:$PATH" >> ~/.bash_profile
$ source ~/.bash_profile
$ pip install distribute }}}
}}}}

You're almost there - just get virtualenv:

{{{$ pip install virtualenv}}}

{{{#!wiki important

You may wish to install [[http://virtualenvwrapper.readthedocs.org/en/latest/index.html|Virtualenvwrapper]] as well to make managing your virtual environments easier.
}}}

For the remaining bit, we're going to assume your virtual environment is called "postorius". You would initialize and activate it as follows:

{{{{#!table
'''virtualenv only'''
|| '''with virtualenvwrapper'''
==
{{{$ virtualenv postorius}}}
{{{$ source postorius/bin/activate}}}

|| {{{$ mkvirtualenv postorius}}}
}}}}

Now you should see (postorius) before your prompt.

== Get the sources ==
Line 10: Line 50:
$ bzr branch lp:mailman
}}}
(postorius)$ bzr branch lp:mailman
(postorius)$ bzr branch lp:mailman.client
(postorius)$ bzr branch lp:postorius
(postorius)$ bzr branch lp:~mailman-coders/postorius/postorius_standalone}}}

== Install Django ==

{{{
(postorius)$ pip install django
(postorius)$ pip install django-social-auth}}}

== Get everything set up ==

=== GNU Mailman 3 ===
Line 16: Line 68:
$ cd mailman 
$ python bootstrap.py
$ bin/buildout
$ bin/test
(postorius)$ cd mailman 
(postorius)$ python bootstrap.py
(postorius)$ bin/buildout
(postorius)$ bin/test
Line 25: Line 77:
$ bin/mailman start
$ cd ..
(postorius)$ bin/mailman start
(postorius)$ cd ..
Line 29: Line 81:
At this point Mailman will not send nor receive any real emails. But that's fine as long as you only want to work on the components related to the ReST client or the web ui. At this point Mailman will not send nor receive any real emails. But that's fine as long as you only want to work on the components related to the ReST client or the web ui.
Line 31: Line 83:
== mailman.client (the Python bindings for Mailman's ReST API) ==
Download from launchpad:
=== mailman.client (the Python bindings for Mailman's ReST API) ===
Line 35: Line 86:
$ bzr branch lp:mailman.client (postorius)$ cd mailman.client
(postorius)$ python setup.py develop
(postorius)$ cd ..}}}

== Postorius ==

{{{
(postorius)$ cd postorius
(postorius)$ python setup.py develop

(postorius)$ cd ..}}}

== Start the development server ==

{{{
(postorius)$ cd postorius_standalone
(postorius)$ python manage.py syncdb
(postorius)$ python manage.py runserver
Line 38: Line 106:
Install in development mode to be able to change the code without working directly on the PYTHONPATH.

{{{
$ cd mailman.client
$ sudo python setup.py develop
$ cd ..
}}}

== Django >= 1.3 ==
The web ui is a pluggable Django application. Therefore you need to have Django (at least version 1.3) installed. Also install the django-social-auth application (added because of open Id work going on).

{{{
$ wget http://www.djangoproject.com/download/1.3.1/tarball/ -O Django-1.3.1.tar.gz
$ tar xzf Django-1.3.1.tar.gz
$ cd Django-1.3.1
$ sudo python setup.py install
$ cd ..
$ pip install django-social-auth
}}}

== mailmanweb ==
{{{
$ bzr branch lp:mailmanweb
$ cd mailmanweb
$ sudo python setup.py develop
}}}

== Start the development server ==
{{{
$ cd dev_setup
$ python manage.py syncdb
$ python manage.py runserver
}}}

The last command will start the dev server on [[http://localhost:8000]]

== A note for MacOS X users (and possibly others running python 2.7) ==
--(On an OS X 10.7 (Lion) system, some of these steps needed to be modified to use python2.6 instead of python. (In particular, bzr is known to behave badly when used python2.7 on OS X 10.7 at the moment )----( hopefully this will be fixed and no longer an issue soon.))--

--(You will need to install the latest version of XCode on MacOS 10.7, which is available for free from the app store. If you had a previous version of XCode installed when you upgraded to 10.7, it will no longer work and will not have automatically been upgraded, so be prepared to install again. Once you have it installed from the app store, you will still need to go run the installer from /Applications to complete the installation.)--
Now go to [[http://localhost:8000|http://localhost:8000]] to see the web UI for mailman!

This is a quick guide to setup a development environment to work on Postorius, Mailman 3's web ui. If all goes as planned, you should be done within ~5 minutes. This has been tested on Ubuntu 11.04 and OS X 10.8.1.

In order to download the components necessary you need to have the Bazaar VCS installed on your system. Mailman and mailman.client need at least Python version 2.6.

Set up your environment with virtualenv

If you're not already set up to develop with virtualenv, you should do so:

Ubuntu OS X
$ sudo apt-get install python-setuptools python-dev build-essential
$ brew install python

$ echo "export PATH=/usr/local/share/python:$PATH" >> ~/.bash_profile
$ source ~/.bash_profile
$ pip install distribute 

You're almost there - just get virtualenv:

$ pip install virtualenv

You may wish to install Virtualenvwrapper as well to make managing your virtual environments easier.

For the remaining bit, we're going to assume your virtual environment is called "postorius". You would initialize and activate it as follows:

virtualenv only with virtualenvwrapper
$ virtualenv postorius $ source postorius/bin/activate $ mkvirtualenv postorius

Now you should see (postorius) before your prompt.

Get the sources

(postorius)$ bzr branch lp:mailman
(postorius)$ bzr branch lp:mailman.client
(postorius)$ bzr branch lp:postorius
(postorius)$ bzr branch lp:~mailman-coders/postorius/postorius_standalone

Install Django

(postorius)$ pip install django
(postorius)$ pip install django-social-auth

Get everything set up

GNU Mailman 3

Install and test:

(postorius)$ cd mailman 
(postorius)$ python bootstrap.py
(postorius)$ bin/buildout
(postorius)$ bin/test

If you get no errors you can now start Mailman:

(postorius)$ bin/mailman start
(postorius)$ cd ..

At this point Mailman will not send nor receive any real emails. But that's fine as long as you only want to work on the components related to the ReST client or the web ui.

mailman.client (the Python bindings for Mailman's ReST API)

(postorius)$ cd mailman.client
(postorius)$ python setup.py develop
(postorius)$ cd ..

Postorius

(postorius)$ cd postorius
(postorius)$ python setup.py develop

(postorius)$ cd ..

Start the development server

(postorius)$ cd postorius_standalone
(postorius)$ python manage.py syncdb
(postorius)$ python manage.py runserver

Now go to http://localhost:8000 to see the web UI for mailman!



Comments

Máirín Duffy

It looks like bootstrap.py was removed in late July, marked as obsolete. I followed these instructions to get mailman and postorious running, except I replaced the bootstrap.py step with the following:

virtualenv --system-site-packages /path/to/your/installation
$ source /path/to/your/installation/bin/activate
$ python setup.py install

Now, if you get weird errors, remove the --system-site-packages from your virtualenv and try again. I guess depending on how your system is setup, it may or may not work with that option.

Máirín Duffy

I wrote up a guide on how to get hyperkitty up and running for development, and it includes the full modified steps I ran based on this document to get mailman 3 working. That guide is here:

https://fedorahosted.org/hyperkitty/wiki/DevelopmentSetupGuide

maxking

MailmanWiki: DEV/A 5 minute guide to get the Mailman web UI running (last edited 2018-04-20 06:16:05 by maxking)