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. -
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
- Implementation of the debugger #597 (@JohanMabille)
Enhancements made
- Make the
isatty
method ofOutStream
returntrue
#683 (@peendebak) - Allow setting cell name #652 (@davidbrochart)
- Try to capture all file descriptor output and err #630 (@Carreau)
- Implemented
inspectVariables
request #624 (@JohanMabille) - Specify
ipykernel
in kernelspec #616 (@SylvainCorlay) - Use
matplotlib-inline
#591 (@martinRenou) - Run control channel in separate thread #585 (@SylvainCorlay)
Bugs fixed
- Remove references to deprecated
ipyparallel
#695 (@minrk) - Return len of item written to
OutStream
#685 (@Carreau) - Call metadata methods on abort replies #684 (@minrk)
- Fix keyboard interrupt issue in
dispatch_shell
#673 (@marcoamonteiro) - Update
Trio
mode for compatibility withTrio >= 0.18.0
#627 (@mehaase) - Follow up
DeprecationWarning
Fix #617 (@afshin) - Flush control stream upon shutdown #611 (@SylvainCorlay)
- Fix Handling of
shell.should_run_async
#605 (@afshin) - Deacrease lag time for eventloop #573 (@impact27)
- Fix "Socket operation on nonsocket" in downstream
nbclient
test. #641 (@SylvainCorlay) - Stop control thread before closing sockets on it #659 (@minrk)
- Fix debugging with native coroutines #651 (@SylvainCorlay)
- Fixup master build #649 (@SylvainCorlay)
- Fix parent header retrieval #639 (@davidbrochart)
- Add missing self #636 (@Carreau)
- Backwards compat with older versions of zmq #665 (@mlucool)
Maintenance and upkeep improvements
- Remove pin on Jedi because that was already fixed in IPython #692 (@ccordoba12)
- Remove deprecated source parameter since 4.0.1 (2015) #690 (@Carreau)
- Remove deprecated
SocketABC
since 4.5.0 #689 (@Carreau) - Remove deprecated profile options of
connect.py
#688 (@Carreau) - Remove
ipykernel.codeutil
deprecated since IPykernel 4.3.1 (Feb 2016) #687 (@Carreau) - Keep preferring
SelectorEventLoop
on Windows #669 (@minrk) - Add
Kernel.get_parent
to matchset_parent
#661 (@minrk) - Flush control queue prior to handling shell messages #658 (@minrk)
- Add
Kernel.get_parent_header
#657 (@minrk) - Build docs only on Ubuntu: add jobs to check docstring formatting. #644 (@Carreau)
- Make deprecated
shell_streams
writable #638 (@minrk) - Use channel
get_msg
helper method #634 (@davidbrochart) - Use native coroutines instead of tornado coroutines #632 (@SylvainCorlay)
- Make less use of
ipython_genutils
#631 (@SylvainCorlay) - Run GitHub Actions on all branches #625 (@afshin)
- Move Python-specific bits to ipkernel #610 (@SylvainCorlay)
- Update Python Requirement to 3.7 #608 (@afshin)
- Replace import item from
ipython_genutils
to traitlets. #601 (@Carreau) - Some removal of
ipython_genutils.py3compat
. #600 (@Carreau) - Fixup
get_parent_header
call #662 (@SylvainCorlay) - Update of
ZMQInteractiveshell
. #643 (@Carreau) - Removed filtering of stack frames for testing #633 (@JohanMabille)
- Added 'type' field to variables returned by
inspectVariables
request #628 (@JohanMabille) - Changed default timeout to 0.0 seconds for
stop_on_error_timeout
#618 (@MSeal) - Attempt longer timeout #615 (@SylvainCorlay)
- Clean up release process and add tests #596 (@afshin)
- Kernelspec: ensure path is writable before writing
kernel.json
. #593 (@jellelicht) - Add
configure_inline_support
and call it in the shell #590 (@martinRenou)
Documentation improvements
- Misc Updates to changelog for 6.0 #686 (@Carreau)
- Add 5.5.x Changelog entries #672 (@blink1073)
- Build docs only on ubuntu: add jobs to check docstring formatting. #644 (@Carreau)
- DOC: Autoreformat all docstrings. #642 (@Carreau)
- Bump Python to 3.8 in
readthedocs.yml
#612 (@minrk) - Fix typo #663 (@SylvainCorlay)
- Add release note to 5.5.0 about
stop_on_error_timeout
#613 (@glentakahashi) - Move changelog to standard location #604 (@afshin)
- Add changelog for 5.5 #594 (@blink1073)
- Change to markdown for changelog #595 (@afshin)
Deprecations in 6.0
Kernel
s 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. UseKernel.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 fromipyparallel
- remove
find_connection_file
andprofile
argument ofconnect_qtconsole
andget_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