unit icon indicating copy to clipboard operation
unit copied to clipboard

python3.13 support + docker

Open imkebe opened this issue 1 year ago • 7 comments

Python 3.13 had been released. There is no build for such version of the docker images

imkebe avatar Oct 09 '24 11:10 imkebe

@thresheek Would it be possible for SysEng to bump our Python language versions without a Unit release, or would that be a bit of a pain? 🙏

callahad avatar Oct 14 '24 14:10 callahad

I think we can do the following:

  • Bump Python version to 3.13+3.12 in the master branch
  • Backport those commits to the packaging branch
  • Do a new PR to Docker Library to pick up those changes.

A couple of things that are potentially breaking someone's workflows, as we typically publish two latest language runtime versions:

  • we'd drop 3.11 from the library definition (published images like unit:1.33.0-python3.11 and unit:python3.11 will stay as is, albeit not easily discoverable)
  • we'd move unit:python3 and unit:python tags to 3.13 instead of a current 3.12

thresheek avatar Oct 15 '24 18:10 thresheek

One thing to consider in general 3.13 release. Default Python 3.13 has similar behaviour like 3.12 however there is new 3.13t version that has changes to GIL (threading mechanism). If this version would be supported by Unit it should be tested. However it's considered as an experimental feature.

imkebe avatar Oct 15 '24 18:10 imkebe

@thresheek Would it be possible to avoid the potential of breakage by instead:

  • Keeping 3.11 on the packaging branch (so Docker Library publishes 3.11, 3.12, and 3.13)
  • Keeping unit:python at its current 3.12, so it only revs when we do our next full Unit release?

@imkebe I'm super excited about the GIL removal, but we'll probably not post images to Docker Hub while it's still experimental. I do encourage you to try it locally, though, and report back!

callahad avatar Oct 21 '24 08:10 callahad

@callahad That is what I wanted to say - GIL is a experimental build so don't bother to include it in a Unit supported at the moment. That will come with python 3.14

imkebe avatar Oct 22 '24 10:10 imkebe

The current implementation of the "library" definition sorts the versions and assigns non-versioned variants to whatever the latest is.

We can cheat a bit and provide the manually edited file, of course, however it's not very nice from etical POV since we also publish "this file is generated via ..." line in there...

thresheek avatar Oct 24 '24 20:10 thresheek

Fair enough. I'm fine with splitting the difference: publish 3.11, 3.12, and 3.13; and allow unit:python to point to 3.13.

If you're implicitly pointing at the latest version of Python, you get the latest version of Python.

callahad avatar Oct 24 '24 22:10 callahad

Python 3.13 is now supported via Docker.

thresheek avatar Jan 23 '25 03:01 thresheek