-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clarify backwards compatibility policy #964
Comments
I image that freezing/locking the current python latest version would be far too limiting for the docker image, and not provide the flexibility to adapt to newer changes. (which I can definitely understand if that was the case) My suggestion would be to simply freeze the version before the latest. E.g. right now 3.11 would be locked and when python 3.13 releases later this year images of 3.12.* would be stop receiving any backwards incompatible change, and just continue with patch version updates and security patches/fixes. I think there is a significant group of users (myself included) that would rather stay one or two version behind if that gives more stability and lower maintenance. (akin to the practice of having LTS version of software) |
Hi! Thank you for starting this discussion, I think it's useful to have. (I'm not a maintainer of this repo - so these are just some thoughts of a random person...) In general I think breaking changes aren't made in this repo unless it's when introducing a new major python version. IMO the aspects that made it worth making an exception for #954 were:
The only thing I can think of that could have been done to reduce the chance of impact, is if it had landed with the next 3.12.x release (ie 3.12.6), rather than a regeneration of the existing 3.12.5 release. That said, there have been less than half a dozen people leave either comments or reactions on the relevant issues, so I think the impact was still actually quite small. (At the scale of these images, if the impact was widespread it would have resulted in hundreds of comments etc.) Not that that's any consolation for the people who were affected of course! So overall I think this most recent change was a hopefully rare edge case (where none of the options are great), that won't need be repeated again any time soon. |
@edmorley Makes a lot of sense; the unpinned setuptools is definetly something great to get rid of, and could have potentially cause more damage in the future. If these case are just very rare and low impact, it's probably better to keep the release system simpler rather than complicated them with a freeze/lock timetable. But if more allowance is needed for the maintainers of this repo, to have the ability to make more breaking changes after python releases, I definetly think that it would be more than reasonable to have a grace period. Maybe something to consider if it ever get to that point 😄 Thanks for taking your time to write such a detailed reply! |
Yeah, we generally try to avoid breaking changes, but in many cases we have to choose between "bad and bad" and oftentimes one ends up being worse for one reason or another, and this was one of those cases (as Ed put much more eloquently than I have 😅 ❤️). I know "best effort" isn't exactly what you want to hear, but the fact that it was a surprising event hopefully lends some credence to us generally doing an OK job of avoiding it. 😄 |
As of #954 setuptools was completely removed from the python3.12+ base images, which is not the kinda of change I would have expected from this version.
It would be helpful to have some clarifications on what kinda of changes to expect from the images, and if there are versions of the image that are locked or will be locked so we can update them without risk of breaking everything and still get security updates.
The text was updated successfully, but these errors were encountered: