NBConvert 5.6.0 Release

NBConvert 5.6.0 Release

After a ton of great contributions and efforts both within nbconvert and in dependent libraries, we’ve finally gotten 5.6.0 out the door and available.

The following 24 authors and reviewers contributed 224 commits – Thank you all!

  • 00Kai0
  • Aidan Feldman
  • Alex Rudy
  • Alexander Kapshuna
  • Alexander Rudy
  • amniskin
  • Carol Willing
  • Dustin H
  • Hsiaoming Yang
  • imtsuki
  • Jessica B. Hamrick
  • KrokodileDandy
  • Kunal Marwaha
  • Matthew Seal
  • Matthias Geier
  • Miro Hrončok
  • M Pacer
  • Nils Japke
  • njapke
  • Sebastian Führ
  • Sylvain Corlay
  • Tyler Makaro
  • Valery M
  • Wayne Witzel

The full list of changes they made can be seen on GitHub

Significant Changes

Jupter Client Pin

The jupyter_client dependency is now pinned to >5.3.1. This is done
to support the Parallel NBConvert below,
and future versions may require interface changes from that version.

Parallel NBConvert

NBConvert --execute can now be run in parallel via threads,
multiprocessing, or async patterns! This means you can now parallelize
nbconvert via a bash loop, or a python concurrency pattern and it should
be able to execute those notebooks in parallel.

Kernels have varying support for safe concurrent execution. The ipython
kernel (ipykernel version 1.5.2 and higher) should be safe to run
concurrently using Python 3. However, the Python 2 ipykernel does not
always provide safe concurrent execution and sometimes fails with a
socket bind exception. Unlike ipykernel which is maintained by the
project, other community-maintained kernels may have varying support for
concurrent execution, and these kernels were not tested heavily.

Issues for nbconvert can be viewed here: :ghpull: 1018, and :ghpull: 1017

Execute Loop Rewrite

This release completely rewrote the execution loop responsible for
monitoring kernel messages until cell execution is completed. This
removes an error where kernel messages could be dropped if too many were
posted too quickly. Furthermore, the change means that messages are not
buffered. Now, messages can be logged immediately rather than waiting
for the cell to terminate.

See :ghpull: 994 for exact code changes if you’re curious.

Comprehensive notes

New Features

  • Make a default global location for custom user templates :ghpull: 1028
  • Parallel execution improvements :ghpull: 1018, and :ghpull: 1017
  • Added store_history option to preprocess_cell and run_cell
    :ghpull: 1055
  • Simplify the function signature for preprocess() :ghpull: 1042
  • Set flag to not always stop kernel execution on errors :ghpull: 1040
  • setup_preprocessor passes kwargs to start_new_kernel :ghpull:`

Fixing Problems

Testing, Docs, and Builds

7 Likes

Wahoo! :tada::tada::tada:

congrats everybody :slight_smile:

Thanks @MSeal for keeping this release moving forward. It’s been great to see @t-makaro so involved with the project too. :snake:

Great job everyone, I am excited to see what new patterns the parallelism opens up!

1 Like