- nicer traceback in missing loop case outside except in run_sync #437 (@AThePeanut4)
- Fix missing
fspecifier in f-string used to print config file path #433 (@krassowski) - validate inputs to is_hidden #429 (@minrk)
- try to fix some downstream tests #448 (@Carreau)
- remove deprecation warning, platformdirs won't become default #447 (@minrk)
- Bump github/codeql-action from 3 to 4 in the actions group #446 (@dependabot)
- require python 3.10, start to test on 3.14 and 3.14-free-threaded #445 (@Carreau)
- remove pywin32 dependency so free-threading can fly (like pypy) #441 (@stonebig)
- Bump the actions group across 1 directory with 2 updates #440 (@dependabot)
(GitHub contributors page for this release)
@AThePeanut4 | @Carreau | @dependabot | @krassowski | @minrk | @nikimagic | @stonebig
- Update Release Scripts #396 (@blink1073)
- Enforce pytest 7 #393 (@blink1073)
- chore: update pre-commit hooks #392 (@pre-commit-ci)
(GitHub contributors page for this release)
- Derive JupyterAsyncApp from JupyterApp #389 (@blink1073)
(GitHub contributors page for this release)
- Modernize event loop behavior #387 (@blink1073)
- chore: update pre-commit hooks #388 (@pre-commit-ci)
(GitHub contributors page for this release)
- Fix export of package version #386 (@blink1073)
- Revert "Enable async JupyterApp" #385 (@blink1073)
- Bump github/codeql-action from 2 to 3 #380 (@dependabot)
(GitHub contributors page for this release)
- Enable async JupyterApp #381 (@blink1073)
(GitHub contributors page for this release)
- Account for read only file systems in migration #379 (@blink1073)
- Update ruff and typings #376 (@blink1073)
- chore: update pre-commit hooks #374 (@pre-commit-ci)
- Clean up lint and add downstream checks #373 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @mtelka | @pre-commit-ci
- Fix typing for traitlets 5.13 #372 (@blink1073)
- Adopt pydata sphinx theme #371 (@blink1073)
- Use ruff format #370 (@blink1073)
- Update typings for mypy 1.6 #368 (@blink1073)
- Lowercase APPNAME on macOS Homebrew #364 (@singingwolfboy)
(GitHub contributors page for this release)
- Add python 3.12 support #367 (@blink1073)
- Update typings for traitlets 5.11 #366 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @davidbrochart | @jamescooke
- Fix event loop handling #362 (@blink1073)
- Bump actions/checkout from 3 to 4 #361 (@dependabot)
- Adopt sp-repo-review #360 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @dependabot | @pre-commit-ci
- Better handling of config migration #356 (@smartass101)
- Fix write_executable test #351 (@blink1073)
- Use local coverage #349 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @davidbrochart | @jamescooke | @pre-commit-ci | @smartass101
- Fix pywin32 version constraint #347 (@blink1073)
- Add license #344 (@dcsaba89)
- Support platformdirs 3 #342 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @dcsaba89 | @pre-commit-ci
- Add more linting #338 (@blink1073)
(GitHub contributors page for this release)
(GitHub contributors page for this release)
(GitHub contributors page for this release)
- Clear the test environment before each function run #333 (@jasongrout)
- Add check-wheel-contents ignore #332 (@blink1073)
- Remove only absolute import. #331 (@Carreau)
- MAINT: Coro is not coro-function. #330 (@Carreau)
(GitHub contributors page for this release)
@blink1073 | @Carreau | @jasongrout | @pre-commit-ci
- Add spell check and ensure docstrings #327 (@blink1073)
- Maint: Some more precise typing. #326 (@Carreau)
- Add api docs #328 (@blink1073)
(GitHub contributors page for this release)
- Fix lint #325 (@blink1073)
- Adopt ruff and address lint #321 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @jasongrout | @minrk | @pre-commit-ci
- Add run_sync and ensure_async functions #315 (@davidbrochart)
- Add more path tests #316 (@blink1073)
- Clean up workflows and add badges #314 (@blink1073)
- CI Cleanup #312 (@blink1073)
- Clean up workflows and add badges #314 (@blink1073)
(GitHub contributors page for this release)
@blink1073 | @davidbrochart | @pre-commit-ci
We now make the assumption that if we are running in a virtual environment, we should prioritize the environment-level sys.prefix over the user-level paths. Users can opt out of this behavior by setting JUPYTER_PREFER_ENV_PATH, which takes precedence over our autodetection.
In version 5, we introduce a JUPYTER_PLATFORM_DIRS environment variable to opt in to using more appropriate platform-specific directories. We raise a deprecation warning if the variable is not set. In version 6, JUPYTER_PLATFORM_DIRS will be opt-out. In version 7, we will remove the environment variable checks and old directory logic.
We are dropping support for Python 3.7 ahead of its official end of life, to reduce maintenance burden as we add support for Python 3.11.
- Use platformdirs for path locations #292 (@blink1073)
- Try to detect if we are in a virtual environment and change path precedence accordingly #286 (@jasongrout)
- Add current working directory as first config path #291 (@blink1073)
- Fix inclusion of jupyter file and check in CI #276 (@blink1073)
- Bump github/codeql-action from 1 to 2 #308 (@dependabot)
- Bump actions/checkout from 2 to 3 #307 (@dependabot)
- Add dependabot #306 (@blink1073)
- Adopt jupyter releaser #305 (@blink1073)
- Add more typing #304 (@blink1073)
- Require Python 3.8+ #302 (@blink1073)
- Use hatch backend #265 (@blink1073)
- Switch to flit build backend #262 (@blink1073)
- is_hidden: Use normalized paths #271 (@martinRenou)
- Update broken link to
Contributingguide #289 (@jamesr66a)
(GitHub contributors page for this release)
@blink1073 | @bollwyvl | @dependabot | @dlqqq | @gaborbernat | @gutow | @jamesr66a | @jaraco | @jasongrout | @kevin-bates | @maartenbreddels | @martinRenou | @meeseeksmachine | @pre-commit-ci
- Try to detect if we are in a virtual environment and change path precedence accordingly. (#286)
- Update broken link to Contributing guide. (#289)
- Add current working directory as first config path. (#291)
- Use platformdirs for path locations. (#292)
- Fix inclusion of jupyter file and check in CI. (#276)
- Include all files from
jupyter_core. (#253) - Add project URLs to
setup.cfg. (#254) - Set up pre-commit. (#255)
- Add flake8 and mypy settings. (#256)
- Clean up CI. (#258)
- Set proper
sys.argv[0]for subcommand. (#248) - Add explicit encoding in open calls. (#249)
jupyter_config_dir- reorderhome_dirinitialization. (#251)
- Add a workaround for virtualenv for getting the user site directory. (#247)
See the jupyter_core 4.9 milestone on GitHub for the full list of pull requests and issues closed.
- Add Python site user base subdirectories to config and data
user-level paths if
site.ENABLE_USER_SITEis True. One way to disable these directory additions is to set thePYTHONNOUSERSITEenvironment variable. These locations can be customized by setting thePYTHONUSERBASEenvironment variable. (#242)
jupyter_core 4.8.1 was released the same day as 4.8.0 and also included the fix below for the Windows tests. Unfortunately, the 4.8.1 release commit and tag were not pushed to GitHub. We are releasing 4.8.2 so we have a commit and tag in version control.
- Fix windows test regression (#240)
See the jupyter_core 4.8 milestone on GitHub for the full list of pull requests and issues closed.
jupyter-core now has experimental support for PyPy (Python 3.7). Some features are known not to work due to limitations in PyPy, such as hidden file detection on Windows.
- Print an error message instead of an exception when a command is not found (#218)
- Return canonical path when using
%APPDATA%on Windows (#222) - Print full usage on missing or invalid commands (#225)
- Remove dependency on
pywin32package on PyPy (#230) - Update packages listed in
jupyter --version(#232) - Inherit base aliases/flags from traitlets Application, including
--show-configfrom traitlets 5 (#233) - Trigger warning when trying to check hidden file status on PyPy (#238)
- Allow creating user to delete secure file (#213)
See the jupyter_core 4.7 milestone on GitHub for the full list of pull requests and issues closed.
- Add a new
JUPYTER_PREFER_ENV_PATHvariable, which can be set to switch the order of the environment-level path and the user-level path in the Jupyter path hierarchy (e.g.,jupyter --paths). It is considered set if it is a value that is not one of 'no', 'n', 'off', 'false', '0', or '0.0' (case insensitive). If you are running Jupyter in multiple virtual environments as the same user, you will likely want to set this environment variable. - Drop Python 2.x and 3.5 support, as they have reached end of life.
- Add Python 3.9 builds to testing, and expand testing to cover Windows, macOS, and Linux platforms.
jupyter --paths --debugnow explains the environment variables that affect the current path list.- Update the file hidden check on Windows to use new Python features rather than ctypes directly.
- Add conda environment information in
jupyter troubleshoot. - Update
_version.version_infoand_version.__version__to follow Python conventions.
- Changed windows secure_write path to skip all filesystem permission checks when running in insecure mode. Too many exception paths existed for mounted file systems to reliably try to set them before opting out with the insecure write pattern.
- Add ability to allow insecure writes with JUPYTER_ALLOW_INSECURE_WRITES environment variable (#182).
- Docs typo and build fixes
- Added python 3.7 and 3.8 builds to testing
- Tolerate execute bit in owner permissions when validating secure writes (#173).
- Fix project name typo in copyright (#171).
- Unicode characters existing in the user's home directory name are properly handled (#131).
mockis now only required for testing on Python 2 (#157).- Deprecation warnings relative to
_runtime_dir_changedare no longer produced (#158). - The
scriptsdirectory relative to the current python environment is now appended to the search directory for subcommands (#162). - Some utility functions (
exists(),is_hidden(),secure_write()) have been moved fromjupyter_clientandjupyter_servertojupyter_core(#163). - Fix error on Windows when setting private permissions (#166).
jupyter --versionnow tries to show the version number of various other installed Jupyter packages, not justjupyter_core(#136). This will hopefully make it clearer that there are various packages with their own version numbers.- Allow a
JUPYTER_CONFIG_PATHenvironment variable to specify a search path of additional locations for config (#139). jupyter subcommandno longer modifies thePATHenvironment variable when it runsjupyter-subcommand(#148).- Jupyter's 'runtime' directory no longer uses
XDG_RUNTIME_DIR(#143). While it has some attractive properties, it has led to various problems; see the pull request for details. - Fix
JupyterAppto respect theraise_config_file_errorstraitlet (#149). - Various improvements to the bash completion scripts in this repository (#125, #126).
- The
setup.pyscript now always uses setuptools, like most other Jupyter projects (#147). - The LICENSE file is included in wheels (#133).
jupyter troubleshootgets the list of packages from the Python environment it's in, by usingsys.executableto callpip list(#104).- Added utility function
ensure_dir_exists, and switched to using it over the one from ipython_genutils, which does permissions wrong (#113). - Avoid creating the
~/.ipythondirectory when checking if it exists for config migration (#118). - Fix mistaken description in zsh completions (#98).
- Fix subcommand tests on Windows (#103).
- The README now describes how to work on
jupyter_coreand build the docs (#110). - Fix a broken link to a release in the docs (#109).
- Add
JUPYTER_NO_CONFIGenvironment variable for disabling all Jupyter configuration. - More detailed error message when failing to launch subcommands.
- Fix error message on Windows when subcommand not found.
- Correctly display PATH in
jupyter troubleshooton Windows.
- Make
jupyterdirectory top priority in search path for subcommands, so thatjupyter-subcommandnext tojupyterwill always be picked if present. - Avoid using
shell=Truefor subcommand dispatch on Windows.
- Include symlink directory and real location on subcommand PATH when
jupyteris a symlink.
- Add
jupyter.pymodule, so thatpython -m jupyteralways works. - Add prototype
jupyter troubleshootcommand for displaying environment info. - Ensure directory containing
jupyterexecutable is included when dispatching subcommands. - Unicode fixes for Legacy Python.
- fix typo preventing migration when custom.css is missing
- fix subcommands on Windows (yes, again)
- fix migration when custom.js/css are not present
- fix subcommands on Windows (again)
- ensure
jupyter --versionoutputs to stdout
- setuptools fixes needed to run on Windows
- fixes for jupyter-migrate
This is the first release of the jupyter-core package.