[Mailman-Users] Mailman 3 confusion

tlhackque tlhackque at yahoo.com
Sun Jun 18 16:14:17 EDT 2017


On 18-Jun-17 13:03, Mark Lindsay wrote:

Thanks for taking the time to write & share your experience!  I'll see
if I can reproduce your success.

readthedocs is somewhat off-putting since it asserts different Python
version dependencies from the main site.

I did understand that the core requires Python 3.  What isn't clear is
whether the Front end requires Python 2... I do have 2.7.3 installed.

I didn't know about the mailman3-users list; next round will go there.

I've perused the docs, and  decided that I will have to get an instance
running & do some experimentation to make sense of them.  (e.g. the
schemas for the REST API's  json are sketchy - I haven't found how
topics/topic filters are represented - and they're a key item for me. 
And the "dumps" are less helpful to a non-python person
than raw json.)  There's noBut it looks like it should be possible to
replace what I did with the 2.1 cli utilities with not much code - and a
lot of research. 

I can live without the archive for a while, but the main reason for
converting my new project to MM3 is the new UI.

It's not obvious that I can use a virtual environment when a webserver
has to interact - and especially where the host runs SeLinux (extended
access controls.)

I use SQLite elsewhere; I planned to stick with it for this.  It's the
Python default, and the command interface for queries is reasonable. 
(And it has a -- sorry -- Perl API, which is the implementation language
for the main application.)

I do disagree with you on one point - it doesn't take 'a little
detective work' to figure this out.  It takes a LOT of detective work
:-)  I've invested several daze, and still don't have a process running.

But I'll (probably) get there.  Eventually.  Thanks for the tips.


> 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`
> <https://gitlab.com/mailman/mailman.git%60>
> 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-users@mailman3.org/
>
> On Sat, Jun 17, 2017 at 5:14 PM, tlhackque via Mailman-Users
> <mailman-users at python.org <mailto:mailman-users at 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://docs.list.org/en/latest/prodsetup.html>,
>
>     http://mailman-3-installation.readthedocs.io/en/latest/production_install.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
>     <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
>     <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 - e.g.
>
>     But, I decided to see how far I could get.  I tried this, based on pip
>     search mailman:
>
>     dnf install python3 python3-devel (gets 3.5.3)
>     pip3 install mailman postorius mailmanclient HyperKitty
>     mailman-hyperkitty KittyStore
>
>     All went well until KittyStore, which (0.9.3 is what pip found)
>     died with:
>     Collecting storm (from KittyStore)
>       Downloading storm-0.20.tar.bz2 (213kB)
>         100% |################################| 215kB 318kB/s
>         Complete output from command python setup.py egg_info:
>         Traceback (most recent call last):
>           File "<string>", line 1, in <module>
>           File "/tmp/pip-build-wzs03r_4/storm/setup.py", line 5, in
>     <module>
>             import ez_setup
>           File "/tmp/pip-build-wzs03r_4/storm/ez_setup.py", line 106
>             except pkg_resources.VersionConflict, e:
>                                                 ^
>         SyntaxError: invalid syntax
>
>     Well, set that aside, and install the rest, which seems to work.
>
>     Try again with KittyStore, same failure.  So maybe skip the
>     archive for now.
>
>     Try 'mailman info', another syntax error.
>
>     Traceback (most recent call last):
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/xmlconfig.py",
>     line
>     272, in endElementNS
>         self.context.end()
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/config.py",
>     line 345, in end
>         self.stack.pop().finish()
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/config.py",
>     line 452, in finish
>         args = toargs(context, *self.argdata)
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/config.py",
>     line 794, in toargs
>         args[str(name)] = field.fromUnicode(s)
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/fields.py",
>     line 73, in fromUnicode
>         value = self.context.resolve(name)
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/config.py",
>     line 151, in resolve
>         mod = __import__(mname, *_import_chickens)
>       File "/usr/lib/python3.5/site-packages/mailman/database/factory.py",
>     line 22, in <module>
>         import alembic.command
>       File "/usr/lib/python3.5/site-packages/alembic/command.py", line
>     3, in
>     <module>
>         from .script import ScriptDirectory
>       File "/usr/lib/python3.5/site-packages/alembic/script/__init__.py",
>     line 1, in <module>
>         from .base import ScriptDirectory, Script  # noqa
>       File "/usr/lib/python3.5/site-packages/alembic/script/base.py", line
>     2, in <module>
>         from dateutil import tz
>       File "/usr/lib/python3.5/site-packages/dateutil/tz.py", line 78
>         `self._name`,
>         ^
>     SyntaxError: invalid syntax
>
>     During handling of the above exception, another exception occurred:
>
>     Traceback (most recent call last):
>       File "/usr/bin/mailman", line 9, in <module>
>         load_entry_point('mailman==3.1.0', 'console_scripts', 'mailman')()
>       File "/usr/lib/python3.5/site-packages/mailman/bin/mailman.py", line
>     97, in main
>         initialize(config_path)
>       File "/usr/lib/python3.5/site-packages/mailman/core/initialize.py",
>     line 184, in initialize
>         initialize_1(config_path)
>       File "/usr/lib/python3.5/site-packages/mailman/core/initialize.py",
>     line 101, in initialize_1
>         xmlconfig.string(zcml.decode('utf-8'))
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/xmlconfig.py",
>     line
>     513, in string
>         processxmlfile(f, context)
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/xmlconfig.py",
>     line
>     295, in processxmlfile
>         parser.parse(src)
>       File "/usr/lib64/python3.5/xml/sax/expatreader.py", line 110, in
>     parse
>         xmlreader.IncrementalParser.parse(self, source)
>       File "/usr/lib64/python3.5/xml/sax/xmlreader.py", line 125, in parse
>         self.feed(buffer)
>       File "/usr/lib64/python3.5/xml/sax/expatreader.py", line 210, in
>     feed
>         self._parser.Parse(data, isFinal)
>       File "/builddir/build/BUILD/Python-3.5.3/Modules/pyexpat.c",
>     line 468,
>     in EndElement
>       File "/usr/lib64/python3.5/xml/sax/expatreader.py", line 370, in
>     end_element_ns
>         self._cont_handler.endElementNS(pair, None)
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/xmlconfig.py",
>     line
>     281, in endElementNS
>         None, sys.exc_info()[2])
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/_compat.py",
>     line 38, in reraise
>         raise value.with_traceback(tb)
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/xmlconfig.py",
>     line
>     272, in endElementNS
>         self.context.end()
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/config.py",
>     line 345, in end
>         self.stack.pop().finish()
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/config.py",
>     line 452, in finish
>         args = toargs(context, *self.argdata)
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/config.py",
>     line 794, in toargs
>         args[str(name)] = field.fromUnicode(s)
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/fields.py",
>     line 73, in fromUnicode
>         value = self.context.resolve(name)
>       File
>     "/usr/lib/python3.5/site-packages/zope/configuration/config.py",
>     line 151, in resolve
>         mod = __import__(mname, *_import_chickens)
>       File "/usr/lib/python3.5/site-packages/mailman/database/factory.py",
>     line 22, in <module>
>         import alembic.command
>       File "/usr/lib/python3.5/site-packages/alembic/command.py", line
>     3, in
>     <module>
>         from .script import ScriptDirectory
>       File "/usr/lib/python3.5/site-packages/alembic/script/__init__.py",
>     line 1, in <module>
>         from .base import ScriptDirectory, Script  # noqa
>       File "/usr/lib/python3.5/site-packages/alembic/script/base.py", line
>     2, in <module>
>         from dateutil import tz
>     zope.configuration.xmlconfig.ZopeXMLConfigurationError: File
>     "<string>",
>     line 65.2-69.6
>         SyntaxError: invalid syntax (tz.py, line 78)
>
>     And the same traceback from 'mailman start'
>
>     https://pythonhosted.org/mailman/src/mailman/docs/START.html
>     <https://pythonhosted.org/mailman/src/mailman/docs/START.html>
>     refers to
>     src/mailman/config/schema.cfg,
>     /usr/lib/python3.5/site-packages/mailman/config/schema.cfg exists.
>
>     http://docs.list.org/en/latest/prodsetup.html
>     <http://docs.list.org/en/latest/prodsetup.html> refers to "Your Django
>     Site's settings.py".  I don't have any (other) Django sites.  "locate"
>     turns up
>     /usr/lib/python3.5/site-packages/django/conf/global_settings.py,
>     but it
>     looks to me as if Mailman needs one (or maybe one/list) Django site.
>
>     Bottom line - I'd like to try Mailman 3 for a new project - especially
>     since I pre-process inbound mail, and will have to speak LMTP. 
>     But I'm
>     lost trying to follow the scattered docs that try to explain how to
>     bring it up.
>
>     Any pointers, or efforts to record a from-scratch install would be
>     appreciated.
>
>     Also, is version 3 supplying equivalents to the Mailman 2.1 list_lists
>     and config_list utilities, or do I have to interface to the new REST
>     API?  (For the latter, I only really need to import and export the
>     topics definitions....)
>
>
>
>
>     ------------------------------------------------------
>     Mailman-Users mailing list Mailman-Users at python.org
>     <mailto:Mailman-Users at python.org>
>     https://mail.python.org/mailman/listinfo/mailman-users
>     <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/
>     <http://www.mail-archive.com/mailman-users%40python.org/>
>     Unsubscribe:
>     https://mail.python.org/mailman/options/mailman-users/mark%40nervous.org
>     <https://mail.python.org/mailman/options/mailman-users/mark%40nervous.org>
>
>

-- 
This communication may not represent my employer's views,
if any, on the matters discussed. 



More information about the Mailman-Users mailing list