chaos / genders

Genders is a static cluster configuration database used for cluster configuration management. It is used by a variety of tools and scripts for management of large clusters.
GNU General Public License v2.0
35 stars 12 forks source link

Build Bindings for *both* python2 and python3 #46

Closed hawartens closed 4 years ago

hawartens commented 4 years ago

Update the spec file to do multiple builds (if necessary) for both python2 and python3 bindings. Both get built by default, but can be controlled with _with_python2 or _with_python3. Continue to respect the _with_python_extensions macro as well. Currently tested on a TOSS3 host, and should work on a TOSS4 host (but still needs to be tested). Should be able to drop the genders.t4.patch with this update.

garlick commented 4 years ago

Hi @hawartens - since python2 is now end of life, can't we avoid the extra complexity of supporting both 2 and 3 here?

https://www.python.org/doc/sunset-python-2/

chu11 commented 4 years ago

I think the issue is less about supporting python 2 and python 3, but more that genders has always built its python modules for the "default" python. So in TOSS3, that happens to be python 2. So if Python3 is also needed, an additional build is needed, otherwise we break current installs.

jf6b commented 4 years ago

Yes, dropping python2 support would mean we couldn't update genders in TOSS 3 without things breaking, and neither could EPEL.

Also note that while upstream has stopped supporting python 2, RHEL continues to support it in RHEL 7.

garlick commented 4 years ago

Got it! Thanks.

hawartens commented 4 years ago

Hi @hawartens - since python2 is now end of life, can't we avoid the extra complexity of supporting both 2 and 3 here?

https://www.python.org/doc/sunset-python-2/

Hey @garlick! We wanted this change to support python3 on TOSS3 without breaking things for others still using python2 on TOSS3. Also thought it would be a little nicer to break out the python bindings into their own separate packages to make it easier to build and install for multiple python versions (even within the python3 universe).

hawartens commented 4 years ago

Also (unfortunately) it looks like RedHat 8 will continue supporting python2 until June 2024. Not that it should have much bearing on what we do in TOSS4. Sigh. https://access.redhat.com/solutions/4455511

garlick commented 4 years ago

Yeah, I spoke without thinking too much about the context here. We killed python2 support in Flux's bindings. Our bindings were being used by some local workflow users, so after we got them on board, we were able to move forward. But then we're still a 0.x package that makes no API stability guarantees (yet), and we're not in EPEL. Sorry for the noise!

hawartens commented 4 years ago

The noise is good. Keeps me honest. Plus haven’t talked with you much in a while. Good to hear from you in any capacity!

BenCasses commented 4 years ago

I like it. But I'd like a second review since I'm less confident in my spec file comprehension.

chu11 commented 4 years ago

there's some trickiness with the push & pops, but I think its all correct. thumbs up from me.

hawartens commented 4 years ago

Thanks guys!