Docker image `plone-backend` and Python versions


@sneridagh and I are proposing to build images only for the latest Python version by Plone supported version. Are there any objections? We can not imagine a use-case where someone needs an old Python version in a container.

Long read

The plone-backend build system builds Docker images for

  • Plone 5.2 (with Python 3.6, 3.7, 3.8) and
  • 6.0 in flavors a1, a2 and dev (each with Python 3.7, 3.8, 3.9).
  • Now we need all those build twice for AMD64 and ARM64 architectures.

This results in 24 images.

All this is complex to maintain too. Overall it's a waste of human, CPU, storage and bandwidth resources.

But who needs them? I would never use Plone 6 with any Python version different from 3.9 in a container (and I hope we can upgrade to 3.10 for the final release). Same with Plone 5.2 and Python 3.8 (latest supported version for 5.2).

We support older versions primary because of non-docker based installations using the OS installed Python, which is 3.7 on Debian Buster (but 3.9 on most recent Bullseye) or 3.8 on Ubuntu 20.04 LTS, RHEL 8 comes with 3.6 (as CentOS 3 does) and need an upgrade anyway, RHEL 9 (beta) comes with 3.9 (as CentOS Stream 9 does), SuSE comes with 3.6 (AFAICT) and needs also an upgrade for Plone.

OT here, but looking at the above, I additionally propose to drop Python 3.7 support for Plone 6 and add 3.10 while in alpha phase. This would match our rule to support the latest 3 Python versions.

Anyway, all this hassle supporting older Python versions does not apply if it comes to containerized platforms. Here the only limitation that comes into mind is using a library not fit for usage in 3.9/3.10. This is primary true for libs with a C-extensions. But all libs coming into mind are more in the mood to drop old Pythons early than vice versa.

So lets get down from 6 containers/release to 2 (one for each target architecture)!

But we probably have missed some reasons, so please drop your objections against building the latest version only.

Initially this was discussed at a PR here: Testing multiarch builds by sneridagh · Pull Request #26 · plone/plone-backend · GitHub