All notable changes to this project will be documented in this file.
- Protocol alignment #657 (@davidbrochart)
- Fix to remove potential memory leak on Jupyter Server ZMQChannelHandler code #682 (@Vishwajeet0510)
- Pin pywintpy for now #681 (@blink1073)
- Fix the non-writable path deletion error #670 (@vkaidalov)
- make unit tests backwards compatible without pending kernels #669 (@Zsailer)
- Clean up full install test #689 (@blink1073)
- Update trigger_precommit.yml #687 (@blink1073)
- Add Auto Pre-Commit #685 (@blink1073)
- Fix a typo #683 (@krassowski)
- (temporarily) skip pending kernels unit tests on Windows CI #673 (@Zsailer)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @echarles | @github-actions | @jasongrout | @krassowski | @maartenbreddels | @SylvainCorlay | @Vishwajeet0510 | @vkaidalov | @welcome | @Wh1isper | @Zsailer
- Fix nbconvert handler run_sync() #667 (@davidbrochart)
(GitHub contributors page for this release)
@codecov-commenter | @davidbrochart | @Zsailer
(GitHub contributors page for this release)
- Don't block the event loop when exporting with nbconvert #655 (@davidbrochart)
- Add more awaits for pending kernel in unit tests #654 (@Zsailer)
- Print IPv6 url as hostname or enclosed in brackets #652 (@op3)
- Run pre_save_hook before model check #643 (@davidbrochart)
- handle KeyError when get session #641 (@ccw630)
- Clean up deprecations #650 (@blink1073)
- Update branch references #646 (@blink1073)
- pyproject.toml: clarify build system version #634 (@adamjstewart)
(GitHub contributors page for this release)
@adamjstewart | @blink1073 | @ccw630 | @codecov-commenter | @davidbrochart | @echarles | @fcollonval | @kevin-bates | @op3 | @welcome | @Wh1isper | @Zsailer
- Fix macos pypy check #632 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @Zsailer
- Nudge on the control channel instead of the shell #628 (@JohanMabille)
- Clean up downstream tests #629 (@blink1073)
- Clean up version info handling #620 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @echarles | @JohanMabille | @jtpio | @Zsailer
- Update to Python 3.10 in the CI workflows #618 (@jtpio)
- Use
maintainer-tools
base setup action #616 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @jtpio
- Consistent logging method #607 (@mwakaba2)
- Use pending kernels #593 (@blink1073)
- Set
xsrf
cookie on base url #612 (@minrk) - Update
jpserver_extensions
trait to work withtraitlets
5.x #610 (@Zsailer) - Fix
allow_origin_pat
property to properly parse regex #603 (@havok2063)
- Enforce labels on PRs #613 (@blink1073)
- Normalize file name and path in
test_api
#608 (@toonn)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @havok2063 | @minrk | @mwakaba2 | @toonn | @welcome | @Zsailer
- Fix \s deprecation warning #600 (@Zsailer)
- Remove requests-unixsocket dependency #599 (@kevin-bates)
- bugfix: dir_exists is never awaited #597 (@stdll00)
- Fix missing await when call 'async_replace_file' #595 (@Wh1isper)
- add a pytest fixture for capturing logging stream #588 (@Zsailer)
- Avoid dependency on NBConvert versions for REST API test #601 (@Zsailer)
- Bump ansi-regex from 5.0.0 to 5.0.1 #590 (@dependabot)
(GitHub contributors page for this release)
@codecov-commenter | @dependabot | @kevin-bates | @stdll00 | @welcome | @Wh1isper | @Zsailer
- Do not log connection error if the kernel is already shutdown #584 (@martinRenou)
- [BUG]: allow None for min_open_files_limit trait #587 (@Zsailer)
(GitHub contributors page for this release)
@codecov-commenter | @martinRenou | @Zsailer
- Allow non-empty directory deletion through settings #574 (@fcollonval)
- pytest_plugin: allow user specified headers in jp_ws_fetch #580 (@oliver-sanders)
- Shutdown kernels/terminals on api/shutdown #579 (@martinRenou)
- pytest: package conftest #576 (@oliver-sanders)
- Set stacklevel on warning to point to the right place. #572 (@Carreau)
- Respect reraise setting #571 (@vidartf)
- Fix jupyter_client warning #581 (@martinRenou)
- Add Pre-Commit Config #575 (@fcollonval)
- Clean up link checking #569 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @Carreau | @codecov-commenter | @fcollonval | @martinRenou | @oliver-sanders | @vidartf
- fix: make command line aliases work again #564 (@mariobuikhuizen)
- decode bytes from secure cookie #562 (@oliver-sanders)
- Add the needed space in the welcome message #561 (@echarles)
- Update check-release workflow #558 (@afshin)
(GitHub contributors page for this release)
@afshin | @codecov-commenter | @echarles | @manics | @mariobuikhuizen | @oliver-sanders | @welcome | @Zsailer
- Protect against unset spec #556 (@fcollonval)
(GitHub contributors page for this release)
- PR: Add a new preferred-dir traitlet #549 (@goanpeca)
- stop hook for extensions #526 (@oliver-sanders)
- extensions: allow extensions in namespace packages #523 (@oliver-sanders)
- Fix examples/simple test execution #552 (@davidbrochart)
- Rebuild package-lock, fixing local setup #548 (@martinRenou)
- small test changes #541 (@oliver-sanders)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @goanpeca | @kevin-bates | @martinRenou | @oliver-sanders | @welcome | @Zsailer
- enable a way to run a task when an io_loop is created #531 (@eastonsuo)
- adds
GatewayClient.auth_scheme
configurable #529 (@telamonian) - [Notebook port 4835] Add UNIX socket support to notebook server #525 (@jtpio)
- Fix nbconvert handler #545 (@davidbrochart)
- Fixes AsyncContentsManager#exists #542 (@icankeep)
- argon2 as an optional dependency #532 (@vidartf)
- Test Downstream Packages #528 (@blink1073)
- fix jp_ws_fetch not work by its own #441 #527 (@eastonsuo)
- Update link to meeting notes #535 (@krassowski)
(GitHub contributors page for this release)
@blink1073 | @codecov-commenter | @davidbrochart | @eastonsuo | @icankeep | @jtpio | @kevin-bates | @krassowski | @telamonian | @vidartf | @welcome | @Zsailer
- Upgrade anyio to 3.1 for all py versions #521 (@mwakaba2)
- Enable Server Tests on Windows #519 (@jtpio)
- restore preference for SelectorEventLoop on Windows #513 (@minrk)
- set default config dir name #504 (@minrk)
(GitHub contributors page for this release)
@codecov-commenter | @jtpio | @minrk | @mwakaba2 | @vidartf | @welcome | @Zsailer
- Fix for recursive symlink - (port Notebook 4670) #497 (@kevin-bates)
- Make nbconvert root handler asynchronous #512 (@hMED22)
- Refactor gateway kernel management to achieve a degree of consistency #483 (@kevin-bates)
- Remove Packaging Dependency #515 (@jtpio)
- Use kernel_id for new kernel if it doesn't exist in MappingKernelManager.start_kernel #511 (@the-higgs)
- Include backtrace in debug output when extension fails to load #506 (@candlerb)
- ExtensionPoint: return True on successful validate() #503 (@minrk)
- ExtensionManager: load default config manager by default #502 (@minrk)
- Prep for Release Helper Usage #494 (@jtpio)
- Typo in shutdown with answer_yes #491 (@kiendang)
- Remove some of ipython_genutils no-op. #440 (@Carreau)
- Drop dependency on pywin32 #514 (@kevin-bates)
- Upgrade anyio to v3 #492 (@mwakaba2)
- Add Appropriate Token Permission for CodeQL Workflow #489 (@afshin)
(GitHub contributors page for this release)
@codecov-commenter | @hMED22 | @jtpio | @kevin-bates | @the-higgs | @welcome @blink1073 | @candlerb | @kevin-bates | @minrk | @mwakaba2 | @Zsailer | @kiendang | [@Carreau] (https://github.com/search?q=repo%3Ajupyter-server%2Fjupyter_server+involves%3ACarreau+updated%3A2021-04-21..2021-05-01&type=Issues)
(GitHub contributors page for this release)
- Gate anyio version. 2b51ee3
- Fix activity tracking and nudge issues when kernel ports change on restarts #482 (@kevin-bates)
(GitHub contributors page for this release)
(GitHub contributors page for this release)
- Fix race condition with async kernel management #472 (@jtpio)
- Fix kernel lookup #475 (@davidbrochart)
- Add Extension App Aliases to Server App #473 (@jtpio)
- Correct 'Content-Type' headers #471 (@faucct)
(GitHub contributors page for this release)
@codecov-io | @davidbrochart | @echarles | @faucct | @jtpio | @welcome
- Add Changelog to Sphinx Docs #465 (@afshin)
- Update description for kernel restarted in the API docs #463 (@jtpio)
- Delete the extra “or” that prevents easy cut-and-paste of URLs. #460 (@jasongrout)
- Add descriptive log for port unavailable and port-retries=0 #459 (@afshin)
- Add ReadTheDocs config #468 (@jtpio)
- Update MappingKM.restart_kernel to accept now kwarg #404 (@vidartf)
(GitHub contributors page for this release)
@afshin | @codecov-io | @echarles | @jasongrout | @jtpio | @kevin-bates | @vidartf
Merged pull requests:
- Ensure jupyter config dir exists #454 (@afshin)
- Allow
pre_save_hook
to cancel save withHTTPError
#456 (@minrk)
Contributors to this release:
(GitHub contributors page for this release)
Merged pull requests:
- Add Styling to the HTML Pages #452 (@afshin)
- Implement password hashing with
argon2-cffi
#450 (@afshin) - Escape user input in handlers flagged during code scans #449 (@kevin-bates)
- Fix for the terminal shutdown issue #446 (@afshin)
- Update the branch filter for the CI badge #445 (@jtpio)
- Fix for
UnboundLocalError
in shutdown #444 (@afshin) - Update CI badge and fix broken link #443 (@blink1073)
- Fix syntax typo #442 (@kiendang)
- Port terminal culling from Notebook #438 (@kevin-bates)
- More complex handling of
open_browser
from extension applications #433 (@afshin) - Correction in Changelog #429 (@Zsailer)
- Rename translation function alias #428 (@sngyo)
Contributors to this release:
(GitHub contributors page for this release)
@afshin | @blink1073 | @codecov-io | @jtpio | @kevin-bates | @kiendang | @minrk | @sngyo | @Zsailer
1.4.1 (2021-02-22)
Merged pull requests:
- Update README.md #425 (@BobinMathew)
- Solve UnboundLocalError in launch_browser() #421 (@jamesmishra)
- Add file_to_run to server extension docs #420 (@Zsailer)
- Remove outdated reference to _jupyter_server_extension_paths in docs #419 (@Zsailer)
Contributors to this release:
(GitHub contributors page for this release)
1.4.0 (2021-02-18)
Merged pull requests:
- Add Tests to Distribution #416 (afshin)
- Enable extensions to control the file_to_run #415 (afshin)
- add missing template for view.html #414 (minrk)
- Remove obsoleted asyncio-patch fixture #412 (kevin-bates)
- Emit deprecation warning on old name #411 (fcollonval)
- Correct logging message position #410 (fcollonval)
- Update 1.3.0 Changelog to include broken 1.2.3 PRs #408 (kevin-bates)
- [Gateway] Track only this server's kernels #407 (kevin-bates)
- Update manager.py: more descriptive warnings when extensions fail to load #396 (alberti42)
1.3.0 (2021-02-04)
Merged pull requests (includes those from broken 1.2.3 release):
- Special case ExtensionApp that starts the ServerApp #401 (afshin)
- only use deprecated notebook_dir config if root_dir is not set #400 (minrk)
- Use async kernel manager by default #399 (kevin-bates)
- Revert Session.username default value change #398 (mwakaba2)
- Re-enable default_url in ExtensionApp #393 (afshin)
- Enable notebook ContentsManager in jupyter_server #392 (afshin)
- Use jupyter_server_config.json as config file in the update password api #390 (echarles)
- Increase culling test idle timeout #388 (kevin-bates)
- update changelog for 1.2.2 #387 (Zsailer)
1.2.3 (2021-01-29)
This was a broken release and was yanked from PyPI.
Merged pull requests:
- Re-enable default_url in ExtensionApp #393 (afshin)
- Enable notebook ContentsManager in jupyter_server #392 (afshin)
- Use jupyter_server_config.json as config file in the update password api #390 (echarles)
- Increase culling test idle timeout #388 (kevin-bates)
- update changelog for 1.2.2 #387 (Zsailer)
1.2.2 (2021-01-14)
Merged pull requests:
- Apply missing ensure_async to root session handler methods #386 (kevin-bates)
- Update changelog to 1.2.1 #385 (Zsailer)
- Fix application exit #384 (afshin)
- Replace secure_write, is_hidden, exists with jupyter_core's #382 (kevin-bates)
- Add --autoreload flag #380 (afshin)
1.2.1 (2021-01-08)
Merged pull requests:
- Enable extensions to set debug and open-browser flags #379 (afshin)
- Add reconnection to Gateway #378 (oyvsyo)
1.2.0 (2021-01-07)
Merged pull requests:
- Flip default value for open_browser in extensions #377 (ajbozarth)
- Improve Handling of the soft limit on open file handles #376 (afshin)
- Handle open_browser trait in ServerApp and ExtensionApp differently #375 (afshin)
- Add setting to disable redirect file browser launch #374 (afshin)
- Make trust handle use ensure_async #373 (vidartf)
1.1.4 (2021-01-04)
Merged pull requests:
- Update the link to paths documentation #371 (krassowski)
- IPythonHandler -> JupyterHandler #370 (krassowski)
- use setuptools find_packages, exclude tests, docs and examples from dist #368 (bollwyvl)
- Update serverapp.py #367 (michaelaye)
1.1.3 (2020-12-23)
Merged pull requests:
1.1.2 (2020-12-21)
Merged pull requests:
- Nudge kernel with info request until we receive IOPub messages #361 (SylvainCorlay)
1.1.1 (2020-12-16)
Merged pull requests:
Merged pull requests:
- Restore pytest plugin from pytest-jupyter #360 (kevin-bates)
- Fix upgrade packaging dependencies build step #354 (mwakaba2)
- Await _connect and inline read_messages callback to _connect #350 (ricklamers)
- Update release instructions and dev version #348 (kevin-bates)
- Fix test_trailing_slash #346 (kevin-bates)
- Apply security advisory fix to master #345 (kevin-bates)
- Allow toggling auth for prometheus metrics #344 (yuvipanda)
- Port Notebook PRs 5565 and 5588 - terminal shell heuristics #343 (kevin-bates)
- Port gateway updates from notebook (PRs 5317 and 5484) #341 (kevin-bates)
- add check_origin handler to gateway WebSocketChannelsHandler #340 (ricklamers)
- Remove pytest11 entrypoint and plugin, require tornado 6.1, remove asyncio patch, CI work #339 (bollwyvl)
- Switch fixtures to use those in pytest-jupyter to avoid collisions #335 (kevin-bates)
- Enable CodeQL runs on all pushed branches #333 (kevin-bates)
- Asynchronous Contents API #324 (mwakaba2)
1.0.6 is a security release, fixing one vulnerability:
- Fix open redirect vulnerability GHSA-grfj-wjv9-4f9v (CVE-2020-26232)
- Added a basic, styled
login.html
template. (220, 295) - Added new extension manager API for handling server extensions. (248, 265, 275, 303)
- The favicon and Jupyter logo are now available under jupyter_server's static namespace. (284)
load_jupyter_server_extension
should be renamed to_load_jupyter_server_extension
in server extensions. Server now throws a warning when the old name is used. (213)- Docs for server extensions now recommend using
authenticated
decorator for handlers. (219) _load_jupyter_server_paths
should be renamed to_load_jupyter_server_points
in server extensions. (277)static_url_prefix
in ExtensionApps is now a configurable trait. (289)extension_name
trait was removed in favor ofname
. (232)- Dropped support for Python 3.5. (296)
- Made the
config_dir_name
trait configurable inConfigManager
. (297)
- Removed ipykernel as a dependency of jupyter_server. (255)
- Prevent a re-definition of prometheus metrics if
notebook
package already imports them. (#210) - Fixed
terminals
REST API unit tests that weren't shutting down properly. (221) - Fixed jupyter_server on Windows for Python < 3.7. Added patch to handle subprocess cleanup. (240)
base_url
was being duplicated when getting a url path from theServerApp
. (280)- Extension URLs are now properly prefixed with
base_url
. Previously, allstatic
paths were not. (285) - Changed ExtensionApp mixin to inherit from
HasTraits
. This broke in traitlets 5.0 (294) - Replaces
urlparse
withurl_path_join
to prevent URL squashing issues. (304)
- (#191) Async kernel managment is now possible using the
AsyncKernelManager
fromjupyter_client
- (#201) Parameters can now be passed to new terminals created by the
terminals
REST API.
- (#196) Documentation was rewritten + refactored to use pydata_sphinx_theme.
- (#174)
ExtensionHandler
was changed to an Mixin class, i.e.ExtensionHandlerMixin
- (#194) The bundlerextension entry point was removed.
- pytest-plugin for Jupyter Server.
- Allows one to write async/await syntax in tests functions.
- Some particularly useful fixtures include:
serverapp
: a default ServerApp instance that handles setup+teardown.configurable_serverapp
: a function that returns a ServerApp instance.fetch
: an awaitable function that tests makes requests to the server APIcreate_notebook
: a function that writes a notebook to a given temporary file path.
extension
submodule (#48)- ExtensionApp - configurable JupyterApp-subclass for server extensions
- Most useful for Jupyter frontends, like Notebook, JupyterLab, nteract, voila etc.
- Launch with entrypoints
- Configure from file or CLI
- Add custom templates, static assets, handlers, etc.
- Static assets are served behind a
/static/<extension_name>
endpoint. - Run server extensions in "standalone mode" (#70 and #76)
- ExtensionHandler - tornado handlers for extensions.
- Finds static assets at
/static/<extension_name>
- Finds static assets at
- ExtensionApp - configurable JupyterApp-subclass for server extensions
jupyter serverextension <command>
entrypoint has been changed tojupyter server extension <command>
.toggle_jupyter_server
andvalidate_jupyter_server
function no longer take a Logger object as an argument.- Changed testing framework from nosetests to pytest (#152)
- Depend on pytest-tornasync extension for handling tornado/asyncio eventloop
- Depend on pytest-console-scripts for testing CLI entrypoints
- Added Github actions as a testing framework along side Travis and Azure (#146)
- Removed the option to update
root_dir
trait in FileContentsManager and MappingKernelManager in ServerApp (#135)
- Synced Jupyter Server with Notebook PRs in batches (ended on 2019-09-27)
- Added a "secure_write to function for cookie/token saves (#77)