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
WIP: Unify to a single code base compatible with both Python 2 & 3 #245
Conversation
@jdufresne I've only skimmed the changes so far, but thanks for taking this on! Let's see if you can get the Travis tests passing next. BTW, How necessary is it to depend on six? I notice you mostly use it for |
Just chiming in that 1) this is awesome, 2) use of the |
Yeah, this has been sorely needed for a long time- thanks! |
Renamed this @jdufresne, @nitzmahone and I think pyyaml should vendor the six.py file as part of the pyyaml dist since it is only one file and adding dependencies to an important package that currently has none might cause trouble. You can do that or we can. Let us know if you need help getting the tests to pass. |
Alternative proposition: drop Python 2 altogether since its by the end of the year it will reach EoL. Motivation: lower maintance burden, and much lower risk of bugs. |
I'm am definitely open to that if the maintainers are. I agree, @nitzmahone and @ingydotnet what do you say? Can we go Python 3 only? |
@jdufresne Work has begun in earnest towards a PyYAML 5.1 release which we hope will become final this month. @nitzmahone, @perlpunk and I would be excited to merge this PR if it can be completed soon enough. More public details on the release should emerge this week. @rooterkyberian it is too early to drop Python 2 support now. The YAML projects that I am involved with strive to support language versions past EOL. So it will probably be a few years. |
This removes the need to maintain two separate code bases that could potentially drift over time in subtle ways. This greatly simplifies long term maintenance. Now, both Python 2 and 3 share the same code with the six package as a compatibility layer.
Thanks for all feedback, but I no longer have the time to finish this. If someone else is interested they can continue from my work. |
@jdufresne No problem. Thank you for starting this. I expect we will get it done soon after the 5.1 release. |
This removes the need to maintain two separate code bases that could
potentially drift over time in subtle ways. This greatly simplifies long
term maintenance. Now, both Python 2 and 3 share the same code with the
six package as a compatibility layer.