[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