kontron / python-ipmi

A pure python IPMI library
GNU Lesser General Public License v2.1
187 stars 75 forks source link

Update to Python 3.9 #73

Closed vstinner closed 4 years ago

vstinner commented 4 years ago
vstinner commented 4 years ago

I failed to test if my change still works on Python 2.7, since the project doesn't seem to be compatible with Python 2 anymore:

...
  File "/home/vstinner/python-ipmi/pyipmi/interfaces/rmcp.py", line 23, in <module>
    from queue import Queue
ImportError: No module named queue

If the project no longer supports Python 2, maybe setup.py should be updated and compatibility layers in utils.py should be removed.

vstinner commented 4 years ago

The Python 3.4 job of Travis CI failed while trying to install PyYAML, likely because PyYAML no longer supports Python 3.4.

Python 3.4 is no longer supported upstream (don't get security fixes anymore): https://devguide.python.org/#status-of-python-branches It's maybe time to remove 3.4 from .travis.yml?

hthiery commented 4 years ago

The Python 3.4 job of Travis CI failed while trying to install PyYAML, likely because PyYAML no longer supports Python 3.4.

Python 3.4 is no longer supported upstream (don't get security fixes anymore): https://devguide.python.org/#status-of-python-branches It's maybe time to remove 3.4 from .travis.yml?

indeed .. just removed it

hthiery commented 4 years ago

I failed to test if my change still works on Python 2.7, since the project doesn't seem to be compatible with Python 2 anymore:

...
  File "/home/vstinner/python-ipmi/pyipmi/interfaces/rmcp.py", line 23, in <module>
    from queue import Queue
ImportError: No module named queue

If the project no longer supports Python 2, maybe setup.py should be updated and compatibility layers in utils.py should be removed.

I cannot agree with that. we still have code that uses the lib running under python2.7. So it needs some more time until we will drop the support for 2.7. By the way the tests do run here with python 2.7. What environment do you use?

The travis tests seems to run under python 2.7.

vstinner commented 4 years ago

Thanks for the commit ea9eefe651579690942febda3561a598e359dab2 :-)

Tell me if you would prefer that I split my PR into one PR per kind of change.

hthiery commented 4 years ago

Thanks for the commit ea9eefe :-)

I will add other python versions for testing

Tell me if you would prefer that I split my PR into one PR per kind of change.

would be nice :-)

hthiery commented 4 years ago

add python 3.7, 3.8, 3.9 support to .travis .. retrigger (by close/re-open PR)

vstinner commented 4 years ago

add python 3.7, 3.8, 3.9 support to .travis .. retrigger

You may try "nightly" rather than "3.9" (which is not released yet). I don't know if "3.9-dev" exists yet in Travis CI.

vstinner commented 4 years ago

Oh, the "nightly" job failed with:

...
  File "/home/travis/virtualenv/python3.9-dev/lib/python3.9/site-packages/nose/suite.py", line 106, in _set_tests
    if isinstance(tests, collections.Callable) and not is_suite:
AttributeError: module 'collections' has no attribute 'Callable'

... yeah, nose no longer support Python 3.9. Moreover, it seems like the project is no longer maintained. https://nose.readthedocs.io/en/latest/

Nose has been in maintenance mode for the past several years and will likely cease without a new person/team to take over maintainership. New projects should consider using Nose2, py.test, or just plain unittest/unittest2.

I patched nose manually to be able to test pyipmi... There is https://pypi.org/project/nose2/ but I didn't try it.

hthiery commented 4 years ago

Oh, the "nightly" job failed with:

...
  File "/home/travis/virtualenv/python3.9-dev/lib/python3.9/site-packages/nose/suite.py", line 106, in _set_tests
    if isinstance(tests, collections.Callable) and not is_suite:
AttributeError: module 'collections' has no attribute 'Callable'

... yeah, nose no longer support Python 3.9. Moreover, it seems like the project is no longer maintained. https://nose.readthedocs.io/en/latest/

oh ...

Nose has been in maintenance mode for the past several years and will likely cease without a new person/team to take over maintainership. New projects should consider using Nose2, py.test, or just plain unittest/unittest2.

this looks like a little work to switch to another framework. I was not aware that nose is unmaintained.

I patched nose manually to be able to test pyipmi... There is https://pypi.org/project/nose2/ but I didn't try it.

lbazan commented 4 years ago

Hi @hthiery

Can you delivery a new release with this changes? Thanks!

Cheers,