diff --git a/docs/source/whatsnew/version9.rst b/docs/source/whatsnew/version9.rst index 879e381ee9..bdb18ae6d4 100644 --- a/docs/source/whatsnew/version9.rst +++ b/docs/source/whatsnew/version9.rst @@ -2,6 +2,75 @@ 9.x Series ============ +.. _version 9.11: + +IPython 9.11 +============ + +This release includes a new shell error-handling config option, a reproducible +banner for builds, history thread management improvements, autoreload encoding +fixes, Python 3.11 deprecation notices, and various type annotation improvements. + +- :ghpull:`15073` Add ``system_raise_on_error`` config option for ``!`` shell operator +- :ghpull:`15121` Start dropping Python 3.11 +- :ghpull:`15122` Fix encoding to utf8 for autoreload +- :ghpull:`15130` Stricter config + add typing to ``IPython/core/magic.py`` +- :ghpull:`15133` Inline and remove only usage of ``on_off`` +- :ghpull:`15144` Have a static banner when setting ``SOURCE_DATE_EPOCH`` + +In addition there are many type annotations that have been added by using Generative AI (Clause Sonnet and Opus from +Anthropicl; GitHub Copilot) + + + +New ``system_raise_on_error`` Config Option +-------------------------------------------- + +A new ``system_raise_on_error`` Bool traitlet configuration option (default: +``False``) has been added. When set to ``True``, shell commands executed via +the ``!`` operator will raise :exc:`subprocess.CalledProcessError` if they +return a non-zero exit status. This makes it easier to write robust IPython +scripts that need to detect shell command failures:: + + %config InteractiveShell.system_raise_on_error = True + ! false # will now raise CalledProcessError + + +Reproducible Banner +-------------------- + +When the ``SOURCE_DATE_EPOCH`` environment variable is set, IPython now +produces a static, reproducible banner. This +helps with reproducible builds and packaging workflows that may capture this state +(related to +`jupyterlab/jupyterlab#18552 `_). + + +Python 3.11 Deprecation +------------------------ + +IPython has begun the process of dropping support for Python 3.11. Users +still running Python 3.11 should plan to upgrade to a supported Python +version. + + +Autoreload Encoding Fix +------------------------ + +The autoreload extension now explicitly sets UTF-8 as the default encoding +when reading source files. Previously, the platform default encoding was +used, which could cause failures on systems where the default encoding is +not UTF-8. + +Thanks +------ + +Thanks as well to the `D. E. Shaw group `_ for sponsoring +work on IPython. + +As usual, you can find the full list of PRs on GitHub under `the 9.11 +`__ milestone. + .. _version 9.10: