On 5/22/19 2:07 PM, David Krantz wrote:
Hi all,
I am running a relatively old version of mailman 3, namely 3.2.0a1 from late september 2017. This is installed using the old mailman-bundler method. I use postfix and postgres.
I really have two questions:
First: What is the normal way to upgrade such a setup? I guess that I just can get the updated versions of all packages through git, set up new venv's to simplify a rollback, back up the database and then just restarting with the new version hoping for the best.
That's more or less correct.
I did this on mailman3.org a little over a year ago. I suggest you see <https://wiki.list.org/DOC/Mailman%203%20installation%20experience> which describes much of what I did. you can also see <https://wiki.list.org/DOC/Mailman%203%20installation%20experience?action=recall&rev=10> for what I had with Mailman Bundler.
The biggest hurdle is now Postorius and Hyperkitty are Python3 so you need Python3 versions of various dependencies.
Here's roughly what I did.
git clone everything from GitLab. As a developer, I've always been running off the heads. There are occasional glitches, but I can work around these. You can also install from PYPI if you want more stability.
Everything is mailman, mailman-hyperkitty, mailmanclient, django-mailman3, hyperkitty and postorius.
But, I'm getting ahead. Create a new python3.5+ virtualenv. Python3.5 is the minimum, but 3.6 or 3.7 would be even better.
Activate that virtualenv and if you are using the branches from GitLab, in each branch directory, do
python setup.py clean --all python setup.py install
or just pip install everything.
You also need to do the things indicated in the Preliminaries and Installation sections of <https://wiki.list.org/DOC/Mailman%203%20installation%20experience>. Also see the Migration section for scripts I use to update from GitLab and build 'everything' and the rest of the document too.
Then once you have things set up, it's pretty much a matter of just updating the various scripts you use to run things to point to the new command files in, in my case, /opt/mailman/mm/bin/.
One caveat to note is if you are using the Whoosh backend. The Python2 version is incompatible with Python3 so you need to remove the fulltext_index directory and run the django management rebuild_index command to recreate it. You should be able to just run rebuild_index or maybe clear_index followed by update_index without removing the old index first, but there are reports that this doesn't work.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan