Skip to content

Releases: mwouts/jupytext

Version 1.19.0.dev0

16 Nov 18:51
54a4b7d

Choose a tag to compare

Version 1.19.0.dev0 Pre-release
Pre-release

1.19.0.dev0 (2025-11-16)

Changes
The environment used to develop Jupytext is now maintained using Pixi (#1459)

Fixed

  • We have fixed the round trip tests and made them work with Quarto 1.8.25 (#1435)
  • We have fixed warnings about the cell ids like either Cell is missing an id field or Additional properties are not allowed ('id' was unexpected) when converting to some formats, including Pandoc (#1464)

Added
We have added a new py:marimo format, which uses the marimo command line interface to convert notebooks to and from the Marimo format (#1431)

Version 1.18.1

19 Oct 15:01
760013e

Choose a tag to compare

Fixed

  • Fixed test test_check_source_is_newer_when_using_jupytext_sync to work reliably on systems with low filesystem timestamp resolution (#1460)

Changed

  • We now use pixi to maintain the local Python environments used for developing and testing Jupytext.

Version 1.18.0

18 Oct 16:14

Choose a tag to compare

Added

  • The documentation has a chapter on the Jupytext Sync extension for VS Code (#1395)
  • We have added a new option --check-source-is-newer to the Jupytext CLI. Use this option if you want to make sure that the file passed as argument to Jupytext is the newest of all paired files, and/or newer than the destination file.
  • We have added a section on Jupyter Collaboration which also provides a very useful autoreload functionality (#406, #1401)
  • Pairing groups allow you to define different pairing configurations for specific subsets of notebooks. The formats configuration option now supports a list of format dictionaries for first-match pairing. Use [[formats]] sections in your TOML configuration to define multiple format specifications, where the first matching format is used. This allows applying different pairing rules to notebooks in different locations, such as generating documentation markdown files only for tutorial notebooks (#1383)
  • We have added more tests to document the complex pairing formats, which also work on Windows (#1028)
  • Pairing into nested folders was fixed on Windows (#1028)
  • Jupytext is now tested with Python 3.14 (#1456)

Fixed

  • The Jupytext CLI now detects if a file it has read or consulted has been modified while it was processing it. That can happen in the context of the Jupytext Sync extension for VS Code (#1411, vscode-jupytext-sync-#12). When such a synchronous modification is detected, Jupytext now raises an error. Many thanks to Anne Archibald for reporting the issue and preparing an inspiring PR (#1417).
  • We don't import notebook when jupyter_server is available (#1436)
  • Jupytext now supports more characters in the cell metadata keys, to improve compatibility with jupyterlab-slideshow (#1441). Thanks to Nicolas Thierry for this fix.
  • The function find_jupytext_configuration_file now works with relative directories (#1440). This fix was contributed by Thierry Parmentelat.
  • We have fixed a parsing error for R Markdown files (#1429)
  • We have fixed a parsing error when the first cell of the notebook contains a YAML header that is not a dict (#1444)

Changed

Version 1.18.0rc0

12 Oct 22:46
b39919e

Choose a tag to compare

Version 1.18.0rc0 Pre-release
Pre-release

Added

  • The documentation has a chapter on the Jupytext Sync extension for VS Code (#1395)
  • We have added a new option --check-source-is-newer to the Jupytext CLI. Use this option if you want to make sure that the file passed as argument to Jupytext is the newest of all paired files, and/or newer than the destination file.
  • We have added a section on Jupyter Collaboration which also provides a very useful autoreload functionality (#406, #1401)
  • Pairing groups allow you to define different pairing configurations for specific subsets of notebooks. The formats configuration option now supports a list of format dictionaries for first-match pairing. Use [[formats]] sections in your TOML configuration to define multiple format specifications, where the first matching format is used. This allows applying different pairing rules to notebooks in different locations, such as generating documentation markdown files only for tutorial notebooks (#1383)
  • We have added more tests do document the complex pairing formats, which also work on Windows (#1028)
  • Pairing into nested folders was fixed on Windows (#1028)
  • Jupytext is now tested with Python 3.14 (#1456)

Fixed

  • The Jupytext CLI now detects if a file it has read or consulted has been modified while it was processing it. That can happen in the context of the Jupytext Sync extension for VS Code (#1411, vscode-jupytext-sync-#12). When such a synchronous modification is detected, Jupytext now raises an error. Many thanks to Anne Archibald for reporting the issue and preparing an inspiring PR (#1417).
  • We don't import notebook when jupyter_server is available (#1436)
  • Jupytext now support more characters in the cell metadata keys, to improve compatibility with jupyterlab-slideshow (#1441). Thanks to Nicolas Thierry for this fix.
  • The function find_jupytext_configuration_file now works with relative directories (#1440). This fix was contributed by Thierry Parmentelat.
  • We have fixed a parsing error for R Markdown files (#1429)

Changed

Version 1.17.3

28 Aug 18:26

Choose a tag to compare

Added

  • All the extensions supported by Jupytext now appear in the --to paragraph of jupytext --help (#433)
  • We have added a new function get_formats_from_notebook_path that returns the list of paired
    formats for a given notebook (#1419)

Fixed

  • We have fixed jupytext --sync, and the contents manager, to make sure that a simple .py file (not in the percent format) will not be treated as a paired file when the Jupytext configuration file has formats="ipynb,py:percent" (#1418)
  • A notebook can be moved in Jupyter even if that makes it unpaired (#1414)
  • The test against jupyter-fs now installs its fs extra dependency (#1398)
  • The jupytext --sync command now works correctly with symbolic links. Thanks to mccullerlp for reporting (#1407) and addressing (#1408) the problem!
  • Jupytext will look for quarto.cmd on Windows. Thanks to mccullerlp for documenting the issue (#1406, #1409).
  • We have corrected the jupytext --paired-paths command: it will now take the Jupytext configuration file, if any, into account (#1419)

Version 1.17.2

01 Jun 21:28

Choose a tag to compare

Fixed

  • The --set-formats argument takes precedence over pre-existing pairing information in the notebook (#1386)

Changed

  • We have removed Python 3.8 from the list of supported Python version, and from the CI, as it has reached its EOL

Added

  • ROOT-flavored C++ notebooks can be paired to .cpp files - thanks to Steven Gardiner for this contribution (#1384)

Version 1.17.1

26 Apr 21:12

Choose a tag to compare

Fixed

  • Renaming files other than notebooks will not load their content (#1376)

Version 1.17.0

05 Apr 02:34

Choose a tag to compare

Added

  • The MyST frontmatter found in MyST Markdown notebooks can be mapped to a YAML header at the top of the Jupyter notebook. This way MyST notebooks in either the md:myst or ipynb format can be used with MyST. Thanks to Ian Carroll for proposing and implementing this change (#1314)
  • The context menu has a "New Text Notebook" entry. Thanks to Mahendra Paipuri for this PR (#1365)!

Changed

  • Jupytext's default contents manager is now derived from the asynchronous AsyncLargeFileManager. Thanks to Darshan Poudel for making this finally happen (#1328)!
  • The percent format is now the default format for scripts. If you run jupytext --to py notebook.ipynb you now get a py:percent script (use --to py:light for the light format) #1201
  • The rst2md conversion now works with sphinx-gallery>=0.8. Thanks to Thomas J. Fan for fixing this! (#1334)
  • We have updated the JupyterLab extension dependencies (#1300, #1355, #1360). Thanks to Mahendra Paipuri for these PRs!

Fixed

  • We have added and fixed round trip tests on MyST Markdown notebooks (#759, #789, #1267, #1317)
  • The --quiet option now works with the --pipe mode of Jupytext CLI (#1305)
  • Jupytext is now compatible with the cell toolbar extension - thanks to Nicolas Brichet for the fix! (#1358)
  • The project description on PyPI now uses absolute links (#1287)

Version 1.17.0rc2

26 Mar 21:42

Choose a tag to compare

Version 1.17.0rc2 Pre-release
Pre-release

Changed

  • Jupytext's default contents manager is now derived from the asynchronous AsyncLargeFileManager. Thanks to Darshan Poudel for making this finally happen (#1328)!
  • The MyST frontmatter found in MyST Markdown notebooks is now mapped to a YAML header at the top of the Jupyter notebook. This way MyST notebooks in either the md:myst or ipynb format can be used with MyST. Thanks to Ian Carroll for proposing and implementing this change (#1314)
  • The percent format is now the default format for scripts. If you run jupytext --to py notebook.ipynb you now get a py:percent script (use --to py:light for the light format) #1201
  • The rst2md conversion now works with sphinx-gallery>=0.8. Thanks to Thomas J. Fan for fixing this! (#1334)
  • We have updated the JupyterLab extension dependencies (#1300, #1355, #1360). Thanks to Mahendra Paipuri for these PRs!

Added

Fixed

  • We have added and fixed round trip tests on MyST Markdown notebooks (#759, #789, #1267, #1317)
  • The --quiet option now works with the --pipe mode of Jupytext CLI (#1305)
  • Jupytext is now compatible with the cell toolbar extension - thanks to Nicolas Brichet for the fix! (#1358)
  • The project description on PyPI now uses absolute links (#1287)

Version 1.17.0rc1

22 Mar 19:02

Choose a tag to compare

Version 1.17.0rc1 Pre-release
Pre-release

Changed

  • Jupytext's default contents manager is now derived from the asynchronous AsyncLargeFileManager. Thanks to Darshan Poudel for making this finally happen (#1328)!
  • The MyST frontmatter found in MyST Markdown notebooks is now mapped to a YAML header at the top of the Jupyter notebook. This way MyST notebooks in either the md:myst or ipynb format can be used with MyST. Thanks to Ian Carroll for proposing and implementing this change (#1314)
  • The percent format is now the default format for scripts. If you run jupytext --to py notebook.ipynb you now get a py:percent script (use --to py:light for the light format) #1201
  • The rst2md conversion now works with sphinx-gallery>=0.8. Thanks to Thomas J. Fan for fixing this! (#1334)
  • We have updated the JupyterLab extension dependencies (#1300, #1355, #1360). Thanks to Mahendra Paipuri for these PRs!

Added

Fixed

  • We have added and fixed round trip tests on MyST Markdown notebooks (#759, #789, #1267, #1317)
  • The --quiet option now works with the --pipe mode of Jupytext CLI (#1305)
  • Jupytext is now compatible with the cell toolbar extension - thanks to Nicolas Brichet for the fix! (#1358)
  • The project description on PyPI now uses absolute links (#1287)