Re: [Mailman-Users] Mailman 3 confusion

2017-06-20 Thread Mark Lindsay
Hi Larry,

Does that mean _at_least_ 2.7, or does it mean I need two different
> versions of Python on the same box, or does it mean I need two boxes?
>

The `virtualenv` tool will solve this problem for you. From
http://python-guide-pt-br.readthedocs.io/en/latest/dev/virtualenvs/ :


> A Virtual Environment is a tool to keep the dependencies required by
> different projects in separate places, by creating virtual Python
> environments for them. It solves the “Project X depends on version 1.x but,
> Project Y needs 4.x” dilemma, and keeps your global site-packages directory
> clean and manageable.


It allows you to have application-specific versions of the python
interpreter and python packages on the same machine. The global (server
default) version of python will no longer be relevant.

`virtualenv -p python3` will give you python 3 for Mailman 3 Core.
`virtualenv` will give you python 2 for the other apps.

Mark
--
Mailman-Users mailing list Mailman-Users@python.org
https://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://wiki.list.org/x/AgA3
Security Policy: http://wiki.list.org/x/QIA9
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
https://mail.python.org/mailman/options/mailman-users/archive%40jab.org


Re: [Mailman-Users] Mailman 3 confusion

2017-06-19 Thread Mark Lindsay
Hi Tlhackque,

I went through a similar battle with installing Mailman 3 but emerged
victorious in the end. Here are some tips that might help you out.

- There are several places where you can find Mailman 3 docs. It is
confusing. The most complete documentation I found is here:
https://mailman.readthedocs.io/en/latest/src/mailman/docs/install.html

- Don't use mailman bundler

- Start with installing just Mailman 3 Core. Core is the part of Mailman 3
that talks to your mail server and controls lists and members of lists.
Leave Postorius and Hyperkitty out of it until you have Core running and
you understand what it is doing. You can work directly with Mailman 3 using
`mailman shell` or the Mailman 3 Core REST API
https://mailman.readthedocs.io/en/latest/src/mailman/rest/docs/rest.html

- Mailman 3 Core indeed requires python 3

- Use Python's `virtualenv -p python3` to install Mailman 3 Core. It looks
like a lot of the problems you're having are because of dependency/version
hell. virtualenv will help with this. Successfully dockerizing Mailman 3
Core will help even more! I read over on the Mailman 3 Users list that an
install process using Docker will soon be the canonical way to install
Mailman 3, which is great.

- Use a SQL backend with Mailman 3 Core that allows you to inspect its DB
tables directly. This is so you can see what it is doing behind the scenes
when you interact with it via `mailman shell` or the REST API. The DB
schema is sane and easy to navigate.
https://mailman.readthedocs.io/en/latest/src/mailman/docs/database.html

- I really like that I was able to install Mailman 3 Core right in a
non-privileged user's home directory.  My server is just a stock Ubuntu AWS
EC2 instance. My Mailman 3 Core install is in `/home/ubuntu/mailman` with a
configuration file of `/home/ubuntu/mailman/var/etc/mailman.cfg`. I am
running Mailman 3 Core in production from the regular `ubuntu` user's home
directory in a virtualenv. I do not know if this is the recommended way to
do it, but the documentation is especially sparse in this area, and it
seems to work!

As best I can remember (it's been a couple months), here are the steps I
followed to get it up and running:

1. `cd ~`
2. `git clone https://gitlab.com/mailman/mailman.git`
3. `cd mailman`
4. `virtualenv -p python3 venv`
5. `source venv/bin/activate`
6. `python setup.py develop`
7. I am pretty sure this setup command will place a configuration file into
`~/mailman/var/etc/mailman.cfg`. Edit this file.
https://mailman.readthedocs.io/en/latest/src/mailman/config/docs/config.html
8. `mailman info` can confirm which configuration file is in use
9. `mailman start` will start up Mailman 3 Core. This is what the parent
background process command looks like in `ps -ef`:
`/home/ubuntu/mailman/venv/bin/python /home/ubuntu/mailman/venv/bin/master
-C /home/ubuntu/mailman/var/etc/mailman.cfg`
10. Logs are in ~/mailman/var/logs

It is not a straightforward install process and requires a little detective
work based on your environment and mail server. I had the disadvantage of
never being a Mailman 2 user, so a big chunk of my learning curve was
understanding Mailman terminology and its way of doing things.

I still do not have Postorius or Hyperkitty installed. My use case is a
PHP-based CMS which administers Mailman 3 Core via its REST API. I wrote a
quick and dirty PHP client and it works surprisingly well. Mailman 3 Core
has been solid in production and easy to deal with via the REST API.

Good luck, and you might want to check out the Mailman 3-specific users
list here:
https://lists.mailman3.org/archives/list/mailman-us...@mailman3.org/

On Sat, Jun 17, 2017 at 5:14 PM, tlhackque via Mailman-Users <
mailman-users@python.org> wrote:

> I took another look at installing Mailman 3, and ended up lost and
> confused.  I'm an experienced software person - but my Python knowledge
> is minimal.
>
> Fedora 25, python 3.5.3, pretty much out of the box.
>
> Mailman version: 3.1.0 (The other bits and pieces are current - 1.1)
>
> I tried to follow the documentation on
> http://docs.list.org/en/latest/prodsetup.html,
>
> http://mailman-3-installation.readthedocs.io/en/latest/
> production_install.html
> claims that the backend requires Python 3.4, but the frontend 2.7.  Not
> clear if this is credible, but it's out there...
>
> https://wiki.list.org/Mailman3 points to Mark Sapiro's experience on
> https://wiki.list.org/DOC/Mailman%203%20installation%20experience  This
> starts off with "For both installs I started with mailman-bundler."
> But https://gitlab.com/mailman/mailman-bundler says "All of this
> documentation is obsolete!  Mailman Bundler is no longer recommended or
> supported. "  So...
>
> I have yet to find a step-by-step 'bare OS to running MM3" document.
> I've run MM2.1 lists for years, it wasn't this hard to get started.
> Just install and edit one config file (plus the webserver.).  I don't
> want to learn a zillion other technologies just to get started