Skip to content

Latest commit

 

History

History
268 lines (186 loc) · 8.58 KB

changelog.rst

File metadata and controls

268 lines (186 loc) · 8.58 KB

Changes in Jupyter Client

5.3.2

  • Important files creation now checks umask permissions (469).

5.3.1

  • Fix bug with control channel socket introduced in 5.3.0 (456).

5.3.0

5.3.0 on GitHub

New Features:

  • Multiprocessing and Threading support (437) and (450)
  • Setup package long_description (411)

Changes:

  • Control channel now in the public API (447)
  • Closing Jupyter Client is now faster (420)
  • Pip support improvements (421)

Breaking changes:

  • Dropped support for Python 3.3 and 3.4 (upstream packages dropped support already)

5.2.4

5.2.4 on GitHub

  • Prevent creating new console windows on Windows (346)
  • Fix interrupts on Python 3.7 on Windows (408)

5.2.3

5.2.3 on GitHub

  • Fix hang on close in .ThreadedKernelClient (used in QtConsole) when using tornado with asyncio (default behavior of tornado 5, see 352).
  • Fix errors when using deprecated .KernelManager.kernel_cmd (343, 344).

5.2.2

5.2.2 on GitHub

  • Fix .KernelSpecManager.get_all_specs method in subclasses that only override .KernelSpecManager.find_kernel_specs and .KernelSpecManager.get_kernel_spec. See 338 and 339.
  • Eliminate occasional error messages during process exit (336).
  • Improve error message when attempting to bind on invalid address (330).
  • Add missing direct dependency on tornado (323).

5.2.1

5.2.1 on GitHub

  • Add parenthesis to conditional pytest requirement to work around a bug in the wheel package, that generate a .whl which otherwise always depends on pytest see 324 and 325.

5.2

5.2 on GitHub

  • Define Jupyter protocol version 5.3:
    • Kernels can now opt to be interrupted by a message sent on the control channel instead of a system signal. See kernelspecs and msging_interrupt (294).
  • New jupyter kernel command to launch an installed kernel by name (240).
  • Kernelspecs where the command starts with e.g. python3 or python3.6—matching the version jupyter_client is running on—are now launched with the same Python executable as the launching process (306). This extends the special handling of python added in 5.0.
  • Command line arguments specified by a kernelspec can now include {resource_dir}, which will be substituted with the kernelspec resource directory path when the kernel is launched (289).
  • Kernelspecs now have an optional metadata field to hold arbitrary metadata about kernels—see kernelspecs (274).
  • Make the KernelRestarter class used by a KernelManager configurable (290).
  • When killing a kernel on Unix, kill its process group (314).
  • If a kernel dies soon after starting, reassign random ports before restarting it, in case one of the previously chosen ports has been bound by another process (279).
  • Avoid unnecessary filesystem operations when finding a kernelspec with .KernelSpecManager.get_kernel_spec (311).
  • .KernelSpecManager.get_all_specs will no longer raise an exception on encountering an invalid kernel.json file. It will raise a warning and continue (310).
  • Check for non-contiguous buffers before trying to send them through ZMQ (258).
  • Compatibility with upcoming Tornado version 5.0 (304).
  • Simplify setup code by always using setuptools (284).
  • Soften warnings when setting the sticky bit on runtime files fails (286).
  • Various corrections and improvements to documentation.

5.1

5.1 on GitHub

  • Define Jupyter protocol version 5.2, resolving ambiguity of cursor_pos field in the presence of unicode surrogate pairs.

    cursor_pos_unicode_note

  • Add Session.clone for making a copy of a Session object without sharing the digest history. Reusing a single Session object to connect multiple sockets to the same IOPub peer can cause digest collisions.
  • Avoid global references preventing garbage collection of background threads.

5.0

5.0.1

5.0.1 on GitHub

  • Update internal protocol version number to 5.1, which should have been done in 5.0.0.

5.0.0

5.0.0 on GitHub

New features:

  • Implement Jupyter protocol version 5.1.
  • Introduce jupyter run command for running scripts with a kernel, for instance:

    jupyter run --kernel python3 myscript.py
  • New method .BlockingKernelClient.execute_interactive for running code and capturing or redisplaying its output.
  • New KernelManager.shutdown_wait_time configurable for adjusting the time for a kernel manager to wait after politely requesting shutdown before it resorts to forceful termination.

Fixes:

  • Set sticky bit on connection-file directory to avoid getting cleaned up.
  • jupyter_client.launcher.launch_kernel passes through additional options to the underlying Popen, matching KernelManager.start_kernel.
  • Check types of buffers argument in .Session.send, so that TypeErrors are raised immediately, rather than in the eventloop.

Changes:

  • In kernelspecs, if the executable is the string python (as opposed to an absolute path), sys.executable will be used rather than resolving python on PATH. This should enable Python-based kernels to install kernelspecs as part of wheels.
  • kernelspec names are now validated. They should only include ascii letters and numbers, plus period, hyphen, and underscore.

Backward-incompatible changes:

  • :py.datetime objects returned in parsed messages are now always timezone-aware. Timestamps in messages without timezone info are interpreted as the local timezone, as this was the behavior in earlier versions.

4.4

4.4.0

4.4 on GitHub

  • Add .KernelClient.load_connection_info on KernelClient, etc. for loading connection info directly from a dict, not just from files.
  • Include parent headers when adapting messages from older protocol implementations (treats parent headers the same as headers).
  • Compatibility fixes in tests for recent changes in ipykernel.

4.3

4.3.0

4.3 on GitHub

  • Adds --sys-prefix argument to jupyter kernelspec install, for better symmetry with jupyter nbextension install, etc.

4.2

4.2.2

4.2.2 on GitHub

  • Another fix for the start_new_kernel issue in 4.2.1 affecting slow-starting kernels.

4.2.1

4.2.1 on GitHub

  • Fix regression in 4.2 causing start_new_kernel to fail while waiting for kernels to become available.

4.2.0

4.2.0 on GitHub

  • added jupyter kernelspec remove for removing kernelspecs
  • allow specifying the environment for kernel processes via the env argument
  • added name field to connection files identifying the kernelspec name, so that consumers of connection files (alternate frontends) can identify the kernelspec in use
  • added KernelSpecManager.get_all_specs for getting all kernelspecs more efficiently
  • various improvements to error messages and documentation

4.1

4.1.0

4.1.0 on GitHub

Highlights:

  • Setuptools fixes for jupyter kernelspec
  • jupyter kernelspec list includes paths
  • add KernelManager.blocking_client
  • provisional implementation of comm_info requests from upcoming 5.1 release of the protocol

4.0

The first release of Jupyter Client as its own package.