Overview
I noticed the new django-requests-debug-toolbar version did not resolve in my project, because it did not build for 3.12 unless I remove %{?sle15_python_module_pythons}
from it: https://build.opensuse.org/package/rdiff/openSUSE:infrastructure:mailman3/python-django-requests-debug-toolbar?linkrev=base&rev=2. With that, Postorius builds fine against it: https://build.opensuse.org/package/show/openSUSE:infrastructure:mailman3/python-postorius.
I guess it will magically work in devel:languages:python:mailman?
on Factory yes, but it should be kept in sync also with the mailman version login (line 50 in https://build.opensuse.org/package/view_file/devel:languages:python:mailman/python-mailman/python-mailman.spec?expand=1)
Sorry, could you elaborate on the mailman version login ? :-) Line 50 there seems to just reference Tumbleweed.
%if 0%{?suse_version} >= 1600 # Newest python supported by mailman is Python 3.12, but we have just Python 3.11 in SLE # See https://gitlab.com/mailman/mailman/-/blob/master/src/mailman/docs/NEWS.rst %define pythons python312 %define mypython python312 %define mypython_sitelib %{python312_sitelib} %else %if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150500 %define pythons python311 %define mypython python311 %define mypython_sitelib %{python311_sitelib} %else %{?!python_module:%define python_module() python3-%{**}} %define pythons python3 %define mypython python3 %define mypython_sitelib %{python3_sitelib} %endif %endif
In words, we use python312 on Tumbleweed, python311 on newer SLE-based systems and python3 on old systems.
the old systems probably don't matter, but there is python311 stack (not python312, since it didn't exist at the time of designing) in the new SLE
I understand, so I should keep python311 if not Tumbleweed?
Yes, there are people (like me) who use this in production on SLE15 or Leap 15.5. You're breaking those installations.
Here is a repo building for 15.5: https://build.opensuse.org/project/show/home:gladiac:mailman
And I just noticed that someone broke Hyperkitty.
Now you know my frustration when someone breaks the Mailman stack for Tumbleweed in Factory. ;-) I superseded the requests to only switch to python312 in the Tumbleweed clause. Please check.
"I superseded the requests to only switch to python312 in the Tumbleweed clause." But it is not just for Tumbleweed, the clause also affects SLE-15-SP6 and derivatives. What maybe confuses you is that the logic was wrong before, in the
%else
clause there should have beenpython3
. Could you just please copy the version logic from mailman? E.g. Tumbleweed python312, sle15.5 and newer python311 and older systems python3?What about we make a "mailman-macros" (or similar) package and store the version logic in a single place instead of copy pasting things around?
hm, sounds like a good idea, but in the meantime Factory will stay broken. So I suggest to first rewrite it by hand and when it is fixed make a macro. The logic is implemented for instance here: https://build.opensuse.org/request/show/1152926
There is really no reason to jump to the newest supported python and break everything else. Keep it simple and stay with python3 for TW and the SLE15 python module for 15x. Both is python 3.11 right now.
I wish. The problem is that Mailman was bumped to Python 3.12, causing Postorius, HyperKitty, and others to break (sometimes only at runtime!). All packages in the Mailman stack need to be built against the same Python version, otherwise the stack is broken.
Yes and that was a big mistake. Take everything back to the primary python and make sure through proper requirement definitions that they are all on the same python at install and runtime.
I don't think that's my call, I did not opt for the newer version or know why it was chosen, I just submitted my remediation for the broken stack.