I’m not sure if this is the right place to ask this question, it falls between a few categories but I would be interested to hear what approach maintainers of other third-party packages take (and will take in the coming months).
I’m writing a third-party package, and I intend for it to work with all versions of Django under extended support (currently versions 4.2, 5.0, and 5.1). The Django docs list that Django 4.2 supports Python versions from 3.8 - 3.12.
Next month python version 3.8 will reach end-of-life. My questions are:
Will Django 4.2 still officially work with Python 3.8 past its end-of-life
If so, will third-party packages keep support for Python version 3.8? I appreciate this is a decision each package will make themselves, but I am interested to know if there is any generally accepted wisdom or best practices around this issue?
(If it makes a difference, this is not a moot question. I’m currently making changes that are only required so that my package works with Python 3.8 and I’m wondering if it’s worth the effort when by the time my package is ready v3.8 will already have reached end of life).
End-of-life means that there will be no more patches or security patches developed for Python 3.8. So unless another Python version is released until EOL, 3.8.20 will be the last version ever released for 3.8. It does not mean that Django suddenly stops working.
It is up to the maintainer whether or not they they will fix bugs that only happen in conjunction with EOL Python versions. If a bug is not related to a Python version, it will most likely work with Python 3.8 as well. But for popular packages it could very well be that they start introducing Python features that only works on 3.9 and above. But again, that does not mean that the particular version you are running now stops working.
Well, as I said above, that is up to you and your incentive to put in the work. If you have clients that would pay for your extended support, that is great, go for it. If you have more important things to do, you may want to think if that is worth your time.
Sorry, I think I phrased my question poorly. I appreciate django will not suddenly stop working. By “officially work” what I really meant is: “what guarantees does django make about using v4.2 with python 3.8?”. For example, would a bug or security issue that only affected django with python 3.8 result in a new release? Or would at this point, django just recommend upgrading to a more recent version of python? Likewise, would django back-port a security-fix to django 4.2 that made use of a python feature introduced in v3.9? (The reason I’m wondering this is that it has implications for how third-party packages perhaps ought to behave).
Yes, this is the essence of what I’m asking. It is obviously up to individual maintainers, and it is easy to make clear what is and isn’t supported, but I’m wondering if there is any consensus or generally accepted wisdom regarding how closely third-party packages match python support to the officially supported versions django recommends. (Especially when one of those versions has reached end of life).
Thanks again, I hope the above makes clearer what I meant to ask.