Drop Python 3.7 - #2246
Drop Python 3.7#2246
Conversation
36787c0 to
7ae7130
Compare
|
Thanks a lot, I also think it should be fine to drop support and simplify the code accordingly. CC @EliahKagan if there is anything speaking against dropping py 3.7, we can undo this change as well (while I hope that won't be necessary. |
|
This seems reasonable; I have no objection to dropping Python 3.7 support at this time. GitPython has traditionally kept support for EoL versions for Python for a long time after they have become EoL, a practice that I think has considerable value for GitPython, but Python 3.7 is extremely old at this point--multiple subsequent releases are EoL now. I suggest going ahead and dropping support for Python 3.7 if there are identifiable benefits, while continuing to support 3.8 and onwards for now. I'm not sure reducing CI load or churn is a clear enough benefit to justify dropping Python 3.7, but I think there are others. I think there are a number of places in the code where we are writing code cumbersomely due to not having access to language and library features introduced in Python 3.8 (some commented, many not). Some of those seem also to be improved here--though some of the improvements here don't seem to be incompatible with Python 3.7; for example, I think There is the question of whether this constitutes a breaking change. Because Also, I wonder if actually we have breaking changes on the main branch since the most recent release. Specifically, #2243 looks like a breaking change, albeit one that might not actually break anything people are really using: before, one could do If the next release does get a major version bump, then various other small breaking changes could maybe be done and included in it, but I recommend against rushing in anything big. I think it should be okay for some or all of what is currently planned in #2177 for GitPython 4.0.0 to come in (when it is ready) as GitPython 5.0.0 instead. If you don't want a major version bump at this time, then dropping Python 3.7 doesn't need to be done in one; a minor version bump is okay. But in that case I recommend looking at #2243 and also examining other changes that have been coming in to see if they are breaking. (I just happened to notice that #2243 might be breaking; I haven't been looking for breaking changes in recent PRs.) |
|
Thanks so much for chiming in!
I made sure the next version is a minor bump, while mentioning the removal of Python 3.7 in the changelog.
Oh, I wasn't aware at all, probably because I never considered build-system settings to be part of a semver contract.
Major isn't planned at all, and I don't think there is API breaking changes, which, as I learned recently and the hard way, are very easily overlooked. So I think it would be good to have your final verdict on #2243, which seems to modernize how doc dependencies are specified. Something I find strange is to not be able to update how this is done, and I would declare it non-breaking, but then again, one word from you and I will revert the commit and put it into the #2177 PR. Thanks again, and sorry for the hassle. |
Unsure if this is good timing or not, but Python 3.7 reached it's EOL in 2023 (PEP 537), so is overdue to be dropped. This helps reduce the maintenance burden and reduces the CI churn, which are good things. It was 5 years ago this project dropped Python 3.6, for reference.
A few old bits of Python 2 are also identified and modernized, like
IOError->OSErrorand other minor changes.