This release improves PEP 723 support, including adding dependencies to the noxfile itself ("plugins"). It adds the long-awaited "requires" option, allowing sessions to require other sessions. And it brings further improvements to the pyproject.toml
support, including helpers for dependency-groups and Python version lists.
We'd like to thank the following folks who contributed to this release:
- @btemplep (first contribution)
- @chirizxc (first contribution)
- @davidhewitt (first contribution)
- @gschaffner (first contribution)
- @henryiii
- @oliversen (first contribution)
New features:
- Support PEP 723 noxfiles by @henryiii in #881
- Expose main as
nox.main
by @henryiii in #878 (followup fix: #884) - Support session dependencies (
requires
) by @gschaffner in #631 - Helper to get dependency-groups by @henryiii in #876
- Helper to get the Python listing by @henryiii in #877
- Add a
"pyproject.toml"
default forload_toml
by @henryiii in #917
Bugfixes:
- Correct virtualenv bin dir under mingw python by @davidhewitt in #901
- Allow
pypy-*
to be used as well forpypy*
(matching GHA) by @henryiii in #913 - Don't trigger a background update process for virtualenv by @henryiii in #918
- Include encoding for consistent behavior (default in Python 3.15+) by @henryiii in #891
- Outer env issues fixed by @henryiii in #874
- Support noxfile being a symlink by @henryiii in #829
- Drop PyPy from the default list for the GitHub Action by @henryiii in #916
Bugfixes related to uv support:
- Catch
PermissionError
from popen when UV is not installed by @btemplep in #908 - Use
uv python install
only with uv backend by @oliversen in #900 - Handle
"uvx"
like"uv"
by @henryiii in #920 - Support broken uv (via pyenv) by @henryiii in #922
Tox-to-nox script:
- Drop support for tox 3 by @henryiii in #910
- Switch pkgutil for importlib-resources by @henryiii in #887
- Correctly separate command-line arguments by @chirizxc in #906
Improved noxfile validation:
- Error if invalid
reuse_venv
set by @henryiii in #872 - Error with helpful message if invalid option is set via
nox.options
by @henryiii in #871 (followup fix: #921) - Validate entries in
nox.config
, too, using attrs by @henryiii in #880
Internal changes:
- Add more Ruff checks and fixes by @henryiii in #893
- Cleanup symlink noxfile code by @henryiii in #865
- Drop some type ignores for colorlog by @henryiii in #888
- Limit the visible items for tab completion by @henryiii in #889
- More typing and test improvements by @henryiii in #890
- Some extra simplifications from Ruff by @henryiii in #870
- Use dependency-groups by @henryiii in #873
- Pull out env creation into helper method by @henryiii in #912
- Pulled out
get_virtualenv
& better typing by @henryiii in #882 - Fix broken mock on CPython 3.12.8+ in tests by @henryiii in #903
- Statically type tests by @henryiii in #894
- Use
tmp_path
instead oftmpdir
in tests by @henryiii in #895