Changelog¶
2025.11.12¶
This is a small release to fix a warning when running in script mode before we drop Python 3.8.
We’d like to thank the following folks who contributed to this release:
@henryiii
Bugfixes:
Avoid warnings when running in script mode by @henryiii in https://github.com/wntrblm/nox/pull/1025
nox --report <file>should supportPathby @henryiii in https://github.com/wntrblm/nox/pull/1026Install env was typed differently by @henryiii in https://github.com/wntrblm/nox/pull/1028
Internal changes:
pytest
log_levelis better thanlog_cli_levelby @henryiii in https://github.com/wntrblm/nox/pull/1029Use last intel macOS image by @henryiii in https://github.com/wntrblm/nox/pull/1031
Add a few more passing ruff checks by @henryiii in https://github.com/wntrblm/nox/pull/1030
2025.10.16¶
This is a quick release to make our new dependency, pbs-installer, optional. This is only needed to install Python if you are not using the uv backend. We’ve also added the time taken to the output when it’s over a second.
We’d like to thank the following folks who contributed to this release:
@henryiii
Changes:
Make pbs-installer an optional dependency by @henryiii in https://github.com/wntrblm/nox/pull/1017
Include time on longer runs (adds
humanizedependency) by @henryiii in https://github.com/wntrblm/nox/pull/1014
Internal changes:
Run conda on Windows/Linux again by @henryiii in https://github.com/wntrblm/nox/pull/1015
2025.10.14¶
This release updates the default for the GitHub Action to target the current range of recommended Pythons (3.10-3.14). There’s now a mechanism to control if nox downloads Python (even when not using uv). Several fixes include better free-threading support, custom filenames in script mode, and support for GitHub Actions Windows ARM runners.
We’d like to thank the following folks who contributed to this release:
@agriyakhetarpal (first contribution)
@henryiii
@IvanIsCoding (first contribution)
@jbdyn (first contribution)
@johnthagen
@saucoide
@shenxianpeng (first contribution)
@Spacetown (first contribution)
@zzzeek (first contribution)
Features:
Add
--download-pythonpython option by @saucoide in https://github.com/wntrblm/nox/pull/989Add
session.env_dirto get the Path to the environment by @jbdyn in https://github.com/wntrblm/nox/pull/974
Changes:
GitHub Action 3.10-3.14 default by @henryiii in https://github.com/wntrblm/nox/pull/1003
Percolate the
verboseglobal option to thesilentargument for session installation commands, and document it by @agriyakhetarpal in https://github.com/wntrblm/nox/pull/983Disallow abbreviated options by @henryiii in https://github.com/wntrblm/nox/pull/973
Log output of failed process by @jbdyn in https://github.com/wntrblm/nox/pull/974
Use a separate logging level (
SESSION_INFO) for session info instead of warning by @Spacetown in https://github.com/wntrblm/nox/pull/990
Bugfixes:
Support scripts with custom names by @henryiii in https://github.com/wntrblm/nox/pull/1007
Correctly match free-threaded python versions by @zzzeek in https://github.com/wntrblm/nox/pull/999
Let uv replace the directory instead of deleting it ourselves by @henryiii in https://github.com/wntrblm/nox/pull/981
Tighten type for
venv_backendby @henryiii in https://github.com/wntrblm/nox/pull/967GitHub Actions Windows ARM support by @henryiii in https://github.com/wntrblm/nox/pull/1002
Show a warning (eventually error) if a duplicate session is encountered by @henryiii in https://github.com/wntrblm/nox/pull/1013
Fix validation error for
nox.options.keywordsby @henryiii in https://github.com/wntrblm/nox/pull/1011
Documentation:
Add
--scripttouv runinline metadata for nox-uv example by @johnthagen in https://github.com/wntrblm/nox/pull/984Document
nox-uvthird party package by @johnthagen in https://github.com/wntrblm/nox/pull/978Recommend
--lockedover--frozenforuv syncby @johnthagen in https://github.com/wntrblm/nox/pull/972Tweak the grammar in a comment in tasks.py by @brettcannon in https://github.com/wntrblm/nox/pull/987
Add rustworkx as an example user by @IvanIsCoding in https://github.com/wntrblm/nox/pull/975
Update badge from black to ruff by @shenxianpeng in https://github.com/wntrblm/nox/pull/971
Internal changes:
Hide new coverage warning on 3.14 by @henryiii in https://github.com/wntrblm/nox/pull/980
Correct minimum versions and test by @henryiii in https://github.com/wntrblm/nox/pull/962
CI ensure there are no duplicate log handlers by @saucoide in https://github.com/wntrblm/nox/pull/991
Add 3.14 beta 1 support by @henryiii in https://github.com/wntrblm/nox/pull/970
Add better reprs for some internal classes by @henryiii in https://github.com/wntrblm/nox/pull/966
Drop Windows 2019 by @henryiii in https://github.com/wntrblm/nox/pull/985
Modernize and remove rc conda channel by @henryiii in https://github.com/wntrblm/nox/pull/964
Restore minimums test by @henryiii in https://github.com/wntrblm/nox/pull/982
Use dict instead of OrderedDict by @henryiii in https://github.com/wntrblm/nox/pull/963
Add conda marker to tests by @henryiii in https://github.com/wntrblm/nox/pull/969
Clear the registry in tests by @henryiii in https://github.com/wntrblm/nox/pull/968
2025.05.01¶
This is a bugfix release that primarily adds support for uv 0.7+. A few other small fixes were made.
We’d like to thank the following folks who contributed to this release:
@chirizxc
@gschaffner
@henryiii
@living180
@Spectre5 (first contribution)
Bugfixes:
uv versionis nowuv self version, respectUVby @henryiii and @Spectre5 in https://github.com/wntrblm/nox/pull/955Add
UV_PYTHONto disallowed vars by @henryiii in https://github.com/wntrblm/nox/pull/959Never ignore URL dependencies in PEP 723 noxfiles by @gschaffner in https://github.com/wntrblm/nox/pull/935
Support forcing Python on parametrized session by @henryiii in https://github.com/wntrblm/nox/pull/958
Fix
conda_installissue with newer conda (only Unix) by @henryiii in https://github.com/wntrblm/nox/pull/957Show skip reason by default by @chirizxc in https://github.com/wntrblm/nox/pull/941
Support
Pathfor envdir by @henryiii in https://github.com/wntrblm/nox/pull/932Use Python 3.12 for action, allow 3.13, drop 3.8 from auto versions by @henryiii in https://github.com/wntrblm/nox/pull/946
Documentation:
Fix a typo in the changelog by @gschaffner in https://github.com/wntrblm/nox/pull/936
Update uv recipe by @henryiii in https://github.com/wntrblm/nox/pull/933
Fix parametrized session tagging example by @living180 in https://github.com/wntrblm/nox/pull/942
uv now supports
pip install .reinstallation by @henryiii in https://github.com/wntrblm/nox/pull/947
Internal changes:
Use PEP 639 license info by @henryiii in https://github.com/wntrblm/nox/pull/956
Make test skips a bit smarter by @henryiii in https://github.com/wntrblm/nox/pull/929
Add our own requirements to conda too by @henryiii in https://github.com/wntrblm/nox/pull/945
2025.02.09¶
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 https://github.com/wntrblm/nox/pull/881
Expose main as
nox.mainby @henryiii in https://github.com/wntrblm/nox/pull/878 (followup fix: https://github.com/wntrblm/nox/pull/884)Support session dependencies (
requires) by @gschaffner in https://github.com/wntrblm/nox/pull/631Helper to get dependency-groups by @henryiii in https://github.com/wntrblm/nox/pull/876
Helper to get the Python listing by @henryiii in https://github.com/wntrblm/nox/pull/877
Add a
"pyproject.toml"default forload_tomlby @henryiii in https://github.com/wntrblm/nox/pull/917
Bugfixes:
Correct virtualenv bin dir under mingw python by @davidhewitt in https://github.com/wntrblm/nox/pull/901
Allow
pypy-*to be used as well forpypy*(matching GHA) by @henryiii in https://github.com/wntrblm/nox/pull/913Don’t trigger a background update process for virtualenv by @henryiii in https://github.com/wntrblm/nox/pull/918
Include encoding for consistent behavior (default in Python 3.15+) by @henryiii in https://github.com/wntrblm/nox/pull/891
Outer env issues fixed by @henryiii in https://github.com/wntrblm/nox/pull/874
Support noxfile being a symlink by @henryiii in https://github.com/wntrblm/nox/pull/829
Drop PyPy from the default list for the GitHub Action by @henryiii in https://github.com/wntrblm/nox/pull/916
Bugfixes related to uv support:
Catch
PermissionErrorfrom popen when UV is not installed by @btemplep in https://github.com/wntrblm/nox/pull/908Use
uv python installonly with uv backend by @oliversen in https://github.com/wntrblm/nox/pull/900Handle
"uvx"like"uv"by @henryiii in https://github.com/wntrblm/nox/pull/920Support broken uv (via pyenv) by @henryiii in https://github.com/wntrblm/nox/pull/922
Tox-to-nox script:
Drop support for tox 3 by @henryiii in https://github.com/wntrblm/nox/pull/910
Switch pkgutil for importlib-resources by @henryiii in https://github.com/wntrblm/nox/pull/887
Correctly separate command-line arguments by @chirizxc in https://github.com/wntrblm/nox/pull/906
Improved noxfile validation:
Error if invalid
reuse_venvset by @henryiii in https://github.com/wntrblm/nox/pull/872Error with helpful message if invalid option is set via
nox.optionsby @henryiii in https://github.com/wntrblm/nox/pull/871 (followup fix: https://github.com/wntrblm/nox/pull/921)Validate entries in
nox.config, too, using attrs by @henryiii in https://github.com/wntrblm/nox/pull/880
Internal changes:
Add more Ruff checks and fixes by @henryiii in https://github.com/wntrblm/nox/pull/893
Cleanup symlink noxfile code by @henryiii in https://github.com/wntrblm/nox/pull/865
Drop some type ignores for colorlog by @henryiii in https://github.com/wntrblm/nox/pull/888
Limit the visible items for tab completion by @henryiii in https://github.com/wntrblm/nox/pull/889
More typing and test improvements by @henryiii in https://github.com/wntrblm/nox/pull/890
Some extra simplifications from Ruff by @henryiii in https://github.com/wntrblm/nox/pull/870
Use dependency-groups by @henryiii in https://github.com/wntrblm/nox/pull/873
Pull out env creation into helper method by @henryiii in https://github.com/wntrblm/nox/pull/912
Pulled out
get_virtualenv& better typing by @henryiii in https://github.com/wntrblm/nox/pull/882Fix broken mock on CPython 3.12.8+ in tests by @henryiii in https://github.com/wntrblm/nox/pull/903
Statically type tests by @henryiii in https://github.com/wntrblm/nox/pull/894
Use
tmp_pathinstead oftmpdirin tests by @henryiii in https://github.com/wntrblm/nox/pull/895
2024.10.09¶
This release adds explicit support for Python 3.13 and drops support for running Nox itself under Python 3.7. Note that you can still use 3.7 in your Nox sessions, we just dropped support for installing & running nox itself in 3.7.
We’d like to thank the following folks who contributed to this release:
@edgarrmondragon
@ember91
@henryiii
@hmd101
@KasperZutterman
@living180
@mayeut
@saucoide
@Wurstnase
New features:
Allow setting tags on parametrized sessions by @living180 in https://github.com/wntrblm/nox/pull/832
Added support for
uv-installed pythons by @saucoide in https://github.com/wntrblm/nox/pull/842Added
session.install_and_run_scriptby @henryiii in https://github.com/wntrblm/nox/pull/847
Bugfixes:
Updated type annotation of
stderrparameter to make it optional by @edgarrmondragon in https://github.com/wntrblm/nox/pull/835Removed
add_timestampfromnoxfile.optionsby @Wurstnase in https://github.com/wntrblm/nox/pull/856
Documentation:
Added warning about uv and local packages by @henryiii in https://github.com/wntrblm/nox/pull/830
Fixed contribution guidelines by @Wurstnase in https://github.com/wntrblm/nox/pull/850
Fixed typos by @ember91 in https://github.com/wntrblm/nox/pull/839
Fixed typos in cookbook by @hmd101 in https://github.com/wntrblm/nox/pull/837
Added missing cookbook recipe snippet imports by @KasperZutterman in https://github.com/wntrblm/nox/pull/853
Cleaned up
devrecipe by @henryiii in https://github.com/wntrblm/nox/pull/862Added note about
uv reinstallby @henryiii in https://github.com/wntrblm/nox/pull/863Added
uv syncexample by @henryiii in https://github.com/wntrblm/nox/pull/864
Internal changes:
Use default action tests for macos-14 by @mayeut in https://github.com/wntrblm/nox/pull/824
Added 3.13 to the action defaults by @henryiii in https://github.com/wntrblm/nox/pull/846
Dropped Python 3.7 by @henryiii in https://github.com/wntrblm/nox/pull/822
Included 3.13 in classifiers by @henryiii in https://github.com/wntrblm/nox/pull/851
Use
uvif available in action by @henryiii in https://github.com/wntrblm/nox/pull/831Run tests with Python 3.13 by @edgarrmondragon in https://github.com/wntrblm/nox/pull/834
Updated
macos-latesttomacos-14by @henryiii in https://github.com/wntrblm/nox/pull/821Use
miniforgeby @henryiii in https://github.com/wntrblm/nox/pull/854Use
astral-sh/setup-uvby @henryiii in https://github.com/wntrblm/nox/pull/859Dropped PyPy 3.9 from test matrix by @henryiii in https://github.com/wntrblm/nox/pull/858
2024.04.15¶
We’d like to thank the following folks who contributed to this release:
@cjolowicz
@henryiii
@mayeut
New features:
Added support for PEP 723 (inline script metadata) with
nox.project.load_tomlby @henryiii in https://github.com/wntrblm/nox/pull/811Added support for
micromambaby @henryiii in https://github.com/wntrblm/nox/pull/807Added
venv_backendproperty to sessions by @henryiii in https://github.com/wntrblm/nox/pull/798Added the ability to use
Noneto remove environment variables by @henryiii in https://github.com/wntrblm/nox/pull/812Added support for skipping sessions by default using
default=Falseby @henryiii in https://github.com/wntrblm/nox/pull/810
Bugfixes:
Use static arguments instead of
**kwargsby @henryiii in https://github.com/wntrblm/nox/pull/815Do not depend on
pipxin Nox GitHub action by @mayeut in https://github.com/wntrblm/nox/pull/768Disallow
UV_SYSTEM_PYTHONby @henryiii in https://github.com/wntrblm/nox/pull/817Ensure ‘uv’ always works in a uv venv by @henryiii in https://github.com/wntrblm/nox/pull/818
Look for
uvnext topythonif it’s not onPATHby @cjolowicz in https://github.com/wntrblm/nox/pull/795Fixed missing f-string in
--helpmessage by @cjolowicz in https://github.com/wntrblm/nox/pull/790Don’t error if not installing to passthrough by @henryiii in https://github.com/wntrblm/nox/pull/809
Avoid mixing
venvandcondafrom environment by @henryiii in https://github.com/wntrblm/nox/pull/804Skip test for conda env when
condaisn’t installed by @cjolowicz in https://github.com/wntrblm/nox/pull/794
2024.03.02¶
We’d like to thank the following folks who contributed to this release:
@DiddiLeija
@MicaelJarniac
@chrysle
@edgarrmondragon
@fazledyn-or
@franekmagiera
@frenzymadness
@henryiii
@johnthagen
@mayeut
@patrick91
@q0w
@samypr100
@scop
@stasfilin
@stefanv
New Features:
Add
uvbackend by @henryiii in https://github.com/wntrblm/nox/pull/762Add venv backend fallback by @henryiii in https://github.com/wntrblm/nox/pull/787
Add option
--reuse-venv {yes,no,never,always}by @samypr100 in https://github.com/wntrblm/nox/pull/730Add environment variable
NOX_DEFAULT_VENV_BACKENDfor default backend by @edgarrmondragon in https://github.com/wntrblm/nox/pull/780Rename
session.run_alwaystosession.run_installby @henryiii in https://github.com/wntrblm/nox/pull/770Add more option argument completions by @scop in https://github.com/wntrblm/nox/pull/707
Implement
tox-to-noxfor tox 4 by @frenzymadness in https://github.com/wntrblm/nox/pull/687Allow
--force-pythonon unparametrized sessions by @chrysle in https://github.com/wntrblm/nox/pull/756Add
include_outer_envparameter tosession.runand friends by @franekmagiera in https://github.com/wntrblm/nox/pull/652GitHub Action: Add support for the
~version specifier by @mayeut in https://github.com/wntrblm/nox/pull/712
Bugfixes:
Rebuild environment when changing to an incompatible backend type by @henryiii in https://github.com/wntrblm/nox/pull/781
Warn user when first argument to
session.runis a list by @stefanv in https://github.com/wntrblm/nox/pull/786Allow overriding
nox.options.sessionswith--tagsby @q0w in https://github.com/wntrblm/nox/pull/684Allow overriding
NO_COLORwith--force-colorby @stasfilin in https://github.com/wntrblm/nox/pull/723Fix
nox.options.error_on_missing_interpreterswhen running in CI by @samypr100 in https://github.com/wntrblm/nox/pull/725
Documentation Improvements:
Create an official Nox badge by @johnthagen in https://github.com/wntrblm/nox/pull/714 and https://github.com/wntrblm/nox/pull/715
Add recipe for generating a matrix with GitHub Actions by @henryiii in https://github.com/wntrblm/nox/pull/696
Update some links by @henryiii in https://github.com/wntrblm/nox/pull/774
Internal Changes:
fix: always pull versions from metadata by @henryiii in https://github.com/wntrblm/nox/pull/782
chore: ruff moved to astral-sh by @henryiii in https://github.com/wntrblm/nox/pull/722
Use double quotes instead of single in github actions examples by @patrick91 in https://github.com/wntrblm/nox/pull/724
tests: fixes when running locally by @henryiii in https://github.com/wntrblm/nox/pull/721
chore: modernize Ruff config, bump pre-commit by @henryiii in https://github.com/wntrblm/nox/pull/744
chore(deps): bump actions/checkout from 3 to 4 by @dependabot in https://github.com/wntrblm/nox/pull/738
chore: ruff-format by @henryiii in https://github.com/wntrblm/nox/pull/745
chore(action): update default python-versions by @mayeut in https://github.com/wntrblm/nox/pull/767
chore(ci): allow manual runs on branches without a PR by @mayeut in https://github.com/wntrblm/nox/pull/766
chore(ci): bump actions/setup-python & conda-incubator/setup-miniconda by @mayeut in https://github.com/wntrblm/nox/pull/765
ci: group dependabot updates by @henryiii in https://github.com/wntrblm/nox/pull/755
fix(types): improve typing by @henryiii in https://github.com/wntrblm/nox/pull/720
ci: fix coverage combine for different OS’s by @henryiii in https://github.com/wntrblm/nox/pull/778
ci: update to artifacts v2 by @henryiii in https://github.com/wntrblm/nox/pull/772
ci: remove skipped job & combine (faster) by @henryiii in https://github.com/wntrblm/nox/pull/771
chore: cleanup Ruff a bit by @henryiii in https://github.com/wntrblm/nox/pull/783
chore(deps): bump the actions group with 2 updates by @dependabot in https://github.com/wntrblm/nox/pull/784
style: add type hints, update few functions by @stasfilin in https://github.com/wntrblm/nox/pull/728
Include Python 3.12 in GHA by @DiddiLeija in https://github.com/wntrblm/nox/pull/743
Allow tests to pass in environments where NO_COLOR=1 is set by @edgarrmondragon in https://github.com/wntrblm/nox/pull/777
tests: support running when the Python launcher for UNIX is present by @henryiii in https://github.com/wntrblm/nox/pull/775
chore: drop unneeded config option by @henryiii in https://github.com/wntrblm/nox/pull/773
Bump minimum virtualenv to 20.14.1 by @johnthagen in https://github.com/wntrblm/nox/pull/747
chore: save session name in
Funcby @MicaelJarniac in https://github.com/wntrblm/nox/pull/718Removed the problematic Python 2.7.18 version by @stasfilin in https://github.com/wntrblm/nox/pull/726
Fixed Improper Method Call: Replaced
NotImplementedErrorby @fazledyn-or in https://github.com/wntrblm/nox/pull/749
2023.04.22¶
We’d like to thank the following folks who contributed to this release:
@crwilcox
@dcermak
@edgarrmondragon
@FollowTheProcess
@henryiii
@reaperhulk
@scop
New Features:
Add support for
NOXPYTHON,NOXEXTRAPYTHONandNOXFORCEPYTHONby @edgarrmondragon in https://github.com/wntrblm/nox/pull/688feat: –json –list-sessions by @henryiii in https://github.com/wntrblm/nox/pull/665
Documentation Improvements:
style: spelling and grammar fixes by @scop in https://github.com/wntrblm/nox/pull/682
Add invite link to the discord server to CONTRIBUTING.md by @dcermak in https://github.com/wntrblm/nox/pull/679
Internal Changes:
chore: update pre-commit hooks by @edgarrmondragon in https://github.com/wntrblm/nox/pull/690
chore: move to using Ruff by @henryiii in https://github.com/wntrblm/nox/pull/691
Fix assertion in GHA tests by @FollowTheProcess in https://github.com/wntrblm/nox/pull/670
ci: some minor fixes by @henryiii in https://github.com/wntrblm/nox/pull/675
Constrain tox to <4.0.0 and minor fixes by @FollowTheProcess in https://github.com/wntrblm/nox/pull/677
chore: long term fix for bugbear opinionated checks by @henryiii in https://github.com/wntrblm/nox/pull/678
chore: switch to hatchling by @henryiii in https://github.com/wntrblm/nox/pull/659
Don’t run python 2.7 virtualenv tests for newer versions of virtualenv by @crwilcox in https://github.com/wntrblm/nox/pull/702
allow the use of argcomplete 3 by @reaperhulk in https://github.com/wntrblm/nox/pull/700
fix: enable
list_sessionsfor session completion by @scop in https://github.com/wntrblm/nox/pull/699chore: remove 3.6 tests, min version is 3.7 by @crwilcox in https://github.com/wntrblm/nox/pull/703
2022.11.21¶
We’d like to thank the following folks who contributed to this release:
@airtower-luna
@DiddiLeija
@FollowTheProcess
@henryiii
@hynek
@Julian
@nhtsai
@paw-lu
New features:
Include Python 3.11 classifier & testing (#655)
Improvements:
Fixed a few typos (#661, #660)
Drop dependency on
py(#647)nox.session.runnow accepts apathlib.Pathfor the command (#649)Document
nox.session.run’sstdoutandstderrarguments and add example of capturing output (#651)
Bugfixes:
GitHub Action: replace deprecated set-output command (#668)
GitHub Action: point docs to 2022.8.7 not latest (#664)
Docs: fix argument passing in
session.posargsexample (#653)Include GitHub action helper in
MANIFEST.in(#645)
Internal changes:
GitHub Action: move to 3.11 final (#667)
Cleanup Python 2 style code (#657)
Update tools used in pre-commit (#646, #656)
2022.8.7¶
We’d like to thank the following folks who contributed to this release:
@CN-M
@crwilcox
@DiddiLeija
@edgarrmondragon
@FollowTheProcess
@hauntsaninja
@henryiii
@johnthagen
@jwodder
@ktbarrett
@mayeut
@meowmeowmeowcat
@NickleDave
@raddessi
@zhanpon
Removals:
Drop support for Python 3.6 (#526)
Disable running
session.installoutside a venv (#580)
New features:
Official Nox GitHub Action (#594, #606, #609, #620, #629, #637, #632, #633)
Missing interpreters now error the session on CI by default (#567)
Allow configurable child shutdown timeouts (#565)
Add session tags (#627)
Add short
-Nalias for--no-reuse-existing-virtualenvs(#639)Export session name in
NOX_CURRENT_SESSIONenvironment variable (#641)
Improvements:
Add
VENV_DIRtodevsession in cookbook (#591)Fix typo in
tutorial.rst(#586)Use consistent spelling for Nox in documentation (#581)
Support descriptions in
tox-to-nox(#575)Document that
silent=Truereturns the command output (#578)Support argcomplete v2 (#564)
Bugfixes:
Fix incorrect
FileNotFoundErrorinload_nox_module(#571)
Internal changes:
Update the classifiers, documentation, and more to point to the new Winterbloom location (#587)
Support PEP 621 (
pyproject.toml) (#616, #619)Configure language code to avoid warning on sphinx build (#626)
Use latest GitHub action runners and include macOS (#613)
Jazz up the README with some badges/logo etc. (#605, #614)
Prefer type checking against Jinja2 (#610)
Introduce GitHub issue forms (#600, #603, #608)
Full strictness checking on mypy (#595, #596)
Drop 99% coverage threshold flag for 3.10 in noxfile (#593)
Create a
requirements-dev.txt(#582)Use
myst-parserfor Markdown docs (#561)
2022.1.7¶
Claudio Jolowicz, Diego Ramirez, and Tom Fleet have become maintainers of Nox. We’d like to thank the following folks who contributed to this release:
@brettcannon
@cjolowicz
@dhermes
@DiddiLeija
@FollowTheProcess
@franekmagiera
@henryiii
@jugmac00
@maciej-lech
@nawatts
@Tolker-KU
New features:
Add
mambabackend (#444, #448, #546, #551)Add
session.debugto show debug-level messages (#489)Add cookbook page to the documentation (#483)
Add support for the
FORCE_COLORenvironment variable (#524, #548)Allow using
session.chdir()as a context manager (#543)Deprecate use of
session.install()without a valid backend (#537)
Improvements:
Test against Python 3.10 (#495, #502, #506)
Add support for the
channeloption when using thecondabackend (#522)Show more specific error message when the
--keywordsexpression contains a syntax error (#493)Include reference to
session.notify()in tutorial page (#500)Document how
session.run()fails and how to handle failures (#533)Allow the list of sessions to be empty (#523)
Bugfixes:
Fix broken temporary directory when using
session.chdir()(#555, #556)Set the
CONDA_PREFIXenvironment variable (#538)Fix
bindirectory for thecondabackend on Windows (#535)
Internal changes:
Replace deprecated
load_modulewithexec_module(#498)Include tests with source distributions (#552)
Add missing copyright notices (#509)
Use the new ReadTheDocs configurations (#527)
Bump the Python version used by ReadTheDocs to 3.8 (#496)
Improve the Sphinx config file (#499)
Update all linter versions (#528)
Add pre-commit and new checks (#530, #539)
Check
MANIFEST.induring CI (#552)Remove redundant
LICENSEfromMANIFEST.in(#505)Make
setuptoolsuse the standard library’sdistutilsto work aroundvirtualenvbug. (#547, #549)Use
shlex.join()when logging a command (#490)Use
shutil.rmtree()over shelling out torm -rfin noxfile (#519)Fix missing Python 3.9 CI session (#529)
Unpin docs session and add
--error-on-missing-interpreterto CI (#532)Enable color output from Nox, pytest, and pre-commit during CI (#542)
Only run
conda_testssession by default if user has conda installed (#521)Update dependencies in
requirements-conda-test.txt(#536)
2021.10.1¶
New features:
Add
session.warnto output warnings (#482)Add a shared session cache directory (#476)
Add
session.invoked_from(#472)
Improvements:
Conda logs now respect
nox.options.verbose(#466)Add
session.notifyexample to docs (#467)Add friendlier message if no
noxfile.pyis found (#463)Show the
noxfile.pydocstring when usingnox -l(#459)Mention more projects that use Nox in the docs (#460)
Internal changes:
Move configs into pyproject.toml or setup.cfg (flake8) (#484)
Decouple
test_session_completerfrom project level noxfile (#480)Run Flynt to convert str.format to f-strings (#464)
Add python 3.10.0-rc2 to GitHub Actions (#475, #479)
Simplify CI build (#461)
Use PEP 517 build system, remove
setup.py, usesetup.cfg(#456, #457, #458)Upgrade to mypy 0.902 (#455)
Special thanks to our contributors:
@henryiii
@cjolowicz
@FollowTheProcess
@franekmagiera
@DiddiLeija
2021.6.12¶
Fix crash on Python 2 when reusing environments. (#450)
Hide staleness check behind a feature flag. (#451)
Group command-line options in
--helpmessage by function. (#442)Avoid polluting tests with a .nox directory. (#445)
2021.6.6¶
Add option
--no-installto skip install commands in reused environments. (#432)Add option
--force-pythonas shorthand for--pythonand--extra-python. (#427)Do not reuse environments if the interpreter or the environment type has changed. (#418, #425, #428)
Allow common variations in session names with parameters, such as double quotes instead of single quotes. Session names are considered equal if they produce the same Python AST. (#417, #434)
Preserve the order of parameters in session names. (#401)
Allow
@nox.parametrizeto select the session Python. (#413)Allow passing
posargswhen scheduling another session viasession.notify. (#397)Prevent sessions from modifying each other’s posargs. (#439)
Add
nox.needs_versionto specify Nox version requirements. (#388)Add
session.nameto get the session name. (#386)Gracefully shutdown child processes. (#393)
Decode command output using the system locale if UTF-8 decoding fails. (#380)
Fix creation of Conda environments when
venv_paramsis used. (#420)Various improvements to Nox’s type annotations. (#376, #377, #378)
Remove outdated notes on Windows compatibility from the documentation. (#382)
Increase Nox’s test coverage on Windows. (#300)
Avoid mypy searching for configuration files in other directories. (#402)
Replace AppVeyor and Travis CI by GitHub Actions. (#389, #390, #403)
Allow colorlog <7.0.0. (#431)
Drop contexter from test requirements. (#426)
Upgrade linters to the latest version. (#438)
2020.12.31¶
Fix
NoxColoredFormatter.format(#374)Use conda remove to clean up existing conda environments (#373)
Support users specifying an undeclared parametrization of python via
--extra-python(#361)Support double-digit minor version in
pythonkeyword (#367)Add
py.typedtomanifest.in(#360)Update Nox to latest supported python versions. (#362)
Decouple merging of
--pythonwithnox.optionsfrom--sessionsand--keywords(#359)Do not merge command-line options in place (#357)
2020.8.22¶
conda_installandinstallargs are now automatically double-quoted when needed. (#312)Offline mode is now auto-detected by default by
conda_install. This allows users to continue executing Nox sessions on already installed environments. (#314)Fix the default paths for Conda on Windows where the
python.exefound was not the correct one. (#310)Add the
--add-timestampoption (#323)Add
Session.run_always(). (#331)
2020.5.24¶
Add new options for
venv_backend, including the ability to set the backend globally. (#326)Fix various typos in the documentation. (#325, #326, #281)
Add
session.create_tmp. (#320)Place all of Nox’s command-line options into argparse groups. (#306)
Add the
--pythonscommand-line option to allow specifying which versions of Python to run. (#304)Add a significant amount of type annotations. (#297, #294, #290, #282, #274)
Stop building universal wheels since we don’t support Python 2. (#293)
Add the ability to specify additional options for the virtualenv backend using
venv_params. (#280)Prefer
importlib.metadatafor metadata loading, removing our dependency onpkg_resources. (#277)Add OmegaConf and Hydra to list of projects that use Nox. (#279)
Use a more accurate error message, along with the cause, if loading of noxfile runs into error. (#272)
Test against Python 3.8. (#270)
Fix a syntax highlighting mistake in configuration docs. (#268)
Use
stdout.isattyto finalize color instead ofstdin.isatty. (#267)
2019.11.9¶
Fix example installation call for pip. (#259)
Allow colorlog 4. (#257)
Order Pythons in descending version in
appveyor.yml. (#258)Add link to GitHub Action for Nox. (#255)
Use double “`” for inline code. (#254)
Add types to
_option_set.py. (#249)Add type hints to
tasks.py. (#241)Fix typo (virtulenvs). (#247)
Replace flake8 sorter with isort. (#242)
Pass
VIRTUAL_ENVenvironment variable to commands executed in a virtualenv. (#245)Fix docs to show correct list for parametrize. (#244)
Add argcomplete dependency to conda test session. (#240)
2019.8.20¶
Add
--verbosefor showing the output from all commands. (#174)Immediately exit if unknown arguments are passed. (#229)
Document complex test_virtualenv fixtures. (#236)
Resolve to interpreter ‘python’ in PATH if ‘–version’ fits. (#224)
Add shell autocomplete. (#228)
Add
venvas an option forvenv_backend. (#231)Add gdbgui to list of projects. (#235)
Add mypy to Nox’s lint. (#230)
Add pipx to projects that use Nox. (#225)
Add
session(venv_backend='conda')option to use Conda environments. (#217, #221)Document how to call builtins on Windows. (#223)
Replace
imp.load_source()withimportlib. (#214)Fix incorrect type in docstring & replace old-style format string. (#213)
Allow specifying
stdoutandstderrtosession.run.Add Salt to the list of projects that use Nox. (#209)
Remove Python 2-specific code. (#203, #208)
Grammar fixes. (#205, 206, 207)
Update Nox’s
noxfile.pyto use python3.7. (#204)
2019.5.30¶
Add interactive property to session. (#196)
Promote contributors to maintainers, add Open Collective details. (#201)
Fix funding external link. (#200)
Refactor how Nox defines and process options. (#187)
Fix typo in tutorial. (#194)
Use ‘pytest’ instead of ‘py.test’ in examples and configuration. (#193)
Fix some CSS issues on mobile. (#192)
Use short form of virtualenv path when creating the virtualenv. (#191)
Refresh tutorial and fixup small docs things. (#190)
Add the ability to give parametrized sessions a custom ID. (#186)
Make –list list all available sessions, not just the selected ones. (#185)
Allow providing a friendlier CLI name to sessions. (#170)
Add urllib3 to the list of projects that use Nox (#182)
Fix documentation link for Docker Cloud vs Hub (#179)
2019.4.11¶
Include changelog in documentation. (#177)
Use the relative path of the virtualenv in the “creating virtualenv” log message. (#176)
Allow not passing “–upgrade” to
session.installand change its default behavior to not upgrade. (#172)Expand environment variables when loading the noxfile from provided path. (#171)
Add documentation around using Docker to run Nox. (#164)
Don’t colour output if
NO_COLORis set. (#163)Fix tox casing to be consistent with their docs, remove `.`` from pytest. (#160)
Update issue templates.
Add CODE_OF_CONDUCT.md.
Add –install-only flag to install dependencies without running anything (#153)
Fix function name in docs. (#155)
Allow silent argument to be set in
session.install. (#157)Run sessions in the same order specified on the command line. (#152)
2018.10.17¶
Fix bug where empty parametrized sessions would fail. (#151)
2018.10.15¶
Hide the python interpreter on sessions with only one. (#148)
Warn when programs not in the virtualenv are used, allow erroring and silencing the warning. (#147)
Add –warn-on-external-run flag and the “external” keyword arg to session.run. (#147)
Add nox.options which allows specifying command-line configuration in the Noxfile (#145)
Add python_requires (>= 3.5) to setup.py.
2018.10.9¶
Breaking changes:
Skip sessions with missing interpreters. Previously, missing interpreters would cause a failed session. Now they just cause a warning. The previous behavior can be used via
--error-on-missing-interpreters. (#140)
New features:
Add session.python property.
Other changes:
Fix some warnings about escape sequences.
Group command line args by usage for readability.
Blacklist more Tox env vars in nox-to-tox.
Documentation fixes, spelling, etc. (#134)
Mention stickers in the contributors guide.
Mention Invoke as a Nox alternative.
2018.9.14¶
Check for
NOXSESSIONenvironment variable (#121)Fix typo in OpenCensus Python (#132)
Add new documentation art created by Andrea Caprotti
Add Python 3.7 to Travis CI (#129)
2018.8.28¶
Bugfixes:
Adding
Session.__slots__. (#128)Don’t modify
Virtualenv.interpreterin_resolved_interpreter. (#127)Fix tox-to-nox template.
Add the ability to add descriptions to sessions. (#117)
Using more specific regex in
_resolved_interpreter(). (#119)
New features:
Adding support for 32-bit binaries on Windows. (#100)
Internal/testing changes:
Storing
platform.system()as global innox.virtualenv. (#124)Fix deploy script for Travis.
Run docs on travis. (#122)
Documentation style updates.
2018.8.23¶
Heads up! This is a very big release for Nox. Please read these release notes thoroughly and reach out to us on GitHub if you run into issues.
Breaking changes and other important notes:
Nox is now published as “nox” on PyPI. This means that Nox is installed via
pip install noxinstead ofnox-automation. Since the new release makes so many breaking changes, we won’t be updating the oldnox-automationpackage.Nox’s configuration file is now called
noxfile.pyinstead ofnox.py.Nox no longer supports Python 2.7. You can still create and run Python 2.7 sessions, but Nox itself must be installed using Python 3.5+.
Nox’s behavior has been changed from declarative to imperative. Session actions now run immediately. Existing code to setup session virtualenv, such as
session.interpreterwill break! Please consult the documentation on how to use@nox.session(python=[...])to configure virtualenvs for sessions.Nox now uses calver for releases.
Support for the legacy naming convention (for example,
session_tests) has been removed.
Other changes:
Update colorlog dependency range.
Update installation command in contributing. (#101)
Remove Python 2.x object inheritance. (#109)
Fix python syntax error on docs. (#111)
Show additional links on PyPI. (#108)
Add contributors file. (#113)
Run sphinx with -W option. (#115)
Using
os.pathsepinstead of a hardcoded':'. (#105)Use a configuration file for readthedocs. (#107)
Add ‘py’ alias for
nox.session(python=...).Fix processing of numeric Python versions that specify a patch version.
Use Black to format code.
Support invoking Nox using
python -m nox.Produce better error message when sessions can’t be found.
Fix missing links in README.rst.
Remove usage of future imports.
Remove usage of six.
Make session.install a simple alias for session.run.
Refactor nox.command.Command as nox.command.run, reducing complexity.
Add list of projects that use Nox.
Use witchhazel pygments theme.
v0.19.1¶
Note:: v0.19.1 was the last version released as “nox-automation” on PyPI. Subsequent releases are published as “nox”.
Updates copyright information and contact addresses. No code changes.
v0.19.0¶
Add missing parameter in docs (#89)
Don’t skip install commands when reusing existing virtualenvs. (#86)
Add –nocolor and –forcecolor options (#85)
Simulating
unittest.mockbackport in the Python 2 standard library. (#81)Fixing tox-to-nox docs reference. (#80)
Removing patch of
py.exeon AppVeyor. (#74)Adding Python 3.6 to AppVeyor. (#69)
Adding AppVeyor badge to README. (#70)
v0.18.2¶
v0.18.1¶
Fix Nox not returning a non-zero exit code on failure. (#55)
Restore result and report output. (#57)
v0.18.0¶
Blacklist problematic virtualenv environment variables (#49)
Use
python -m virtualenvto invoke virtualenv (#47)Making sure all
Commands use run in__call__. (#48)Addition of
session.notify. (#39)Refactor the list of sessions into a manifest class. (#38)
Changed some instances of session to be plural (#37)
Small documentation updates (#36)