-
Notifications
You must be signed in to change notification settings - Fork 305
Comparing changes
Open a pull request
base repository: jupyter/jupyter_client
base: v8.7.0
head repository: jupyter/jupyter_client
compare: main
- 11 commits
- 14 files changed
- 8 contributors
Commits on Dec 9, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 9873af1 - Browse repository at this point
Copy the full SHA 9873af1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 275ffac - Browse repository at this point
Copy the full SHA 275ffacView commit details -
Skip mypy on PyPy to avoid librt compilation issues (#1086)
* Skip mypy on PyPy to avoid librt compilation issues mypy's mypyc-compiled dependencies (librt) use CPython internal structures that don't exist in PyPy, causing compilation failures. Fixes test environment installation on PyPy. * Fix CI: unset HATCH_ENV for check_release, use direct version-cmd Two issues: 1. Global HATCH_ENV=cov caused 'hatch version' to fail with 'Environment cov is not a builder environment' in check_release 2. Added explicit version-cmd to .jupyter-releaser.toml for robustness * Remove version-cmd, use default hatch version version-cmd is for bumping, not reading. With HATCH_ENV unset, hatch version works correctly for both reading and bumping.
Configuration menu - View commit details
-
Copy full SHA for 5ef6038 - Browse repository at this point
Copy the full SHA 5ef6038View commit details -
Fix downstream workflow (#1087)
* Remove papermill from downstreams_check needs The papermill job was removed but the reference in needs was not updated. * Bump qtconsole downstream test to Python 3.10 jupyter_client now requires Python >= 3.10 * Fix jupyter_kernel_test: use Miniforge, set Python 3.10 - Remove undefined matrix.python-version reference - Switch from deprecated Mambaforge to miniforge-version: latest - Explicitly set Python 3.10 (jupyter_client requires >= 3.10) * Skip flaky nbclient test with execution_count mismatch The test_run_all_notebooks[update-display-id.ipynb-opts14] test has a hardcoded execution_count expectation that doesn't match actual kernel behavior. This is an nbclient test issue, not jupyter_client. * Skip flaky qtconsole test_scroll[False] test Times out waiting for shell prompt in CI, even with @flaky(max_runs=3). * Remove qtconsole from required downstream checks qtconsole tests are too flaky in CI - GUI + async kernel communication causes frequent timeouts. The job still runs for visibility but won't block the workflow.
Configuration menu - View commit details
-
Copy full SHA for 49a4376 - Browse repository at this point
Copy the full SHA 49a4376View commit details
Commits on Dec 10, 2025
-
Fix channel cleanup by closing streams before stopping ioloop thread (#…
…1089) * Fix channel cleanup by closing streams before stopping ioloop thread The change in PR #1076 added 'finally: loop.close()' to IOLoopThread.run(), which closes the asyncio event loop before ZMQ streams have been properly unregistered. This caused errors during teardown when downstream projects like qtconsole tried to check if channels were closed. The fix ensures that channel streams are explicitly closed (via close()) while the ioloop is still running, before calling stop_channels() on the parent class and stopping the ioloop thread. This allows the ZMQ streams to be properly unregistered from the event loop before it's closed. * Fix _exiting to be instance variable, not shared class variable The _exiting flag was defined as a class variable, meaning when one IOLoopThread called stop() and set _exiting = True, it affected ALL IOLoopThread instances. This caused subsequent kernels to fail to start because _async_run() would immediately exit. By initializing self._exiting = False in __init__, each IOLoopThread instance now has its own exit flag. The class-level _exiting is still used by _notice_exit() for interpreter shutdown cleanup.
Configuration menu - View commit details
-
Copy full SHA for cd14b0e - Browse repository at this point
Copy the full SHA cd14b0eView commit details -
Re-enable qtconsole in downstream checks (#1090)
PR #1089 fixed the channel cleanup and _exiting instance variable issues that were causing qtconsole test failures. Re-add qtconsole to the required downstream checks and remove the test_scroll[False] deselect.
Configuration menu - View commit details
-
Copy full SHA for b32dcce - Browse repository at this point
Copy the full SHA b32dcceView commit details -
Path resolution by kernel manager and providers (#1005)
* Path resolution by kernel manager and providers * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Cleanup * Do not resolve for non-existent files * Fix spurious `async` * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update resolve_path return type to str | None --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for a53ade9 - Browse repository at this point
Copy the full SHA a53ade9View commit details -
Fix flaky client tests by waiting for first request's reply (#1091)
* Fix flaky client tests by waiting for first request's reply The tests were sending two requests back-to-back: 1. First call without reply=True (to check msg_id is returned) 2. Second call with reply=True (to check reply content) This caused flakiness because the reply for the first request would sit in the channel, and _async_recv_reply would receive it but skip it since msg_ids didn't match. On slow systems (like MacOS CI), the second reply might not arrive before timeout. Fix by using _recv_reply() / _async_recv_reply() to wait for the first request's reply instead of sending a second request. * Fix flaky client tests and handle flush race condition Two fixes: 1. Fix flaky client tests by draining first reply before testing reply=True The tests send two requests back-to-back: - First call without reply=True (to check msg_id is returned) - Second call with reply=True (to check reply content) This caused flakiness because the reply for the first request would sit in the channel, and _async_recv_reply would skip it since msg_ids didn't match. On slow systems (like MacOS CI), the second reply might not arrive before timeout. Fix by draining the first reply before sending the second request. This still tests both paths: returning msg_id and the reply=True convenience functionality. 2. Handle stream closed between flush scheduling and execution The _flush() callback runs on the ioloop thread after being scheduled by flush(). Between scheduling and execution, the stream may be closed by stop_channels() during teardown. This is an expected race condition during shutdown, not a programming error, so we handle it gracefully rather than asserting. Uncovered by qtconsole downstream tests after #1089.
Configuration menu - View commit details
-
Copy full SHA for 0bce36f - Browse repository at this point
Copy the full SHA 0bce36fView commit details
Commits on Dec 12, 2025
-
Faster message serialization (#1064)
* Add orjson_packer and orjson_unpacker to speed up serialization of session messages. * Refactor orjson packer to use functools.partial. * Add msgpack support for message serialization in Session * Refactor packer/unpacker change handling for improved readability * Fix test_serialize_objects datetime checks on ci to compare using datetime format. * Fix datetime deserialization in test_serialize_objects to use dateutil.parser.isoparse * Add PicklingError to exception handling in test_cannot_serialize * Update api docs * Replace dateutil.parser.isoparse with jsonutil.parse_date in test_serialize_objects for datetime validation * Use rep in fstring Co-authored-by: M Bussonnier <bussonniermatthias@gmail.com> * Add msgpack as a test dependency. * Fallback to json_packer and json_unpacker for orjson to handle for better resilience. * Fix: test_args checking for removed _default_pack_unpack and _default_pack_unpack. * Add type annotation to orjson_packer. * Add the other missing type annoatation. * Change orjson from a dependency to an optional dependency. Test against the minimum version in CI. * Double timeout for test_minimum_verisons * Fix invalid argument name. * Add orjson and msgpack as additional_dependencies for mypy in .pre-commit-config.yaml. * Remove # type:ignore[import-not-found]. * Should return result of orjson.loads. * fix: get mypy working with orjson/msgpack Signed-off-by: Henry Schreiner <henryfs@princeton.edu> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix for previous refactor. --------- Signed-off-by: Henry Schreiner <henryfs@princeton.edu> Co-authored-by: M Bussonnier <bussonniermatthias@gmail.com> Co-authored-by: Alan <> Co-authored-by: Henry Schreiner <henryfs@princeton.edu> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for ee43cd3 - Browse repository at this point
Copy the full SHA ee43cd3View commit details
Commits on Dec 17, 2025
-
chore: update some parts of the pre-commit (#1093)
Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
Configuration menu - View commit details
-
Copy full SHA for 9589ed8 - Browse repository at this point
Copy the full SHA 9589ed8View commit details
Commits on Dec 18, 2025
-
* Added missing info aobut Debug Adapter Protocol * Added XPUB related changes to the kernel message specification * Added support for kernel_info messages to the Control channel in the kernel message specification * Specified that the debugger is an optional feature * Specified that copyToGlobals debug request is optional * linter * Update docs/messaging.rst Co-authored-by: Min RK <benjaminrk@gmail.com> * Fixed linter --------- Co-authored-by: Min RK <benjaminrk@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 7c3a325 - Browse repository at this point
Copy the full SHA 7c3a325View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v8.7.0...main