- 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
Contributing
guide #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_dir
initialization. (#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_SITE
is True. One way to disable these directory additions is to set thePYTHONNOUSERSITE
environment variable. These locations can be customized by setting thePYTHONUSERBASE
environment 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
pywin32
package on PyPy (#230) - Update packages listed in
jupyter --version
(#232) - Inherit base aliases/flags from traitlets Application, including
--show-config
from 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_PATH
variable, 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 --debug
now 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_info
and_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).
mock
is now only required for testing on Python 2 (#157).- Deprecation warnings relative to
_runtime_dir_changed
are no longer produced (#158). - The
scripts
directory 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_client
andjupyter_server
tojupyter_core
(#163). - Fix error on Windows when setting private permissions (#166).
jupyter --version
now 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_PATH
environment variable to specify a search path of additional locations for config (#139). jupyter subcommand
no longer modifies thePATH
environment 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
JupyterApp
to respect theraise_config_file_errors
traitlet (#149). - Various improvements to the bash completion scripts in this repository (#125, #126).
- The
setup.py
script now always uses setuptools, like most other Jupyter projects (#147). - The LICENSE file is included in wheels (#133).
jupyter troubleshoot
gets the list of packages from the Python environment it's in, by usingsys.executable
to 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
~/.ipython
directory 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_core
and build the docs (#110). - Fix a broken link to a release in the docs (#109).
- Add
JUPYTER_NO_CONFIG
environment 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 troubleshoot
on Windows.
- Make
jupyter
directory top priority in search path for subcommands, so thatjupyter-subcommand
next tojupyter
will always be picked if present. - Avoid using
shell=True
for subcommand dispatch on Windows.
- Include symlink directory and real location on subcommand PATH when
jupyter
is a symlink.
- Add
jupyter.py
module, so thatpython -m jupyter
always works. - Add prototype
jupyter troubleshoot
command for displaying environment info. - Ensure directory containing
jupyter
executable 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 --version
outputs to stdout
- setuptools fixes needed to run on Windows
- fixes for jupyter-migrate
This is the first release of the jupyter-core package.