NBFormat 5.0.1 Release

NBFormat 5.0.1 Release

We had a growing collection of small changes in nbformat that has not been released. The last release for 4.4.0 was on Aug 18, 2017! The biggest change is that the library is python 3.5+ only now, and that the notebook format had a minor version bump to 4.4 (backwards compatible to 4.3).

Also as a heads up the 5.0.0 release was the original release but there was a schema numbering issue causing it to claim the latest notebook format was 4.3 instead of 4.4. The 5.0.1 release has a fix and some tests to protect against this in the future. It’s recommended to not use 5.0.0 release as a result but it shouldn’t cause any major issues if you do by accident.


Here’s the full changelog from the milestone:

  • Starting with 5.0, nbformat is now Python 3 only (>= 3.5)
  • Add execution timings in code cell metadata for v4 spec. "metadata": { "execution": {...}} should be populated with kernel-specific timing information.
  • Documentation for how markup is used in notebooks added
  • Link to json schema docs from format page added
  • Documented the editable metadata flag
  • Update description for collapsed field
  • Documented nbformat versions 4.0-4.3 with accurate json schema specification files
  • Clarified info about :ref:name's meaning for cells
  • Added a default execution_count of None for new_output_cell(‘execute_result’)
  • Added support for handling nbjson kwargs
  • Wheels now correctly have a LICENSE file
  • Travis builds now have a few more execution environments

Jupyter Team


Neat, congratulations to the team and thanks for the release!

A quick question: the “execution” metadata entry seems to be missing from the key list in the docs. What is supposed to go there? How should the frontend treat it?

Good catch, I missed that in the PR review for that feature as it was only added the json schema and not the docs. I’ve added a PR which adds the missing docs: https://github.com/jupyter/nbformat/pull/159

The fields involved are the timestamps for messages being sent from the kernel to the frontend. They can be used to show the execution time by using iopub.status.idle - iopub.status.busy timestamps for example.

Also as a note, there was another pre-existing issue in nbformat that appeared as a result of the version moving. Version 5.0.3 has to bug fix applied and is recommended over the prior 5.0.x releases.