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-us...@mailman3.org/ > > On Sat, Jun 17, 2017 at 5:14 PM, tlhackque via Mailman-Users > <mailman-users@python.org <mailto: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://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@python.org > <mailto:Mailman-Users@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. ------------------------------------------------------ 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