-
Notifications
You must be signed in to change notification settings - Fork 9
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
Decide and document a policy for supported Python versions #1
Comments
Really a need for py2? .. py2.7 EOL 2020-01-01 .. are there LTS distros who still use py2.7 and worth to considered? |
Personally, I'd suggest 3.8 to 3.12, given they're the supported releases at python.org, but I realize some people might have constraints from eg. LTS releases to earlier versions. |
consent .. further we should only support Python versions for which we run a test in the CI / BTW you can drop 3.7 from CI :) vobject/.github/workflows/test.yml Line 8 in e00b430
|
This PR/issue looks like it's a 2.x problem, so if we decide to support 2.x, it'll need to be merged: skarim#161 |
It needed to be merged even we do not support py2 .. here and in other places we use it: Line 9 in e00b430
Tidy up the usage of |
@return42, you're right. I've merged this fix. |
Thank you all for forking and maintaining object. I am a user of "radicale", a carddav server, and vobject is one of its dependencies. I wrote that PR because I created a virtual environment to run radicale and the environment was unable to run radicale unless I manually installed six as well. I do not need or want support for python 2.x. I am very happy to see vobject supported. Whatever you decide is good for me, but the strategy of supporting non-EOL python versions seems logical to me. Are you going to apply for uploading to pypi under the same original name? If you plan to preserve backwards compatibility I guess keeping the name would make a lot of sense. I just learnt about pep 0541: https://peps.python.org/pep-0541/#continued-maintenance-of-an-abandoned-project Good luck on this fork and I hope we can all celebrate many vobject anniversaries from now on! |
Looking at Red Hat Enterprise Linux Releases Let me preface this by saying I'm not entirely convinced that the version of Python installed by default on a long-term support Linux release should dictate what versions vObject should support, but ... it's certainly a factor to consider in making that decision. So:
So, I think RHEL7 is the earliest Red Hat release we should consider supporting, but given general maintenance for it ends in June this year, I'd be kinda tempted to instead aim for RHEL8 as a reasonable minimum. That ends up working out too, because RHEL7 is the last RHEL where Python 2.x is the default system interpreter.
In all cases, Red Hat makes later versions available. I personally think that's a more reasonable thing to rely on, rather than the system (they call it "platform") Python, because otherwise you'd still be using eg. on RHEL8, Python 3.6 in 2029, 8 years after the upstream EOL. For RHEL8, it looks like
For RHEL9, it looks like
References: |
Looking at Ubuntu LTS Releases Again, I'm not sure that our supported versions should rely on what Ubuntu does, but it's useful information to consider in making the decision. Lifecycle dates:
Following the pattern I suggested for Red Hat, I think we should look only at the general support dates, thus considering only 20.04 and 22.04.
So ... that's looking like Python 3.8 is a decent minimum for both Ubuntu and Red Hat. References |
.. and for niche cases there are other options like asdf-vm, docker or LXC. |
I am hoping (though it's likely futile) that we'll be able to arrange a handover of the PyPI access. I have attempted to contact all three of the listed maintainers. I heard back from one, who only said they had nothing to do with it any more. So, it might be possible to have new maintainers added so we can push a release, or perhaps the one responsive maintainer might decide to volunteer to make PyPI releases using this repository, or (as a last resort) we will attempt the PyPI abandoned projects process. I haven't started down that path yet: I think it's important to show some "liveness" of the project, and ideally contributions from more than one person, before really claiming to be a successor. Without having really thought it through, maybe sometime in March would be reasonable -- if nothing else, we should have a bunch of fixes ready to release by then. Thanks for your support! |
If this cannot be clarified with the old pypy rights holders, then this project can also be published on pypi under a different name (e.g. |
Looking at SLES Releases
So, again looking at general support dates, we could support SLES12 until October, after which only SLES15 is still active. SuSE appears to add (and remove) Python versions in service packs.
So, if we were to consider SLES 12, we'd have a minimum of Python 3.4 available, and Python 3.6 if the latest service pack is installed. SLES 15 with service packs installed has Python 3.11. It's not clear to me if SLES operators would install service packs as a standard thing. It's also not clear to me how important SLES is in 2024. References |
I'm going to think about this a little more, but right now, I'm considering a policy of:
That would mean that we support Python 3.8 until October 2025, and then move the minimum to 3.9 until October 2026, then 3.10 until October 2027, and so on. This aligns with Ubuntu 20.04 (with 3.8) which is EOL in April 2025. RHEL now basically has rolling 3 year support (ending before the upstream EOL). SLES SP5 has 3.11, so it's ok until October 2027. How's that suit everyone? |
Honestly, I feel like it's fine to support currently-supported (non-EOL) Python versions, as long as you make one release prior to ending support of earlier versions. This way, people stuck on older Python versions can still install a version compatible with their version, without you having to keep an increased support window in mind. (Also, thank you for picking up this project – just spotted this when my ages-old PR got merged. Yay for support for *gasp* half-hour timezone offsets.) |
It looks like Radicale supports Python 3.7, and I'm pretty inclined to support their usage. As it turns out though, that actually fits the policy statement above: 3.7 EOL was 2023/06/27, and so vObject should support it until 2024/06/27 -- roughly 4 months from today. |
I'm going to
Thanks for the feedback everyone! Roll on Python3! |
That's very sensible – is there any way of getting notified when there's a PyPI release? I'm fairly eager to have a maintained version of vobject in several of my projects – no hurry at all, I'm very glad to see you taking this up, just don't want to miss the release because I forget to periodically check the repository etc. |
@pbiering @da4089 : From personal experience, I know how difficult it is to support Python versions that have already reached their EOL. It massively inhibits your own development and is a source of errors. In projects like these, where resources are severely limited and the user group with such a need has alternatives (asdf, container ..), you should not try to support Python versions after official EOL. Related: Kozea/Radicale#1329 (comment) |
Lifecycles of Phython are a still not really matching long running stable services on production servers with LTS Linux as of today. I've analyzed current Python requirements and LTS Linux (at least Red Hat) for Radicale
Have not screened Ubuntu LTS versions so far, potentially this can also have some impact. See also: Problematic on LTS Linux is also dependency to other packages, which partially still not build for optional usable Phyton versions and therefore have to be bundled with "radicale" :-( Which results on EL8 already by bundling "dateutil" + "defusedxml" + "passlib" + "setuptools_scm" (beside "vobject") because they are only available for Python 3.6 (which is the main Python version on EL8), but not on EPEL for Python 3.8. Created now a poll: Kozea/Radicale#1408 |
@rixx, that seems like a reasonable thing to want. I'm not sure how best to implement it. I will investigate. |
@da4089 Please don't worry about this – I was making that request before the first new vobject release was made, back when it wasn't clear if there would be a new PyPI project, or if the current project was handed over. Now that it seems like the releases will take place on PyPI, all the usual notification tools (watching PyPI / RSS feeds for GitHub and PyPI / dependabot) should work as expected, so no need for anything custom, I think! |
We should decide which Python versions to support (and test) and document them.
In particular, I guess, we should decide whether to support Python 2.x still.
The text was updated successfully, but these errors were encountered: