Releases: ipython/ipykernel
v7.1.0
7.1.0
IPykernel 7.1.0 fixes an issue where display outputs such as Matplotlib plots were not included when using %notebook magic to save sessions as .ipynb files (#1435). This is enabled using the traitlet ZMQDisplayPublisher.store_display_history which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.
Output from threads is restored to the pre-6.29 behavior by default (route to latest cell, unless get_ipython().set_parent() is called explicitly from the thread. If it is called, output from that thread will continue to be routed to the same cell). This behavior is now opt-in, instead of unconditional (#1451).
This release also fixes bugs that were introduced into the 7.x branch relating to Matplotlib plots in separate windows not being displayed correctly (#1458), kernels launched in new threads failing asserts (#1455), and ContextVars persisting between cells (#1462). There is also a fix for keyboard interrupts on Windows (#1434).
Enhancements made
- Store display outputs in history for
%notebookmagic #1435 (@Darshan808)
Bugs fixed
- fix ContextVar persistence across cells #1462 (@minrk)
- Fix matplotlib eventloops #1458 (@ianthomas23)
- Refer to kernel launching thread instead of assuming the main thread #1455 (@dfalbel)
- Fix routing of background thread output when no parent is set explicitly #1451 (@minrk)
- Fix KeyboardInterrupt on Windows by manually resetting interrupt event #1434 (@ptosco)
Maintenance and upkeep improvements
- update pre-commit and related #1465 (@Carreau)
- test that matplotlib event loop integration is responsive #1463 (@minrk)
- update tests for 3.14 #1453 (@minrk)
Contributors to this release
(GitHub contributors page for this release)
@Carreau | @Darshan808 | @dfalbel | @ianthomas23 | @krassowski | @lumberbot-app | @minrk | @ptosco
v6.31.0
6.31.0
IPykernel 6.31.0 fixes an issue where display outputs such as Matplotlib plots were not included when using %notebook magic to save sessions as .ipynb files. This is enabled using the traitlet ZMQDisplayPublisher.store_display_history which defaults to the previous behaviour of False. This is a minor release rather than a patch release due to the addition of the new traitlet.
Enhancements made
- Backport PR #1435: Store display outputs in history for
%notebookmagic #1461 (@Darshan808)
Maintenance and upkeep improvements
- Backport PR #1453: update tests for 3.14 #1460 (@minrk)
- Backport PR #1444: Test on PyPy 3.11 instead of 3.10 #1459 (@cclauss)
- 6.x: Update PEP-639 license values in pyproject.toml #1446 (@bollwyvl)
- Backport PR #1411: Replace
@flaky.flakydecorate with pytest fixture #1421 (@mgorny)
Contributors to this release
(GitHub contributors page for this release)
@bollwyvl | @cclauss | @Darshan808 | @ianthomas23 | @krassowski | @lumberbot-app | @meeseeksmachine | @mgorny | @minrk
v7.0.1
7.0.1
IPykernel 7.0.1 is a bug fix release to support CPython 3.14.
Bugs fixed
- Avoid overriding Thread._context in Python 3.14 #1447 (@ianthomas23)
Maintenance and upkeep improvements
Documentation improvements
- Clean up changelog following 7.0.0 release #1439 (@ianthomas23)
Contributors to this release
v7.0.0
7.0.0
IPykernel 7.0.0 is a major release containing experimental support for kernel subshells.
If not using subshells it is intended to be backward compatible with the 6.x branch, but there are some architectural changes which may break assumptions made in downstream libraries and hence this is identified as a major releases as it is potentially backwards incompatible. If you experience problems then please report them, and you can pin ipykernel < 7 if necessary.
For further information and to report problems please see ipykernel 7.0.0 release with subshells (issue 1438).
Enhancements made
- Use asyncio.Lock around subshell message handling #1430 (@ianthomas23)
- Subshells implemented using tornado event loops on 6.x branch #1396 (@ianthomas23)
Bugs fixed
- Forward port from 6.x: Correct use of asyncio.Lock to process a single control message at a time #1418 (@ianthomas23)
- Cache separate headers on subshell threads #1414 (@ianthomas23)
Maintenance and upkeep improvements
- Drop support for Python 3.9 #1431 (@ianthomas23)
- Bump the actions group across 1 directory with 2 updates #1428 (@dependabot)
- Continue to support
Kernel._parent_identfor backward compatibility #1427 (@ianthomas23) - Reinstate ipyparallel downstream tests #1426 (@ianthomas23)
- Reinstate jupyter_client downstream tests with exclusions #1425 (@ianthomas23)
- Tests: Add robust tests for silent flag in subshells #1424 (@pankaj-bind)
- Use correct
__version__onmainbranch after branch manipulations #1419 (@ianthomas23) - Remove links in changelog to github milestones that no longer exist #1415 (@ianthomas23)
- Replace
@flaky.flakydecorate with pytest fixture #1411 (@mgorny) - chore: update pre-commit hooks #1409 (@pre-commit-ci)
- Bump scientific-python/upload-nightly-action from 0.6.1 to 0.6.2 in the actions group #1404 (@dependabot)
- Backports from
anyio(oldmain) branch tomainbranch #1402 (@ianthomas23) - Update pre-commit and github actions #1401 (@ianthomas23)
- Test more python versions on 6.x branch #1398 (@davidbrochart)
Documentation improvements
- Forward port of 6.x changelog to main branch #1429 (@ianthomas23)
- Add subshell docstrings #1405 (@ianthomas23)
Contributors to this release
(GitHub contributors page for this release)
@Carreau | @ccordoba12 | @davidbrochart | @dependabot | @fleming79 | @ianthomas23 | @krassowski | @mgorny | @minrk | @pankaj-bind | @pre-commit-ci
v7.0.0a3
7.0.0a3
Enhancements made
- Use asyncio.Lock around subshell message handling #1430 (@ianthomas23)
Maintenance and upkeep improvements
- Drop support for Python 3.9 #1431 (@ianthomas23)
- Bump the actions group across 1 directory with 2 updates #1428 (@dependabot)
- Continue to support
Kernel._parent_identfor backward compatibility #1427 (@ianthomas23) - Tests: Add robust tests for silent flag in subshells #1424 (@pankaj-bind)
Documentation improvements
- Forward port of 6.x changelog to main branch #1429 (@ianthomas23)
Contributors to this release
(GitHub contributors page for this release)
@Carreau | @ccordoba12 | @davidbrochart | @dependabot | @ianthomas23 | @krassowski | @pankaj-bind
v7.0.0a2
7.0.0a2
Pre-release of ipykernel with experimental subshell support on top of tornado/asyncio. The previous version 7 pre-releases used anyio but that will no longer be in ipykernel 7.
Note the changelog here is not correct, presumably due to the recent branch renaming. For the full release this will have to be manually curated so that it is accurate. The "Full Changelog" link below is accurate.
Enhancements made
- Replace BaseThread's add_task with start_soon #1300 (@davidbrochart)
- Use supported_features=['debugger'] in kernel info reply #1296 (@ianthomas23)
- Use zmq-anyio #1291 (@davidbrochart)
- Detect parent change in more cases on unix #1271 (@bluss)
- Kernel subshells (JEP91) implementation #1249 (@ianthomas23)
Bugs fixed
- Forward port from 6.x: Correct use of asyncio.Lock to process a single control message at a time #1418 (@ianthomas23)
- Cache separate headers on subshell threads #1414 (@ianthomas23)
- Fix OutStream using _fid before being defined #1373 (@davidbrochart)
- Make kernelbase._eventloop_set event thread-safe #1366 (@davidbrochart)
- Remove implicit bind_kernel in
%qtconsole#1315 (@minrk) - Fix ipykernel install #1310 (@davidbrochart)
- socket must be None, not shell_socket for default shell #1281 (@minrk)
- restore zero-copy recv on shell messages #1280 (@minrk)
- Fix eventloop integration with anyio #1265 (@ianthomas23)
Maintenance and upkeep improvements
- Reinstate jupyter_client downstream tests with exclusions #1425 (@ianthomas23)
- Use correct
__version__onmainbranch after branch manipulations #1419 (@ianthomas23) - Remove links in changelog to github milestones that no longer exist #1415 (@ianthomas23)
- Replace
@flaky.flakydecorate with pytest fixture #1411 (@mgorny) - chore: update pre-commit hooks #1409 (@pre-commit-ci)
- Bump scientific-python/upload-nightly-action from 0.6.1 to 0.6.2 in the actions group #1404 (@dependabot)
- Backports from
anyio(oldmain) branch tomainbranch #1402 (@ianthomas23) - Update pre-commit and github actions #1401 (@ianthomas23)
- Add security.md #1394 (@Carreau)
- chore: update pre-commit hooks #1388 (@pre-commit-ci)
- chore: update pre-commit hooks #1385 (@pre-commit-ci)
- chore: update pre-commit hooks #1383 (@pre-commit-ci)
- chore: update pre-commit hooks #1378 (@pre-commit-ci)
- chore: update pre-commit hooks #1375 (@pre-commit-ci)
- chore: update pre-commit hooks #1372 (@pre-commit-ci)
- Remove nose import. #1368 (@Carreau)
- TQDM workaround due to unresponsive maintainer #1363 (@Carreau)
- chore: update pre-commit hooks #1355 (@pre-commit-ci)
- Fix expected text depending on IPython version. #1354 (@Carreau)
- Another try at tracking down ResourceWarning with tracemalloc. #1353 (@Carreau)
- Remove deprecated modules since 4.3 (2016). #1352 (@Carreau)
- Try to reenable tests from downstream ipywidgets #1350 (@Carreau)
- Disable 3 failing downstream tests, but keep testing the rest. #1349 (@Carreau)
- Licence :: * trove classifers are deprecated #1348 (@Carreau)
- Pin sphinx to resolve docs build failures #1347 (@krassowski)
- Make our own mock kernel methods async #1346 (@Carreau)
- Try to debug non-closed iopub socket #1345 (@Carreau)
- Email is @python.org since 2018 #1343 (@Carreau)
- Remove unused ignores lints. #1342 (@Carreau)
- Enable ruff G002 and fix 6 occurences #1341 (@Carreau)
- Check ignores warnings are still relevant. #1340 (@Carreau)
- Move mypy disablinging error codes on a per-file basis #1338 (@Carreau)
- try to fix spyder kernel install #1337 (@Carreau)
- Remove test_check job #1335 (@Carreau)
- Refine deprecation error messages. #1334 (@Carreau)
- Bump mypy #1333 (@Carreau)
- Remove dead code. #1332 (@Carreau)
- Ignore or fix most of the remaining ruff 0.9.6 errors #1331 (@Carreau)
- minor code reformating valid ruff 0.9.6 #1330 (@Carreau)
- Some formatting changes to prepare bumping ruff pre-commit. #1329 (@Carreau)
- Manually update Codespell and fix new errors. #1328 (@Carreau)
- Manually update mdformat pre-commit and run it. #1327 (@Carreau)
- Manually update pre-commit hooks that do not trigger new errors/fixes. #1326 (@Carreau)
- Try to force precommit-ci to send autoupdate PRs. #1325 (@Carreau)
- Don't rerun test with --lf it hides failures. #1324 (@Carreau)
- Delete always skipped test, fix trio test, fix framelocal has not .clear() #1322 (@Carreau)
- Fix types lints #1321 (@Carreau)
- Remove link to numfocus for funding. #1320 (@Carreau)
- Remove downstream_check #1318 (@Carreau)
- Copy payloadpage.page from IPython #1317 (@Carreau)
- More Informative assert [#1314](https://github.com/ipython/ipykerne...
v6.30.1
6.30.1
This is a bugfix release to fix a significant bug introduced in 6.30.0 that allowed control messages to be handled concurrently rather than sequentially which broke debugging in JupyterLab and VSCode.
Bugs fixed
- Correct use of asyncio.Lock to process a single control message at a time #1416 (@ianthomas23)
Maintenance and upkeep improvements
- Backport: Remove links in changelog to github milestones that no longer exist #1417 (@ianthomas23)
Contributors to this release
v6.30.0
6.30.0
This release fixes three bugs but is primarily a maintenance release bringing support for Python 3.13 and updating dependencies. It does not include subshells which will be in the upcoming 7.0.0 release. Users and downstream libraries that wish to avoid subshells should pin to ipykernel < 7.
Enhancements made
- Remove control queue #1210 (@ianthomas23)
Bugs fixed
- Set shell idle when message skipped by "should_handle" in "dispatch_shell" #1395 (@dby-tmwctw)
- Fixed error accessing sys.stdout/sys.stderr when those are None #1247 (@gregory-shklover)
- Allow datetime or str in test_sequential_control_messages #1219 (@ianthomas23)
Maintenance and upkeep improvements
- 6.x backports #1406 (@ianthomas23)
- Update pre-commit and github actions #1401 (@ianthomas23)
- Test more python versions on 6.x branch #1398 (@davidbrochart)
- Backports and extra changes to fix CI on 6.x branch #1390 (@ianthomas23)
- Remove nose import. #1368 (@Carreau)
- Test more python versions #1358 (@davidbrochart)
- Fix expected text depending on IPython version. #1354 (@Carreau)
- Licence :: * trove classifers are deprecated #1348 (@Carreau)
- Try to fix spyder kernel install #1337 (@Carreau)
- Remove test_check job #1335 (@Carreau)
- Don't rerun test with --lf it hides failures. #1324 (@Carreau)
- Remove link to numfocus for funding. #1320 (@Carreau)
- Remove downstream_check #1318 (@Carreau)
- Copy payloadpage.page from IPython #1317 (@Carreau)
- Remove base setup #1299 (@davidbrochart)
- Rely on intrsphinx_registry to keep intersphinx up to date. #1290 (@Carreau)
- Drop support for Python 3.8 #1284 (@ianthomas23)
- Start testing on 3.13 #1277 (@Carreau)
- Build docs on ubuntu #1257 (@blink1073)
- Avoid a DeprecationWarning on Python 3.13+ #1248 (@hroncok)
- Catch IPython 8.24 DeprecationWarnings #1242 (@s-t-e-v-e-n-k)
- Add compat with pytest 8 #1231 (@blink1073)
- Set all min deps #1229 (@blink1073)
Contributors to this release
(GitHub contributors page for this release)
@Carreau | @ccordoba12 | @davidbrochart | @dby-tmwctw | @gregory-shklover | @ianthomas23 | @ivanov | @jasongrout | @krassowski | @meeseeksmachine | @minrk | @nathanmcavoy | @s-t-e-v-e-n-k
v6.30.0a0
6.30.0a0
Pre-release to allow further testing of subshell implementation.
Enhancements made
- Subshells implemented using tornado event loops on 6.x branch #1396 (@ianthomas23)
Bugs fixed
- [Bugfix] Set shell idle when message skipped by "should_handle" in "dispatch_shell" #1395 (@dby-tmwctw)
Maintenance and upkeep improvements
- Backports and extra changes to fix CI on 6.x branch #1390 (@ianthomas23)
- Avoid a DeprecationWarning on Python 3.13+ #1248 (@hroncok)
Contributors to this release
(GitHub contributors page for this release)
@Carreau | @ccordoba12 | @davidbrochart | @dby-tmwctw | @ianthomas23 | @ivanov | @jasongrout | @krassowski | @meeseeksmachine | @minrk
v7.0.0a1
7.0.0a1
Enhancements made
- Replace BaseThread's add_task with start_soon #1300 (@davidbrochart)
- Use supported_features=['debugger'] in kernel info reply #1296 (@ianthomas23)
- Use zmq-anyio #1291 (@davidbrochart)
Bugs fixed
- Fix OutStream using _fid before being defined #1373 (@davidbrochart)
- Make kernelbase._eventloop_set event thread-safe #1366 (@davidbrochart)
- Remove implicit bind_kernel in
%qtconsole#1315 (@minrk) - Fix ipykernel install #1310 (@davidbrochart)
- socket must be None, not shell_socket for default shell #1281 (@minrk)
- restore zero-copy recv on shell messages #1280 (@minrk)
Maintenance and upkeep improvements
- chore: update pre-commit hooks #1372 (@pre-commit-ci)
- Remove nose import. #1368 (@Carreau)
- chore: update pre-commit hooks #1355 (@pre-commit-ci)
- Fix expected text depending on IPython version. #1354 (@Carreau)
- Another try at tracking down ResourceWarning with tracemalloc. #1353 (@Carreau)
- Remove deprecated modules since 4.3 (2016). #1352 (@Carreau)
- Try to reenable tests from downstream ipywidgets #1350 (@Carreau)
- Disable 3 failing downstream tests, but keep testing the rest. #1349 (@Carreau)
- Licence :: * trove classifers are deprecated #1348 (@Carreau)
- Pin sphinx to resolve docs build failures #1347 (@krassowski)
- Make our own mock kernel methods async #1346 (@Carreau)
- Try to debug non-closed iopub socket #1345 (@Carreau)
- Email is @python.org since 2018 #1343 (@Carreau)
- Remove unused ignores lints. #1342 (@Carreau)
- Enable ruff G002 and fix 6 occurences #1341 (@Carreau)
- Check ignores warnings are still relevant. #1340 (@Carreau)
- Move mypy disablinging error codes on a per-file basis #1338 (@Carreau)
- try to fix spyder kernel install #1337 (@Carreau)
- Remove test_check job #1335 (@Carreau)
- Refine deprecation error messages. #1334 (@Carreau)
- Bump mypy #1333 (@Carreau)
- Remove dead code. #1332 (@Carreau)
- Ignore or fix most of the remaining ruff 0.9.6 errors #1331 (@Carreau)
- minor code reformating valid ruff 0.9.6 #1330 (@Carreau)
- Some formatting changes to prepare bumping ruff pre-commit. #1329 (@Carreau)
- Manually update Codespell and fix new errors. #1328 (@Carreau)
- Manually update mdformat pre-commit and run it. #1327 (@Carreau)
- Manually update pre-commit hooks that do not trigger new errors/fixes. #1326 (@Carreau)
- Try to force precommit-ci to send autoupdate PRs. #1325 (@Carreau)
- Don't rerun test with --lf it hides failures. #1324 (@Carreau)
- Delete always skipped test, fix trio test, fix framelocal has not .clear() #1322 (@Carreau)
- Fix types lints #1321 (@Carreau)
- Remove link to numfocus for funding. #1320 (@Carreau)
- Remove downstream_check #1318 (@Carreau)
- Copy payloadpage.page from IPython #1317 (@Carreau)
- More Informative assert #1314 (@Carreau)
- Fix test_print_to_correct_cell_from_child_thread #1312 (@davidbrochart)
- make debugger class configurable #1307 (@smacke)
- properly close OutStream and various fixes #1305 (@limwz01)
- Remove base setup #1299 (@davidbrochart)
- Suggest to make implementations of some function always return awaitable #1295 (@Carreau)
- Misc type annotations #1294 (@Carreau)
- Rely on intrsphinx_registry to keep intersphinx up to date. #1290 (@Carreau)
- Improve robustness of subshell concurrency tests using Barrier #1288 (@ianthomas23)
- Add 20 min timeout dowstream ipyparallel #1287 (@Carreau)
- Improve robustness of subshell concurrency tests #1285 (@ianthomas23)
- Drop support for Python 3.8 #1284 (@ianthomas23)
- remove deprecated ipyparallel methods now that they are broken anyway #1282 (@minrk)
- start testing on 3.13 #1277 (@Carreau)
- Try to add workflow to publish nightlies #1276 (@Carreau)
- fix mixture of sync/async sockets in IOPubThread #1275 (@minrk)
- Remove some potential dead-code. #1273 (@Carreau)
Deprecated features
- Remove deprecated modules since 4.3 (2016). #1352 (@Carreau)
- Suggest to make implementations of some function always return awaitable #1295 (@Carreau)
Other merged PRs
- Ensure test_start_app takes 1s to stop kernel #1364 (@davidbrochart)
- Test more python versions #1358 (@davidbrochart)
Contributors to this release
(GitHub contributors page for this release)
@Carreau | [@ccordoba12](https://github.com/search?q=repo%3Aipython%2Fipykernel+involves%3Accordoba12+updated%3A2024-10-22..2025-03-07&type...