Differences between revisions 1 and 11 (spanning 10 versions)
Revision 1 as of 2011-11-14 08:26:59
Size: 3217
Editor: f@state-of-mind
Comment:
Revision 11 as of 2012-03-14 11:28:22
Size: 2793
Editor: f@state-of-mind
Comment: updated the guide to work with the changes made during the pycon sprints
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#pragma page-filename DEV/versions/13303879
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. It has been tested on Ubuntu 11.04.
#pragma page-filename DEV/versions/13304132
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.
Line 18: Line 18:
$ bin/mailman $ bin/buildout
Line 42: Line 42:
$ (sudo) python setup.py develop $ sudo python setup.py develop
Line 53: Line 53:
$ python setup.py install $ sudo python setup.py install
Line 57: Line 57:
== mailman-django ==
This Django app contains the code for the web ui. Thanks go out to Anna Granudd and Benedict Stein who started this app as part of their Google Summer of Code projects in 2010 and 2011.

We're currently transitioning the code from the branches we used for GSoC to an 'official' web ui location on launchpad to continue the work there. For now the latest working code can be found here (this will change within the next days...):
== mailmanweb ==
Line 63: Line 59:
$ bzr branch lp:~flo-fuchs/mailmanwebgsoc2011/transition $ bzr branch lp:mailmanweb
$
cd mailmanweb
$
sudo python setup.py develop
Line 66: Line 64:
Install it, also in development mode:
== Start the development server ==
Line 69: Line 66:
$ cd transition
$ (sudo) python setup.py develop
$ cd ..
}}}

== Setup a simple Django project to host the web ui ==
The last thing you need to set up is a Django site to host the web ui application. This sample project contains all necessary settings to get the application up and running using Django's development server:

{{{
$ bzr branch lp:~flo-fuchs/mailmanweb/django_dev_setup
}}}

Now change to the branch dir, let Django create a db file and start the dev server:

{{{
$ cd django_dev_setup
$ cd dev_setup
Line 89: Line 71:
Now direct your browser to: [[http://localhost:8000]] The last command will start the dev server on http://localhost:8000
Line 91: Line 73:
== Logging in ==
Authentication against the ReST API is not yet implemented, but there's a dummy AuthBackend in mailman-django that mimics auth behaviour. To login use the credentials hard-coded in:
== 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.))--
Line 94: Line 76:
{{{
./transition/src/mailman_django/auth/restbackend.py
}}}
--(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.)--

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.

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.

GNU Mailman 3

First download the latest revision of Mailman 3 from launchpad.

$ bzr branch lp:mailman

Install and test:

$ cd mailman 
$ python bootstrap.py
$ bin/buildout
$ bin/test

If you get no errors you can now start Mailman:

$ bin/mailman start
$ 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)

Download from launchpad:

$ bzr branch lp:mailman.client

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.

$ 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 ..

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.



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)