jupyter_client icon indicating copy to clipboard operation
jupyter_client copied to clipboard

Release 6.1.13 breaks compatibility with Python 3.5

Open Lothiraldan opened this issue 5 years ago • 11 comments

Hi, the latest release of jupyter_ciient breaks compatibility with Python 3.5. Here is the traceback we are seeing on our CI:

/usr/local/lib/python3.5/site-packages/ipykernel/__init__.py:2: in <module>
    from .connect import *
/usr/local/lib/python3.5/site-packages/ipykernel/connect.py:16: in <module>
    import jupyter_client
/usr/local/lib/python3.5/site-packages/jupyter_client/__init__.py:6: in <module>
    from .asynchronous import AsyncKernelClient  # noqa
/usr/local/lib/python3.5/site-packages/jupyter_client/asynchronous/__init__.py:1: in <module>
    from .client import AsyncKernelClient  # noqa
/usr/local/lib/python3.5/site-packages/jupyter_client/asynchronous/client.py:6: in <module>
    from jupyter_client.channels import HBChannel
E     File "/usr/local/lib/python3.5/site-packages/jupyter_client/channels.py", line 47
E       time_to_dead: float = 1.0

It's not a big issue on our side, we can work-around it, but the packaging metadata needs to be updated if the breakage was intentional:

  • https://github.com/jupyter/jupyter_client/blob/master/setup.py#L79
  • https://github.com/jupyter/jupyter_client/blob/master/setup.py#L66

I would also recommend yanking the release 6.1.13 and doing a new release 6.1.14 with the correct packaging metadata to minimize the risk of people getting an invalid version on Python 3.5.

The conda-forge recipe likely needs to be updated as well https://github.com/conda-forge/jupyter_client-feedstock/blob/master/recipe/meta.yaml

Lothiraldan avatar Apr 07 '21 10:04 Lothiraldan

Yes, we are seeing the same issue with an app using qtconsole, as the Python 3.5 CI tests are failing with the same issue : https://github.com/mu-editor/mu/issues/1444

Personally I'd prefer if 3.5 was still supported, as is the default Python3 in Debian Stretch (eol is in July), but as this Python version is no longer supported it is still understandable if you'd drop it. Pip should still be able to automatically pick 6.1.12 with Python 3.5 once 6.1.13 is fixed or yanked.

carlosperate avatar Apr 07 '21 12:04 carlosperate

Thanks for reporting, the issue seems to be related to Python 3.5 not supporting type annotations, so we will drop it and support Python >= 3.6 from now on. I am taking care of marking the package as broken on conda-forge, but can someone who has management rights on PyPI yank v6.1.13, maybe @MSeal ?

davidbrochart avatar Apr 07 '21 13:04 davidbrochart

If the package requires >= 3.5:

https://github.com/jupyter/jupyter_client/blob/6.1.13/setup.py#L79

Why isn't that part of the test matrix?

https://github.com/jupyter/jupyter_client/blob/6.1.13/.github/workflows/main.yml#L41

mriedem avatar Apr 07 '21 15:04 mriedem

I know, there was something not clear about Python 3.5.

davidbrochart avatar Apr 07 '21 15:04 davidbrochart

I know, there was something not clear about Python 3.5.

Maybe not available with ubuntu_latest?

mriedem avatar Apr 07 '21 15:04 mriedem

I don't know, to be honest. Maybe we just forgot to test Python 3.5 in the CI.

davidbrochart avatar Apr 07 '21 15:04 davidbrochart

Hi all. I was about to file an issue and saw this thread. My issue is not related to Python 3.5 but is related to the latest release. Should I wait for now before creating another issue?

kai-tub avatar Apr 07 '21 16:04 kai-tub

Hi @kai-tub, please go ahead and file an issue.

davidbrochart avatar Apr 07 '21 16:04 davidbrochart

For those in user-space, downgrading to jupyter-client==6.0.0 should be fine while this gets sorted.

duhaime avatar Apr 09 '21 12:04 duhaime

6.1.12 should be fine as well.

carlosperate avatar Apr 09 '21 14:04 carlosperate

Yes, I would advise 3.5 clients to only downgrade to 6.1.12 as there is considerable functionality (used by downstream applications) present between 6.0.0 and 6.1.12. Release 6.1.13 has been yanked from PyPi and resolutions for the surfaced issues will be delivered in a 6.2.0 release that supports Python 3.6+. 3.5 clients would also be advised to pin to 6.1.x.

kevin-bates avatar Apr 09 '21 16:04 kevin-bates