-
Notifications
You must be signed in to change notification settings - Fork 286
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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
All in on Python 3 #619
base: schematics3
Are you sure you want to change the base?
All in on Python 3 #619
Conversation
Codecov Report
@@ Coverage Diff @@
## schematics3 #619 +/- ##
===============================================
+ Coverage 91.06% 92.98% +1.91%
===============================================
Files 24 22 -2
Lines 2541 2309 -232
===============================================
- Hits 2314 2147 -167
+ Misses 227 162 -65
Continue to review full report at Codecov.
|
Do you think this project can stay python2 compatible? |
I don't think we can. Python 2 is officially 100% dead and unsupported as of a year ago, and sticking with that means we can't use the new features available in more recent versions. I see literally no downside to dropping Python 2 support so that we can make Python 3 support better. |
LGTM. Great work @kstrauser ! Moving to Python 3 is important to keep maintenance manageable, contributions are scarce as it is. @Mizaro is there some existing PR you would request for a last Python2 release? |
@lkraider Thanks, and I'm glad you liked it! It could have gone another way: "thanks for dropping this giant ball of mud PR on me, un-asked for." 馃榾 As a practical matter, since this is a very backward-incompatible change, I could see a release process like this:
Then the main branch of Schematics would be on the new Python 3 version, but the old version would still exist for people who need it. What do you think? Please take the above in the spirit of "Kirk brainstorming ways to make this as easy as possible for everyone", not "Kirk trying to dictate how to run a project he's only active with every few years". 馃檪 |
I'd recommend keeping branches as is, and using tags for versions. That would be much cleaner.
Are you considering still maintaining for Python 2? I'd suggest drawing a line and not bothering at this point, it's been dead 19 months and many projects have dropped it. And this PR is titled "All in on Python 3" :)
The old version will still exist anyway on PyPI and in the repo via tags. Make sure to add |
@hugovk You've convinced me. |
Hi gang! It's been a while!
Python 2 is dead and Python 3 is the present. This PR removes Python 2 compatibility and starts adopting Python 3 features. It:
compat.py
class Foo:
instead ofclass Foo(object):
)__future__
imports (the future is here!)deprecated.py
(as long as we're breaking things...)super()
syntaxThese are breaking changes, and I think this would have to go into a new release: Schematics 3. That's a happy semantic versioning coincidence, isn't it?
There are some other things I'd like to do before we'd consider cutting a new release, but this PR is big enough as it is so I'll put those in other PRs.