RFC: Config complexity [was: I have issue where it does not send ...]

Moved from mailman-users@mailman3.org.[1]
Mark Sapiro writes:
Aaargghh! We should not be doing this to users. If we're going to have a "mailman suite" project, there should be a single file for configuration of *all* installed components, at least for "vanilla" installations. (It's bad enough that in many installations one has to configure the webserver three times, once in a front-end like Apache or nginx, once in a wsgi dispatcher like uWSGI, and once in Django.)
I understand that it may take a ton of work and backward incompatibility to implement this, or even make substantial progress, so (until I have time to do it myself) I'm not seriously suggesting it at this time.
It occurred to me that we could have a short comment at the top of every config file that lists all the config files and what they control, with one marked "(this file)". Or something. WDOT?
Steve
Footnotes: [1] https://lists.mailman3.org/archives/list/mailman-users@mailman3.org/message/...

Stephen J. Turnbull wrote:
Mark Sapiro writes:
For what it's worth, The actual mail list management, i.e. receiving and delivering posts, only involves Mailman core and your > mailman suite config file is only for Postorius and HyperKitty and > doesn't affect Mailman core.
Aaargghh! We should not be doing this to users. If we're going to have a "mailman suite" project, there should be a single file for configuration of *all* installed components, at least for "vanilla" installations. (It's bad enough that in many installations one has to configure the webserver three times, once in a front-end like Apache or nginx, once in a wsgi dispatcher like uWSGI, and once in Django.)
I fell foul of this myself to be honest and it took me a while to get it right in my head. One thing I was wondering is if the name of Mailman-Suite is possibly misleading, especially as there used to be a Mailman-Bundler in the past. Something like Mailman Web Bootstrapper (though that possibly needs refining).
Andrew.

On 5/2/20 4:53 AM, Andrew Hodgson wrote:
I fell foul of this myself to be honest and it took me a while to get it right in my head. One thing I was wondering is if the name of Mailman-Suite is possibly misleading, especially as there used to be a Mailman-Bundler in the past. Something like Mailman Web Bootstrapper (though that possibly needs refining).
I agree that the name of the mailman-suite project is wrong because all it is is an example Django project for Postorius and Hyperkitty whereas the mailman-suite-doc project is aptly named as it is the source for <https://docs.mailman3.org/en/latest/> and does cover everything (so far; maybe in the not too distant future we will have Affinity and Empathy too). I was thinking along the lines of mailman-web or even mailman-web-example. Something more in line with its README which says
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On Fri, May 1, 2020, at 9:20 PM, Stephen J. Turnbull wrote:
I wonder if an interactive setup wizard would be useful to help with such issues?
I have thought of being able to unify the configuration files, but except the email configuration, everything else seems to be separate for django and core. A couple of settings like API URL, user and password Postorius' own URL could be removed if we are add the ability of either component's to read other's configuration.
That is a good idea, except I don't know yet how to do that yet. Especially, settings.py is huge mess and is often the hardest for me to figure out a good story for. We should definitely add headers on top of each config file template with the details about them.
The fact that Django expects it's settings to be a "module" and not really a file system path makes things interesting. I did start working on mailman-web project to make things easier, especially, this1 function & script.
The idea is to get rid of django-admin and manage.py mess and just have a single mailman-web CLI which would be able to read the configs from /etc/mailman3/settings.py
by just adding /etc/mailman3
to sys.path. Someday, I envision it to even provide uwsgi/gunicorn/some other WSGI (or even ASGI soon;) server so you could have something like
mailman-web start/stop` command which you could use as a systemd service like mailman core itself.
I do need to spend a bit more time on it to polish the solution. It is possibly something also which could read Mailman Core's configration and read the Email configs.
-- thanks, Abhilash Raj (maxking)

Stephen J. Turnbull wrote:
Mark Sapiro writes:
For what it's worth, The actual mail list management, i.e. receiving and delivering posts, only involves Mailman core and your > mailman suite config file is only for Postorius and HyperKitty and > doesn't affect Mailman core.
Aaargghh! We should not be doing this to users. If we're going to have a "mailman suite" project, there should be a single file for configuration of *all* installed components, at least for "vanilla" installations. (It's bad enough that in many installations one has to configure the webserver three times, once in a front-end like Apache or nginx, once in a wsgi dispatcher like uWSGI, and once in Django.)
I fell foul of this myself to be honest and it took me a while to get it right in my head. One thing I was wondering is if the name of Mailman-Suite is possibly misleading, especially as there used to be a Mailman-Bundler in the past. Something like Mailman Web Bootstrapper (though that possibly needs refining).
Andrew.

On 5/2/20 4:53 AM, Andrew Hodgson wrote:
I fell foul of this myself to be honest and it took me a while to get it right in my head. One thing I was wondering is if the name of Mailman-Suite is possibly misleading, especially as there used to be a Mailman-Bundler in the past. Something like Mailman Web Bootstrapper (though that possibly needs refining).
I agree that the name of the mailman-suite project is wrong because all it is is an example Django project for Postorius and Hyperkitty whereas the mailman-suite-doc project is aptly named as it is the source for <https://docs.mailman3.org/en/latest/> and does cover everything (so far; maybe in the not too distant future we will have Affinity and Empathy too). I was thinking along the lines of mailman-web or even mailman-web-example. Something more in line with its README which says
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

On Fri, May 1, 2020, at 9:20 PM, Stephen J. Turnbull wrote:
I wonder if an interactive setup wizard would be useful to help with such issues?
I have thought of being able to unify the configuration files, but except the email configuration, everything else seems to be separate for django and core. A couple of settings like API URL, user and password Postorius' own URL could be removed if we are add the ability of either component's to read other's configuration.
That is a good idea, except I don't know yet how to do that yet. Especially, settings.py is huge mess and is often the hardest for me to figure out a good story for. We should definitely add headers on top of each config file template with the details about them.
The fact that Django expects it's settings to be a "module" and not really a file system path makes things interesting. I did start working on mailman-web project to make things easier, especially, this1 function & script.
The idea is to get rid of django-admin and manage.py mess and just have a single mailman-web CLI which would be able to read the configs from /etc/mailman3/settings.py
by just adding /etc/mailman3
to sys.path. Someday, I envision it to even provide uwsgi/gunicorn/some other WSGI (or even ASGI soon;) server so you could have something like
mailman-web start/stop` command which you could use as a systemd service like mailman core itself.
I do need to spend a bit more time on it to polish the solution. It is possibly something also which could read Mailman Core's configration and read the Email configs.
-- thanks, Abhilash Raj (maxking)
participants (4)
-
Abhilash Raj
-
Andrew Hodgson
-
Mark Sapiro
-
Stephen J. Turnbull