Skip to content
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

Drop support for EOL Python 2.6 and 3.3 #737

Merged
merged 10 commits into from
Mar 24, 2018
Merged

Drop support for EOL Python 2.6 and 3.3 #737

merged 10 commits into from
Mar 24, 2018

Conversation

hugovk
Copy link
Contributor

@hugovk hugovk commented Mar 18, 2018

As a follow on from #540 (comment), this drops support for Python 2.6 and 3.3, both of which are EOL and no longer receiving security updates, or any updates, from the core Python team.

They're also little used. Here's the pip installs for GitPython from PyPI for last month:

python_version percent download_count
2.7 82.08% 466,982
3.6 10.07% 57,285
3.5 4.88% 27,754
3.4 2.58% 14,663
2.6 0.23% 1,333
3.7 0.10% 571
3.3 0.06% 321
3.8 0.00% 5

Source: pypinfo --start-date -39 --end-date -12 --percent --pip --markdown GitPython pyversion

Dropping Python 2.6 means some old compatibility and 2.6-specific code can be removed, and can also be updated to use more modern features of Python 2.7+, some of which has been applied here.

Python 3.3 is also dropped here. Whilst there's less benefit to be had from code changes (compared to 2.6), it's unsupported and used even less that 2.6 (in this project and in general), so there's no strong reason to keep it and we might as well free up some CI slots.

@Byron
Copy link
Member

Byron commented Mar 18, 2018

Thank you so much for this massive cleanup!
To me it would have been utterly impossible to do it! It's contributors like you who keep this project going!

I will have a closer look in the following days, and invite @yarikoptic and @ankostis to do the same.

What do you all think how this change should be released? In theory it would have to be a major version jump, as we might break some people. On the other hand, the API didn't change so the release might be confusing and repelling to everyone else.

From that point of view, it might not be more than a patch release.

@hugovk
Copy link
Contributor Author

hugovk commented Mar 18, 2018

You're welcome, and thanks for the maintenance!


Some projects bump major versions to indicate dropping support, some don't.

If following semver, it depends if you consider it a backwards incompatible changes:

  1. Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API. It MAY include minor and patch level changes. Patch and minor version MUST be reset to 0 when major version is incremented.

https://semver.org/#spec-item-8

I probably would bump it, but don't have strong opinions.


It's good 2.1.8 was already released with python_requires (c22f1b0), which will help pip install the right version for people still on old Pythons. See:

Copy link
Member

@Byron Byron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!
Interesting to see all the new syntactic sugar that was added since the last time I actively wrote python code.

@Byron
Copy link
Member

Byron commented Mar 18, 2018

And since we don't change the public API in that sense, I think a major version bump shouldn't be required. Also I would rather upset those behind ~1000 downloads, rather than confusing (or loosing) those behind the 500k downloads.

I will wait a week for more commends and/or opinions to come in, and if there are no objects, will release a new version next weekend.

Copy link
Contributor

@yarikoptic yarikoptic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cute! just 2 minor comments/questions ;)

* `[include]` sections in git configuration files are now respected
* Added `GitConfigParser.rename_section()`
* Added `Submodule.rename()`
* A list of all issues can be found `on github <https://github.com/gitpython-developers/GitPython/issues?q=milestone%3A%22v0.3.6+-+Features%22+>`_
* A list of all issues can be found `on GitHub <https://github.com/gitpython-developers/GitPython/issues?q=milestone%3A%22v0.3.6+-+Features%22+>`_
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably could/will be added later -- but there should be a "loud" changelog entry about dropping 2.6 support for the upcoming release

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that would be sensible.

Would you like me to do that as part of this PR, or should it wait? If now, what's version will the next release be?

@@ -3,4 +3,4 @@
coverage
flake8
nose
mock; python_version<='2.7'
mock; python_version=='2.7'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so version here could never include ".patch" (ie to be 2.7.5)? if it could then would need to retain <=

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not too sure. Shall I revert this to be on the safe side?

@Byron Byron merged commit f3265bd into gitpython-developers:master Mar 24, 2018
@codecov-io
Copy link

Codecov Report

Merging #737 into master will decrease coverage by <.01%.
The diff coverage is 95.5%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #737      +/-   ##
==========================================
- Coverage   94.66%   94.66%   -0.01%     
==========================================
  Files          60       59       -1     
  Lines        9338     9289      -49     
==========================================
- Hits         8840     8793      -47     
+ Misses        498      496       -2
Impacted Files Coverage Δ
git/test/test_docs.py 100% <ø> (ø) ⬆️
git/test/test_git.py 98.8% <100%> (ø) ⬆️
git/refs/head.py 98.9% <100%> (ø) ⬆️
git/objects/submodule/base.py 94.35% <100%> (-0.22%) ⬇️
git/test/performance/test_odb.py 100% <100%> (ø) ⬆️
git/test/test_repo.py 97.83% <100%> (+0.13%) ⬆️
git/objects/util.py 92.35% <100%> (ø) ⬆️
git/diff.py 99.11% <100%> (ø) ⬆️
git/test/test_fun.py 98.92% <100%> (-0.02%) ⬇️
git/config.py 92.43% <100%> (-0.33%) ⬇️
... and 28 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9f12b26...80b038f. Read the comment docs.

@Byron Byron added this to the v2.1.9 - Bugfixes milestone Mar 24, 2018
riley-martine pushed a commit to riley-martine/GitPython that referenced this pull request Dec 7, 2023
Drop support for EOL Python 2.6 and 3.3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

4 participants