Parallel mode no longer prints an "experimental" banner, and sessions can check session.parallel to see if they run in a parallel worker. A new rattler backend uses py-rattler (install with the nox[rattler] extra), so you can request fast conda-style environments in a /// script block. Python versions read from classifiers now include free-threaded builds when the free-threading classifier is present, and are deduplicated. A single-argument @nox.parametrize now accepts ranges and other iterators, and the rattler backend loads config from the default locations. The GitHub Action now defaults to Python 3.11-3.15. This release also fixes several bugs in script mode, option handling, and tox-to-nox.
We'd like to thank the following folks who contributed to this release:
- @henryiii
- @Himanshuagrawal4
- @Arthur031221 (first contribution)
- @devtechedge (first contribution)
- @dylanpulver (first contribution)
- @leodevian (first contribution)
- @muneikh (first contribution)
- @nickita-khylkouski (first contribution)
- @pcbeingused333 (first contribution)
- @r3wretrhy (first contribution)
- @Rodrigo-Palma (first contribution)
- @xiehuanyi (first contribution)
Features:
- Remove the experimental banner from
--parallelby @henryiii in #1197 - Expose parallel execution state on sessions by @nickita-khylkouski in #1182
- Add py-rattler support by @henryiii in #1179
- Add free-threaded versions from classifiers by @henryiii in #1185
- Expand ranges and iterators in single-argument parametrization by @muneikh in #1206
rattler: load config from default locations by @leodevian in #1204- GitHub Action: default to Python 3.11-3.15 by @henryiii in #1205
Fixes:
- Respect directory boundaries when classifying external commands by @xiehuanyi in #1207
- Walk a dependency's mandatory requirements even without extras by @Arthur031221 in #1192
- Don't call
install()when a script declares no dependencies by @Rodrigo-Palma in #1188 - Read script metadata after a UTF-8 BOM by @pcbeingused333 in #1211
- Deduplicate the python list of a session by @henryiii in #1187
- Accept tuples for list-valued options by @henryiii in #1176
- Fall back to ASCII for the parallel banner and status header by @dylanpulver in #1180
tox-to-nox: drop env vars that tox 4.64.8+ lists inset_envby @henryiii in #1201tox-to-nox: keep quoted paths when converting commands by @r3wretrhy in #1181
Documentation:
- Clarify supported session Python versions by @Himanshuagrawal4 in #1171
Internal changes:
- Isolate envdirs and relax duration checks to fix flaky CI by @henryiii in #1208
- Run test sessions in parallel steps in CI by @henryiii in #1200
- Give
test_interrupt_handledchild more time to exit by @henryiii in #1202 - Keep existing
PYTHONPATHintest_noxfile_script_modeby @devtechedge in #1190 - Accept unnormalized nox version in script mode test by @henryiii in #1186
- Bump pinned conda to 26.7.1 by @henryiii in #1175