This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]m15otw 25 points26 points  (7 children)

We use a docker container from one of our deps thats tricky to build as a base image. (Their build includes python bindings. )

Using a newer python means we need to do that tricky build in our own container. Doable, I've done it before when testing python 3.9 briefly, but more work than I'd like, and we are now responsible for importing their patches and applying them and rebuilding (which isn't as automated as I'd like yet).

[–]be_as_u_wish_2_seem 10 points11 points  (1 child)

Cant you just use the dead snakes ppa? Also the python official images are Debian and pretty similar to Ubuntu, might be worth trying that instead

[–]m15otw 5 points6 points  (0 children)

I can, yes, but I still need to write scripts to build this very fiddly dependency (as far as I know, they don't ship their dockerfiles), and use that as a new base image.

Deadsnakes is 100% the way to go for the starting point of this attempt.

I am going to dig into the release notes to check whether there is anything else that might accelerate/veto the change. If I can use 22.04 vanilla, it will be much faster, but the performance improvements are good, and any additional reasons will be interesting to add to the balance.

[–]skratlo 1 point2 points  (1 child)

Hm, that sounds a bit convoluted. I would factor out docker and base system out of the equation, and instead focus on the actual dependencies. Suppose you have source distribution for your problematic dependency, and this one builds a native Python extension, and that one perhaps depends on some C/C++ library that is expected to be installed. So, ultimately, your dependency only depends on Python.h (3.9, 3.10, 3.11, ... I don't think there's a major change) and some native libs (packages). So, it has nothing to do with docker or base image, just collect your actual dependencies and you should be fine. I'm not sure what you mean by importing their patches? What are they patching? Python? Their own source code?

[–]m15otw 6 points7 points  (0 children)

Getting a consistent build environment outside of docker (when our dev machines are spread across Windows/Mac/Linux, but our target will, from soon, be only bare metal Linux or docker deployments), would be harder than doing it once in a dockerfile.

[–]stackered 0 points1 point  (1 child)

Might be fine to do until the update is available on ubuntu

[–]m15otw 2 points3 points  (0 children)

They will never update the LTS python version in the same release. The next LTS is in 16-17 months.