Upgrading other python packages than the mailman ones in a venv results in dependency conflicts

Hello, I know this should be the way to upgrade: https://docs.mailman3.org/en/latest/upgrade-guide.html I have 3.3.10 installed. I saw that some python packages are outdated an tried this which install all outdated packages in a row: pip list --outdated --format=json | jq '.[].name' | xargs -n1 pip install -U One outdated package was django and this part happened:
vDownloading Django-5.1.4-py3-none-any.whl (8.3 MB) Installing collected packages: Django Attempting uninstall: Django Found existing installation: Django 4.2.16 Uninstalling Django-4.2.16: Successfully uninstalled Django-4.2.16 ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. hyperkitty 1.3.12 requires django<5.1,>=4.2, but you have django 5.1.4 which is incompatible. mailman-web 0.0.9 requires django<4.3,>=4.0, but you have django 5.1.4 which is incompatible. postorius 1.3.13 requires django<5.1,>=4.2, but you have django 5.1.4 which is incompatible. django-mailman3 1.3.15 requires django<5.1,>=4.2, but you have django 5.1.4 which is incompatible. Successfully installed Django-5.1.4
So I made a roll back.
Is this really the only secure way to update the venv?: pip install -U mailman postorius django-mailman3 hyperkitty mailman-web May be yes and I have to ignore the rest? ;-)
Thank you und regards

On Mon, Dec 16, 2024 at 1:39 PM Ulf R. <ulf.rapphahn@offis.de> wrote:
Hello, I know this should be the way to upgrade: https://docs.mailman3.org/en/latest/upgrade-guide.html I have 3.3.10 installed. I saw that some python packages are outdated an tried this which install all outdated packages in a row: pip list --outdated --format=json | jq '.[].name' | xargs -n1 pip install -U One outdated package was django and this part happened:
vDownloading Django-5.1.4-py3-none-any.whl (8.3 MB) Installing collected packages: Django Attempting uninstall: Django Found existing installation: Django 4.2.16 Uninstalling Django-4.2.16: Successfully uninstalled Django-4.2.16 ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. hyperkitty 1.3.12 requires django<5.1,>=4.2, but you have django 5.1.4 which is incompatible. mailman-web 0.0.9 requires django<4.3,>=4.0, but you have django 5.1.4 which is incompatible. postorius 1.3.13 requires django<5.1,>=4.2, but you have django 5.1.4 which is incompatible. django-mailman3 1.3.15 requires django<5.1,>=4.2, but you have django 5.1.4 which is incompatible. Successfully installed Django-5.1.4
So I made a roll back.
Is this really the only secure way to update the venv?: pip install -U mailman postorius django-mailman3 hyperkitty mailman-web
Correct!
May be yes and I have to ignore the rest? ;-)
Yes. Let them pull their own versions of dependencies.
-- Best regards, Odhiambo WASHINGTON, Nairobi,KE +254 7 3200 0004/+254 7 2274 3223 In an Internet failure case, the #1 suspect is a constant: DNS. "Oh, the cruft.", egrep -v '^$|^.*#' ¯\_(ツ)_/¯ :-) [How to ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html]

On Montag, 16. Dezember 2024 11:52:25 CET Odhiambo Washington via Mailman- users wrote:
On Mon, Dec 16, 2024 at 1:39 PM Ulf R. <ulf.rapphahn@offis.de> wrote:
Hello, I know this should be the way to upgrade: https://docs.mailman3.org/en/latest/upgrade-guide.html I have 3.3.10 installed. I saw that some python packages are outdated an tried this which install all outdated packages in a row: pip list --outdated --format=json | jq '.[].name' | xargs -n1 pip install -U One outdated package was django and this part happened:
vDownloading Django-5.1.4-py3-none-any.whl (8.3 MB) Installing collected packages: Django
Attempting uninstall: Django
Found existing installation: Django 4.2.16 Uninstalling Django-4.2.16: Successfully uninstalled Django-4.2.16
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. hyperkitty 1.3.12 requires django<5.1,>=4.2, but you have django 5.1.4 which is incompatible. mailman-web 0.0.9 requires django<4.3,>=4.0, but you have django 5.1.4 which is incompatible. postorius 1.3.13 requires django<5.1,>=4.2, but you have django 5.1.4 which is incompatible. django-mailman3 1.3.15 requires django<5.1,>=4.2, but you have django 5.1.4 which is incompatible. Successfully installed Django-5.1.4
So I made a roll back.
Is this really the only secure way to update the venv?: pip install -U mailman postorius django-mailman3 hyperkitty mailman-web
Correct!
May be yes and I have to ignore the rest? ;-)
Yes. Let them pull their own versions of dependencies.
OK. So what about --upgrade-strategy eager:
pip install -U --upgrade-strategy eager mailman postorius django-mailman3 hyperkitty mailman-web
Is that allowed/supported?
-- Best regards, Odhiambo WASHINGTON,
Mit freundlichen Gruessen, Andreas Vetter

On 12/16/24 03:03, Andreas Vetter wrote:
OK. So what about --upgrade-strategy eager:
pip install -U --upgrade-strategy eager mailman postorius django-mailman3 hyperkitty mailman-web
Is that allowed/supported?
Yes it is recommended if you want to upgrade dependencies and if you have a recent version of pip. Older versions of pip don't support that option but their default behavior is the same as newer versions with --upgrade-strategy eager.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan

I upgrade with --upgrade-strategy eager but still git this:
pip install -U --upgrade-strategy eager mailman postorius django-mailman3 hyperkitty mailman-web
... Attempting uninstall: django-mailman3 Found existing installation: django-mailman3 1.3.11 Uninstalling django-mailman3-1.3.11: Successfully uninstalled django-mailman3-1.3.11 Attempting uninstall: postorius Found existing installation: postorius 1.3.10 Uninstalling postorius-1.3.10: Successfully uninstalled postorius-1.3.10
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
hyperkitty 1.3.8 requires django<4.3,>=3.2, but you have django 5.0.14 which is incompatible. mailman-web 0.0.8 requires django<4.2,>=3.2, but you have django 5.0.14 which is incompatible. Successfully installed asgiref-3.9.1 django-5.0.14 django-allauth-65.10.0 django-mailman3-1.3.15 oauthlib-3.3.1 postorius-1.3.13
Please can you advice?

Apparently, again, the more recent django appears to be in conflict, when I want to pip install -U hyperkitty.
What is your advice to overcome this problem?

My problem was solved after repeating the upgrade AFTER HAVING stopped also the mailmanweb service (systemctl stop mailmanweb).
Sorry
participants (5)
-
Andreas Vetter
-
Mark Sapiro
-
Odhiambo Washington
-
Ulf R.
-
Wikinaut