netdevops / hier_config

Hierarchical Configuration
MIT License
126 stars 24 forks source link

Python 2.7 Support #19

Closed jtdub closed 6 years ago

jtdub commented 6 years ago

In reference to #11, our team has been discussing Python 2.7 support, in addition to the Python 3.6 support that the code is currently written to. We certainly appreciate the contributions, but go back and forth on whether it makes sense to walk back code to support 2.7.

Our main concerns with supporting 2.7 are:

Given this, we'd like to be able to support the community. We'd like to propose some options:

  1. Continue supporting Python 3 only support out of the box.
  2. Commit to supporting Python 2.7 and Python 3 until Jun 1, 2019. At which time, hier_config would likely be converted to Python 3 only. However, Python 2.7 versions would remain on pypi and the last release supporting Python 2.7 would be preserved in a python2 branch.
  3. Create a fork of hier_config to specifically support Python 2.7.
jtdub commented 6 years ago

@itdependsnetworks, @jmcgill298: Thoughts, comments?

itdependsnetworks commented 6 years ago

The reality is the infrastructure we work on is what the client says it is. Knowing enterprises, I would not expect it broad py3 support until after the next rhel release. I would hate to see forking so early in the process.

I think we can build a mutually beneficial relationship, e.g. we have already identified 2 issues, and have plans to extend the library. I appreciate the pain of it all, but it comes down to fstrings being the only thing you mentioned that is not supported in 2.7 (raw string is fine for 2.x, I just removed it, thinking it was another issue.) Additionally, the library scope is much broader if it does support 2.7.

You know what my vote would be :)

aedwardstx commented 6 years ago

I feel a bit dirty for saying so but I vote for option 2 and add that we consider mirroring the official Py2.7 deprecation date when that time approaches :-)

jtdub commented 6 years ago

Okay. We'll include Python 2.7 support until the Python community ends support on January 1, 2020. The first release to support Python 2.7 will be 1.2.0, which we'll tag for release when #11 is merged.