Skip to content

Latest commit

 

History

History
940 lines (614 loc) · 54.6 KB

CHANGELOG.md

File metadata and controls

940 lines (614 loc) · 54.6 KB

Changes in IPython kernel

6.9.2

(Full Changelog)

Bugs fixed

  • Catch error when shutting down kernel from the control channel #877 (@ccordoba12)
  • Only kill children in process group at shutdown #874 (@minrk)
  • BUG: Kill subprocesses on shutdown. #869 (@Carreau)

Maintenance and upkeep improvements

Contributors to this release

(GitHub contributors page for this release)

@blink1073 | @Carreau | @ccordoba12 | @echarles | @fabioz | @minrk | @vidartf

6.9.1

(Full Changelog)

Bugs fixed

Contributors to this release

(GitHub contributors page for this release)

@blink1073 | @echarles | @minrk

6.9.0

(Full Changelog)

Bugs fixed

Contributors to this release

(GitHub contributors page for this release)

@blink1073 | @JohanMabille | @minrk

6.8.0

(Full Changelog)

Enhancements made

Bugs fixed

Maintenance and upkeep improvements

Contributors to this release

(GitHub contributors page for this release)

@blink1073 | @echarles | @JohanMabille

6.7.0

(Full Changelog)

Enhancements made

  • Add usage_request and usage_reply based on psutil #805 (@echarles)

Bugs fixed

Maintenance and upkeep improvements

Contributors to this release

(GitHub contributors page for this release)

@Carreau | @echarles | @fcollonval | @JohanMabille | @kycutler

6.6.1

(Full Changelog)

Bugs fixed

Maintenance and upkeep improvements

Documentation improvements

Contributors to this release

(GitHub contributors page for this release)

@blink1073 | @ccordoba12 | @fcollonval | @impact27 | @ivanov | @penguinolog

6.6.0

(Full Changelog)

Enhancements made

  • Set debugOptions for breakpoints in python standard library source #812 (@echarles)
  • Send omit_sections to IPython to choose which sections of documentation you do not want #809 (@fasiha)

Bugs fixed

Maintenance and upkeep improvements

Contributors to this release

(GitHub contributors page for this release)

@blink1073 | @dlukes | @echarles | @fasiha | @JohanMabille | @Kojoley

6.5.1

(Full Changelog)

Bugs fixed

Maintenance and upkeep improvements

Contributors to this release

(GitHub contributors page for this release)

@blink1073 | @Carreau | @eastonsuo

6.5.0

(Full Changelog)

Bugs fixed

Maintenance and upkeep improvements

Contributors to this release

(GitHub contributors page for this release)

@ccordoba12 | @fcollonval | @penguinolog | @stukowski

6.4.2

(Full Changelog)

Enhancements made

Bugs fixed

  • Remove setting of the eventloop function in the InProcessKernel #781 (@rayosborn)

Maintenance and upkeep improvements

Contributors to this release

(GitHub contributors page for this release)

@emuccino | @JohanMabille | @rayosborn

6.4.1

(Full Changelog)

Merged PRs

  • debugpy is now a build requirement #773 (@minrk)

Contributors to this release

(GitHub contributors page for this release)

@minrk

6.4.0

(Full Changelog)

Enhancements made

Bugs fixed

Maintenance and upkeep improvements

  • Make ipykernel work without debugpy #767 (@frenzymadness)
  • Stop using deprecated recv_multipart when using in-process socket. #762 (@Carreau)
  • Update some warnings with instructions and version number. #761 (@Carreau)

Contributors to this release

(GitHub contributors page for this release)

@Carreau | @frenzymadness | @martinRenou | @minrk

6.3

6.3.1

(Full Changelog)

Merged PRs

Contributors to this release

(GitHub contributors page for this release)

@Carreau

6.3.0

(Full Changelog)

Enhancements made

Maintenance and upkeep improvements

Contributors to this release

(GitHub contributors page for this release)

@afshin | @blink1073 | @Carreau | @ccordoba12 | @davidbrochart | @JohanMabille | @kevin-bates | @minrk | @SylvainCorlay

6.2

6.2.0

Enhancements made

  • Add Support for Message Based Interrupt #741 (@afshin)

Maintenance and upkeep improvements

6.1

6.1.0

Enhancements made

Maintenance and upkeep improvements

  • Bump importlib-metadata limit for python<3.8 #738 (@ltalirz)

Bug Fixes

6.0

6.0.3

  • KernelApp: rename ports variable to avoid override #731 (@amorenoz)

6.0.2

Bugs fixed

Maintenance and upkeep improvements

6.0.1

6.0.0

(Full Changelog)

IPykernel 6.0 is the first major release in about two years, that brings a number of improvements, code cleanup, and new features to IPython.

You should be able to view all closed issues and merged Pull Request for this milestone on GitHub, as for any major releases, we advise greater care when updating that for minor release and welcome any feedback (~50 Pull-requests).

IPykernel 6 should contain all changes of the 5.x series, in addition to the following non-exhaustive changes.

  • Support for the debugger protocol, when using JupyterLab, RetroLab or any frontend supporting the debugger protocol you should have access to the debugger functionalities.

  • The control channel on IPykernel 6.0 is run in a separate thread, this may change the order in which messages are processed, though this change was necessary to accommodate the debugger.

  • We now have a new dependency: matplotlib-inline, this helps to separate the circular dependency between IPython/IPykernel and matplotlib.

  • On POSIX systems, all outputs to stdout/stderr should now be captured, including subprocesses and output of compiled libraries (blas, lapack....). In notebook server, some outputs that would previously go to the notebooks logs will now both head to notebook logs and in notebooks outputs. In terminal frontend like Jupyter Console, Emacs or other, this may ends up as duplicated outputs.

  • coroutines are now native (async-def) , instead of using tornado's @gen.coroutine

  • OutStreams can now be configured to report istty() == True, while this should make some output nicer (for example colored), it is likely to break others. Use with care.

New features added

Enhancements made

Bugs fixed

Maintenance and upkeep improvements

Documentation improvements

Deprecations in 6.0

  • Kernels now support only a single shell stream, multiple streams will now be ignored. The attribute Kernel.shell_streams (plural) is deprecated in ipykernel 6.0. Use Kernel.shell_stream (singular)
  • Kernel._parent_header is deprecated, even though it was private. Use .get_parent() now.

Removal in 6.0

  • ipykernel.codeutils was deprecated since 4.x series (2016) and has been removed, please import similar functionalities from ipyparallel
  • remove find_connection_file and profile argument of connect_qtconsole and get_connection_info, deprecated since IPykernel 4.2.2 (2016).

Contributors to this release

(GitHub contributors page for this release)

@afshin | @blink1073 | @Carreau | @ccordoba12 | @davidbrochart | @dsblank | @glentakahashi | @impact27 | @ivanov | @jellelicht | @jkablan | @JohanMabille | @kevin-bates | @marcoamonteiro | @martinRenou | @mehaase | @minrk | @mlucool | @MSeal | @peendebak | @SylvainCorlay | @tacaswell

5.5

5.5.5

  • Keep preferring SelectorEventLoop on Windows. #669

5.5.4

  • Import configure_inline_support from matplotlib_inline if available #654

5.5.3

  • Revert Backport of #605: Fix Handling of shell.should_run_async #622

5.5.2

Note: This release was deleted from PyPI since it had breaking changes.

  • Changed default timeout to 0.0 seconds for stop_on_error_timeout. #618

5.5.1

Note: This release was deleted from PyPI since it had breaking changes.

  • Fix Handling of shell.should_run_async. #605

5.5.0

  • kernelspec: ensure path is writable before writing kernel.json. #593
  • Add configure_inline_support and call it in the shell. #590
  • Fix stop_on_error_timeout to now properly abort execute_request's that fall within the timeout after an error. #572

5.4

5.4.3

  • Rework wait_for_ready logic. #578

5.4.2

  • Revert "Fix stop_on_error_timeout blocking other messages in queue". #570

5.4.1

  • Invalid syntax in ipykernel/log.py. #567

5.4.0

5.4.0 is generally focused on code quality improvements and tornado asyncio compatibility.

  • Add github actions, bail on asyncio patch for tornado 6.1. #564
  • Start testing on Python 3.9. #551
  • Fix stack levels for ipykernel's deprecation warnings and stop using some deprecated APIs. #547
  • Add env parameter to kernel installation #541
  • Fix stop_on_error_timeout blocking other messages in queue. #539
  • Remove most of the python 2 compat code. #537
  • Remove u-prefix from strings. #538

5.3

5.3.4

  • Only run Qt eventloop in the shell stream. #531

5.3.3

  • Fix QSocketNotifier in the Qt event loop not being disabled for the control channel. #525

5.3.2

  • Restore timer based event loop as a Windows-compatible fallback. #523

5.3.1

  • Fix #520: run post_execute and post_run_cell on async cells #521
  • Fix exception causes in zmqshell.py #516
  • Make pdb on Windows interruptible #490

5.3.0

5.3.0 Adds support for Trio event loops and has some bug fixes.

  • Fix ipython display imports #509
  • Skip test_unc_paths if OS is not Windows #507
  • Allow interrupting input() on Windows, as part of effort to make pdb interruptible #498
  • Add Trio Loop #479
  • Flush from process even without newline #478

5.2

5.2.1

  • Handle system commands that use UNC paths on Windows #500
  • Add offset argument to seek in io test #496

5.2.0

5.2.0 Includes several bugfixes and internal logic improvements.

  • Produce better traceback when kernel is interrupted #491
  • Add InProcessKernelClient.control_channel for compatibility with jupyter-client v6.0.0 #489
  • Drop support for Python 3.4 #483
  • Work around issue related to Tornado with python3.8 on Windows (#480, #481)
  • Prevent entering event loop if it is None #464
  • Use shell.input_transformer_manager when available #411

5.1

5.1.4

5.1.4 Includes a few bugfixes, especially for compatibility with Python 3.8 on Windows.

  • Fix pickle issues when using inline matplotlib backend #476
  • Fix an error during kernel shutdown #463
  • Fix compatibility issues with Python 3.8 (#456, #461)
  • Remove some dead code (#474, #467)

5.1.3

5.1.3 Includes several bugfixes and internal logic improvements.

  • Fix comm shutdown behavior by adding a deleting option to close which can be set to prevent registering new comm channels during shutdown (#433, #435)
  • Fix Heartbeat._bind_socket to return on the first bind (#431)
  • Moved InProcessKernelClient.flush to DummySocket (#437)
  • Don't redirect stdout if nose machinery is not present (#427)
  • Rename _asyncio.py to _asyncio_utils.py to avoid name conflicts on Python 3.6+ (#426)
  • Only generate kernelspec when installing or building wheel (#425)
  • Fix priority ordering of control-channel messages in some cases #443

5.1.2

5.1.2 fixes some socket-binding race conditions that caused testing failures in nbconvert.

  • Fix socket-binding race conditions (#412, #419)
  • Add a no-op flush method to DummySocket and comply with stream API (#405)
  • Update kernel version to indicate kernel v5.3 support (#394)
  • Add testing for upcoming Python 3.8 and PEP 570 positional parameters (#396, #408)

5.1.1

5.1.1 fixes a bug that caused cells to get stuck in a busy state.

  • Flush after sending replies #390

5.1.0

5.1.0 fixes some important regressions in 5.0, especially on Windows.

5.1.0 on GitHub

  • Fix message-ordering bug that could result in out-of-order executions, especially on Windows #356
  • Fix classifiers to indicate dropped Python 2 support #354
  • Remove some dead code #355
  • Support rich-media responses in inspect_requests (tooltips) #361

5.0

5.0.0

5.0.0 on GitHub

  • Drop support for Python 2. ipykernel 5.0 requires Python >= 3.4
  • Add support for IPython's asynchronous code execution #323
  • Update release process in CONTRIBUTING.md #339

4.10

4.10 on GitHub

  • Fix compatibility with IPython 7.0 #348
  • Fix compatibility in cases where sys.stdout can be None #344

4.9

4.9.0

4.9.0 on GitHub

  • Python 3.3 is no longer supported #336
  • Flush stdout/stderr in KernelApp before replacing #314
  • Allow preserving stdout and stderr in KernelApp #315
  • Override writable method on OutStream #316
  • Add metadata to help display matplotlib figures legibly #336

4.8

4.8.2

4.8.2 on GitHub

  • Fix compatibility issue with qt eventloop and pyzmq 17 #307.

4.8.1

4.8.1 on GitHub

  • set zmq.ROUTER_HANDOVER socket option when available to workaround libzmq reconnect bug #300.
  • Fix sdists including absolute paths for kernelspec files, which prevented installation from sdist on Windows #306.

4.8.0

4.8.0 on GitHub

  • Cleanly shutdown integrated event loops when shutting down the kernel. #290
  • %gui qt now uses Qt 5 by default rather than Qt 4, following a similar change in terminal IPython. #293
  • Fix event loop integration for asyncio when run with Tornado 5, which uses asyncio where available. #296

4.7

4.7.0

4.7.0 on GitHub

  • Add event loop integration for asyncio.
  • Use the new IPython completer API.
  • Add support for displaying GIF images (mimetype image/gif).
  • Allow the kernel to be interrupted without killing the Qt console.
  • Fix is_complete response with cell magics.
  • Clean up encoding of bytes objects.
  • Clean up help links to use https and improve display titles.
  • Clean up ioloop handling in preparation for tornado 5.

4.6

4.6.1

4.6.1 on GitHub

  • Fix eventloop-integration bug preventing Qt windows/widgets from displaying with ipykernel 4.6.0 and IPython ≥ 5.2.
  • Avoid deprecation warnings about naive datetimes when working with jupyter_client ≥ 5.0.

4.6.0

4.6.0 on GitHub

  • Add to API DisplayPublisher.publish two new fully backward-compatible keyword-args:

    • update: bool
    • transient: dict
  • Support new transient key in display_data messages spec for publish. For a display data message, transient contains data that shouldn't be persisted to files or documents. Add a display_id to this transient dict by display(obj, display_id=\...)

  • Add ipykernel_launcher module which removes the current working directory from sys.path before launching the kernel. This helps to reduce the cases where the kernel won't start because there's a random.py (or similar) module in the current working directory.

  • Add busy/idle messages on IOPub during processing of aborted requests

  • Add active event loop setting to GUI, which enables the correct response to IPython's is_event_loop_running_xxx

  • Include IPython kernelspec in wheels to reduce reliance on "native kernel spec" in jupyter_client

  • Modify OutStream to inherit from TextIOBase instead of object to improve API support and error reporting

  • Fix IPython kernel death messages at start, such as "Kernel Restarting..." and "Kernel appears to have died", when parent-poller handles PID 1

  • Various bugfixes

4.5

4.5.2

4.5.2 on GitHub

  • Fix bug when instantiating Comms outside of the IPython kernel (introduced in 4.5.1).

4.5.1

4.5.1 on GitHub

  • Add missing stream parameter to overridden getpass
  • Remove locks from iopub thread, which could cause deadlocks during debugging
  • Fix regression where KeyboardInterrupt was treated as an aborted request, rather than an error
  • Allow instantiating Comms outside of the IPython kernel

4.5.0

4.5 on GitHub

  • Use figure.dpi instead of savefig.dpi to set DPI for inline figures
  • Support ipympl matplotlib backend (requires IPython update as well to fully work)
  • Various bugfixes, including fixes for output coming from threads, and input when called with non-string prompts, which stdlib allows.

4.4

4.4.1

4.4.1 on GitHub

  • Fix circular import of matplotlib on Python 2 caused by the inline backend changes in 4.4.0.

4.4.0

4.4.0 on GitHub

  • Use MPLBACKEND environment variable to tell matplotlib >= 1.5 use use the inline backend by default. This is only done if MPLBACKEND is not already set and no backend has been explicitly loaded, so setting MPLBACKEND=Qt4Agg or calling %matplotlib notebook or matplotlib.use('Agg') will take precedence.
  • Fixes for logging problems caused by 4.3, where logging could go to the terminal instead of the notebook.
  • Add --sys-prefix and --profile arguments to ipython kernel install.
  • Allow Comm (Widget) messages to be sent from background threads.
  • Select inline matplotlib backend by default if %matplotlib magic or matplotlib.use() are not called explicitly (for matplotlib >= 1.5).
  • Fix some longstanding minor deviations from the message protocol (missing status: ok in a few replies, connect_reply format).
  • Remove calls to NoOpContext from IPython, deprecated in 5.0.

4.3

4.3.2

  • Use a nonempty dummy session key for inprocess kernels to avoid security warnings.

4.3.1

  • Fix Windows Python 3.5 incompatibility caused by faulthandler patch in 4.3

4.3.0

4.3.0 on GitHub

  • Publish all IO in a thread, via IOPubThread. This solves the problem of requiring sys.stdout.flush to be called in the notebook to produce output promptly during long-running cells.

  • Remove references to outdated IPython guiref in kernel banner.

  • Patch faulthandler to use sys.__stderr__ instead of forwarded sys.stderr, which has no fileno when forwarded.

  • Deprecate some vestiges of the Big Split:

    • ipykernel.find_connection_file is deprecated. Use jupyter_client.find_connection_file instead.

    - Various pieces of code specific to IPython parallel are deprecated in ipykernel and moved to ipyparallel.

4.2

4.2.2

4.2.2 on GitHub

  • Don't show interactive debugging info when kernel crashes
  • Fix handling of numerical types in json_clean
  • Testing fixes for output capturing

4.2.1

4.2.1 on GitHub

  • Fix default display name back to "Python X" instead of "pythonX"

4.2.0

4.2 on GitHub

  • Support sending a full message in initial opening of comms (metadata, buffers were not previously allowed)
  • When using ipython kernel install --name to install the IPython kernelspec, default display-name to the same value as --name.

4.1

4.1.1

4.1.1 on GitHub

  • Fix missing ipykernel.__version__ on Python 2.
  • Fix missing target_name when opening comms from the frontend.

4.1.0

4.1 on GitHub

  • add ipython kernel install entrypoint for installing the IPython kernelspec
  • provisional implementation of comm_info request/reply for msgspec v5.1

4.0

4.0 on GitHub

4.0 is the first release of ipykernel as a standalone package.