Repository navigation
Update dependency tox to v4.67.1 - #135
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
December 15, 2025 18:35
2e4e3cf to
1d5dd47
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
2 times, most recently
from
January 8, 2026 18:25
313a5ac to
97deca8
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
January 9, 2026 20:56
97deca8 to
e917caf
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
2 times, most recently
from
February 15, 2026 20:57
9e439b5 to
a53197d
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
February 17, 2026 06:37
a53197d to
8a3047b
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
2 times, most recently
from
February 17, 2026 23:36
98a4246 to
4bf4f25
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
February 18, 2026 21:12
4bf4f25 to
071c2d9
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
February 19, 2026 09:56
071c2d9 to
ed057d9
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
2 times, most recently
from
February 20, 2026 09:37
8929a00 to
81d0056
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
2 times, most recently
from
February 21, 2026 01:43
e46af5c to
7425ec4
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
February 23, 2026 22:16
7425ec4 to
0158327
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
March 4, 2026 04:47
0671d8b to
3fdc2af
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
March 6, 2026 01:20
3fdc2af to
7d7491b
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
March 6, 2026 06:33
7d7491b to
ee9f32c
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
March 6, 2026 22:47
ee9f32c to
7ed6d8c
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
March 10, 2026 01:10
7ed6d8c to
10483e1
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
March 17, 2026 21:38
10483e1 to
bd60b7c
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
March 19, 2026 04:55
bd60b7c to
15918d1
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
2 times, most recently
from
March 20, 2026 05:34
ada3bf2 to
3b10ea8
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
March 27, 2026 17:56
3b10ea8 to
d6377d7
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
March 30, 2026 21:06
d6377d7 to
d130610
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
April 9, 2026 18:18
d130610 to
03912a1
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
April 14, 2026 17:01
03912a1 to
a245871
Compare
renovate
Bot
force-pushed
the
renovate/tox-4.x
branch
from
May 2, 2026 09:30
a245871 to
82e4a60
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
==4.25.0→==4.67.1Release Notes
tox-dev/tox (tox)
v4.67.1Compare Source
Bug fixes - 4.67.1
-) and invert (!) exit code prefixes on commands when referenced via TOML{ replace = "ref", ... }. (#4169)pylock.tomlwith nodependency_groupsselected now uses the lock file'sdefault-groups, as751specifies. Previously packages marked'default' in dependency_groups(as writtenby
pdm export -f pylock) were skipped - by pcbeingused333. (#4173){factor:N}label in anenv_basenow resolves against that table's ownfactors, so withseveral
env_basetables or anenv_listproductit no longer expands to an empty string. (#4174)PyPI release
Full Changelog: tox-dev/tox@4.67.0...4.67.1
v4.67.0Compare Source
Features - 4.67.0
substitute = true. (#4165)Bug fixes - 4.67.0
--no-capture, sotox --no-captureno longer hangs atstarted backendwhile waiting for the backend's reply. (#4163)tox.ini,setup.cfg,tox.tomlor a TOMLpyproject.tomlno longerstops the configuration from loading - editors on Windows may add one. (#4166)
tox --no-provision <command>no longer treats the command as the JSON output path: a global option placed before asubcommand now keeps it, so
tox --no-provision listlists the environments instead of writing a file namedlist. (#4168)Improved documentation - 4.67.0
PyPI release
Full Changelog: tox-dev/tox@4.66.0...4.67.0
v4.66.0Compare Source
Features - 4.66.0
set_envenvironment files acceptexport KEY=valuelines, settingKEY- by RavSinghChandan.(#4161)
Bug fixes - 4.66.0
PATHscan forevery setting that needs it, so
tox configandtox runon configurations listing interpreters that are notinstalled are faster. (#4162)
PyPI release
Full Changelog: tox-dev/tox@4.65.6...4.66.0
v4.65.6Compare Source
Bug fixes - 4.65.6
tox -- "'x'"passes'x'to the command as on Linux(#4160)
Contributor-facing changes - 4.65.6
replacewalker into one helper per value kind and directive, without changing behavior.(#4154)
active_factors()helper for the factors that hold for an environmentinstead of each keeping its own copy - by gaborbernat. (#4155)
set_envstring parsing out of theSetEnvconstructor into small helpers, without changing behavior.(#4156)
(#4157)
skip_missing_interpretersoptions now share one post-process for the--skip-missing-interpretersoverride instead of each keeping its own copy - by gaborbernat.(#4158)
PyPI release
Full Changelog: tox-dev/tox@4.65.5...4.65.6
v4.65.5Compare Source
Bug fixes - 4.65.5
{}infind -execor a dictliteral in
python -creaches the command intact (#4150)PyPI release
Full Changelog: tox-dev/tox@4.65.4...4.65.5
v4.65.4Compare Source
Improved documentation - 4.65.4
TOX_environment variables set CLI option defaults and howTOX_OVERRIDEchanges configurationvalues. (#4146)
Contributor-facing changes - 4.65.4
(#4145)
PyPI release
Full Changelog: tox-dev/tox@4.65.3...4.65.4
v4.65.3Compare Source
Bug fixes - 4.65.3
--skip-envwith-e,-m, and-fso it filters the selected environments (#4143)PyPI release
Full Changelog: tox-dev/tox@4.65.2...4.65.3
v4.65.2Compare Source
Bug fixes - 4.65.2
dependency_groupsrun whose package root has nopyproject.tomlnow fails with the path it looked at, insteadof installing none of the requested groups and reporting success - by feiiiiii5. (#4142)
PyPI release
Full Changelog: tox-dev/tox@4.65.1...4.65.2
v4.65.1Compare Source
Bug fixes - 4.65.1
tox removes read-only files on Windows when it empties an environment's
tmpor log directory, or the wholeenvironment on recreate - by SulimanAbdulrazzaq.
internal error.Packaging updates and notes for downstreams - 4.65.1
(#4140)
PyPI release
Full Changelog: tox-dev/tox@4.65.0...4.65.1
v4.65.0Compare Source
Features - 4.65.0
Bug fixes - 4.65.0
--result-jsonandtox config -ocreate the missing parent directory of the output file instead of crashing -by SulimanAbdulrazzaq. (#4126)
set_envenv file that is a directory or not UTF-8 fails the environment with a configuration error instead of atraceback, and a leading UTF-8 byte order mark no longer ends up in the first key - by SulimanAbdulrazzaq.
(#4127)
commands = []clearsenv_log_dirat the start of the run instead of keeping logsfrom the previous run - by glaziermag. (#4130)
Improved documentation - 4.65.0
@implfrom thetox_append_version_infoplugin doc examples, since it made tox skip the inline plugin - byRodrigo-Palma. (#4135)
PyPI release
Full Changelog: tox-dev/tox@4.64.10...4.65.0
v4.64.10Compare Source
What's Changed
New Contributors
Full Changelog: tox-dev/tox@4.64.9...4.64.10
v4.64.9Compare Source
Bug fixes - 4.64.9
file|entries inset_envoverrides passed through-xorTOX_OVERRIDE.Appended blocks replace inherited values while preserving explicit keys in the same or later overrides. Preserve these
rules through section references, including native TOML arrays with
extend = true. Resolve env-file selectors andvalues in the consuming environment. Prevent included values from overriding tox's own variables - by
Rodrigo-Palma. (#4116)
PyPI release
Full Changelog: tox-dev/tox@4.64.8...4.64.9
v4.64.8Compare Source
Bug fixes - 4.64.8
--no-binaryand--only-binaryacross the lines ofdepsand of requirements files the way pipdoes, where the last line used to replace the earlier ones. With
--only-binary :all:and a--no-binaryexception, tox passes
--only-binaryto pip first, so pip keeps the exception.tox configshows the mergedvalues tox passes to pip - by SulimanAbdulrazzaq. (#4110)
tox configshowsdepswith every global option merged the way tox passes it to pip, a later-ireplacingan earlier one and repeated flags shown once, and reports the error
tox runwould raise for invaliddeps.constraintsshows the configured files instead of the path oftox.ini, and a comment line inconstraintsno longer fails the run.
depsthat give pip nothing to install no longer conflict withpylock.set_envincludes
PIP_USER,TOX_ENV_DIR,TOX_ENV_NAME,TOX_WORK_DIRandVIRTUAL_ENV, the values tox setsfor commands - by gaborbernat. (#4111)
refto another environment'sdeps,constraintsorcommandsworks intox configandtox run. It used to fail with'PythonDeps' object is not iterableorCommand(args=[...]) is not list- bygaborbernat. (#4112)
commands,commands_preandcommands_post, a reference such aspip install {[testenv:x]deps}that shares its line with other text joins the referenced lines into that one command as arguments, as in tox 3. tox
used to run each referenced line after the first as a separate command. A reference alone on its line still expands to
one command per referenced line. This changes
echo {[testenv:x]commands}, which now runs oneechowith everyreferenced command as its arguments - by gaborbernat. (#4113)
requireswith the text ofprovision_tox_env, so editors showed the wrong hoverfor it - by gaborbernat. (#4115)
Improved documentation - 4.64.8
args_are_paths(True),pkg_dir(
{env_dir}/dist),skip_missing_interpreters(False),min_version(unset) andrequires(
tox) - by Rodrigo-Palma. (#4114)PyPI release
Full Changelog: tox-dev/tox@4.64.7...4.64.8
v4.64.7Compare Source
Bug fixes - 4.64.7
tox mansuggests~/.profileinstead of~/.zshrcwhen the shell is not fish, bash, zsh, csh or tcsh, forexample
sh,kshor an unsetSHELL- by Rodrigo-Palma./home/zshuser/bin/bashgets~/.bashrc.. <file>instead ofsource <file>, sincedashhas nosource.MANPATHwas unset, instead of hiding every other man page.setenvline for~/.tcshrcor~/.cshrcinstead of anexportline for~/.profile. (#4109)PyPI release
Full Changelog: tox-dev/tox@4.64.6...4.64.7
v4.64.6Compare Source
Bug fixes - 4.64.6
tox -eandTOXENVaccept every interpreter name that picks abase_pythonfor an environment theconfiguration does not declare - by breken-ai.
cpython313,cpython-3.13,graalpy311,jython2.7,rustpython3andironpython3select thatinterpreter instead of failing with "provided environments not found".
ddebug-build suffix works too, for examplepy313d.cython313now fails as an unknown environment; it used to run on the Python that tox runs under. (#4106)A
set_envblock pulled in with{[section]set_env}now applies a PEP-508 marker only to the value it came with,as the inline and TOML forms already do - by feiiiiii5. A false marker on an earlier line no longer hides a
value that the inheriting environment, a later unconditional line or an environment file supplies. (#4107)
set_envvalues resolve when tox reads them, so{env:KEY}sees the keys a block pulls in with{[section]set_env}, and a{ replace = "env" }table sees the keys next to it - by gaborbernat, foundby breken-ai. Configurations that see a difference:
the host variable.
PYTHONHASHSEED = {env:PYTHONHASHSEED:0}, reads the hostvariable or its default, as the same line written in place does. It used to read the value tox sets.
set_envwins over the same key pulled in from another section, and a later pulled-insection wins over an earlier one, at every nesting level. A nested section could override the section that included
it before.
tox configshows the keys of every pulled-in section thattox runsets.refto itself, and values that refer to each other fail the environmentwith the cycle. They used to fail with a traceback or "could not find python interpreter", and values that referred
to each other inside a pulled-in section read the host variables without a warning. (#4108)
PyPI release
Full Changelog: tox-dev/tox@4.64.5...4.64.6
v4.64.5Compare Source
Bug fixes - 4.64.5
platformregular expression now fails the environment with a one-line error instead of a traceback,also for the provisioning environment - by
0020020. (#4103)Contributor-facing changes - 4.64.5
PyPI release
Full Changelog: tox-dev/tox@4.64.4...4.64.5
v4.64.4Compare Source
Bug fixes - 4.64.4
--preonce, before the packages, in the defaultinstall_commandwithpip_preset totrue.(#4097)
TOX_LABELS=old;newselects environments labeledoldornew, andTOX_LIST_KEYS_ONLY=env_name;depsselects both configuration keys. Support list-valued options without an explicit default or element type, including
append actions. (#4098)
PyPI release
Full Changelog: tox-dev/tox@4.64.3...4.64.4
v4.64.3Compare Source
Bug fixes - 4.64.3
A
set_envwritten as a list of tables in TOML now keeps everyfileentry and honors the order of the entries,so merging one environment's
set_envinto another no longer drops the environment file it referenced(#4093) - by Rodrigo-Palma.
{ file = "..." }entry is read; previously only the last one survived, because the entries were merged intoa single table first and a table cannot hold the key twice.
fileentry wins over the value the file provides, matching thefile|form in INI;previously a repeated variable was pulled back to its first position, letting the file override it.
INI form. (#4093)
Create the package build environment
change_dirdirectory before running the build commands, as the documentationalready promises. (#4095)
PyPI release
Full Changelog: tox-dev/tox@4.64.2...4.64.3
v4.64.2Compare Source
Bug fixes - 4.64.2
A tox environment with
env_dir = "{tox_root}/.venv"no longer crashes withFileExistsErrorafter anotherenvironment ran (#4090) - by gaborbernat.
venv_redirectunset, the new default, tox writes the redirect file unless a tox environment lives at.venv; withtrue, tox fails the run with an error naming that environment.naming any other file there. (#4091)
The
832.venvredirect file now names a deliberate development environment - by gaborbernat.venv_redirect_env, else an environment nameddev, else the first that installs the project indevelopment mode, and writes nothing without one, so a project that uses tox for tests alone gets no file.
tox devenvpoints the redirect at the environment it creates, and later runs leave it in place.PyPI release
Full Changelog: tox-dev/tox@4.64.1...4.64.2
v4.64.1Compare Source
Bug fixes - 4.64.1
-x/--overrideandTOX_OVERRIDEvalues that target a section the configuration file does not define,such as
tox.skip_missing_interpreterson atox.iniwithout a[tox]section, instead of dropping them - bygaborbernat. (#4089)
PyPI release
Full Changelog: tox-dev/tox@4.64.0...4.64.1
v4.64.0Compare Source
Features - 4.64.0
Point a
832.venvredirect file at a tox environment after each run, so editors such as VS Code or PyCharmpick it as the project interpreter instead of asking you for a path under
.tox- by gaborbernat.dev, then one installing the project in development mode, then the first ofenv_list; setvenv_redirect_envto choose another..venvdirectory alone, and a redirect file pointing outside its environments.venv_redirecttofalseto opt out.832is a draft: a minor or patch release may change it in backwardincompatible ways to follow the PEP. (#4013)
Bug fixes - 4.64.0
non-ASCII values is no longer silently discarded on Windows - by MohammedAlkindi. (#4086)
Improved documentation - 4.64.0
PyPI release
Full Changelog: tox-dev/tox@4.63.0...4.64.0
v4.63.0Compare Source
Features - 4.63.0
tox.execute.api.FinishedExecuteStatusto report a fixed exit code for a commandthat already finished or never started - by gaborbernat. (#4080)
Bug fixes - 4.63.0
could appear or vanish depending on thread timing - by gaborbernat. (#4079)
pyproject.tomlunder a name that is not normalized, such asFoo_Bar, are nowinstalled when requested as
extras = foo-barwhile tox installs a package's dependencies - by gaborbernat.(#4080)
PyPI release
Full Changelog: tox-dev/tox@4.62.1...4.63.0
v4.62.1Compare Source
Bug fixes - 4.62.1
set_envvalues override conditional entries, including environmentfiles. (#4076)
PyPI release
Full Changelog: tox-dev/tox@4.62.0...4.62.1
v4.62.0Compare Source
Features - 4.62.0
ConfigSet.get_optional, which verifies the valueagainst its declared type and returns
Nonewhen it is not set - by gaborbernat. (#4075)Bug fixes - 4.62.0
TOX_FACTOR_<label>to an empty value now resolves{factor:<label>}to an empty string instead of beingignored - by gaborbernat. (#4073)
Contributor-facing changes - 4.62.0
tyrelease, and the checks now covermore: configuration values are read through the type-verified accessors instead of as
Any, and every method thatoverrides a parent is marked with
@override- by gaborbernat. (#4075)PyPI release
Full Changelog: tox-dev/tox@4.61.5...4.62.0
v4.61.5Compare Source
Bug fixes - 4.61.5
set_envlist in TOML no longer fails to load; like an empty table, it clears inherited variables - byyuefdev. (#4065)
trueorfalseasstartorstopinstead of reading them as1and0- by yuefdev. (#4066){factor:label:}fallback instead of using the declared factor group default.(#4072)
Improved documentation - 4.61.5
Loader.builddocumented afutureparameter it no longer takes and leftfactoryundocumented, so the pluginAPI reference listed a parameter that does not exist - by hxperl. (#4070)
Contributor-facing changes - 4.61.5
COVERAGE_PROCESS_STARTin the test environments; a mangled key had left it unset since the move totox.toml- by yuefdev. (#4067)PyPI release
Full Changelog: tox-dev/tox@4.61.4...4.61.5
v4.61.4Compare Source
Bug fixes - 4.61.4
shlex, so a quoted interpreter path that contains spaces is kept as one argument whenTOX_LIMITED_SHEBANGrewrites the invocation - by r3wretrhy. (#4064)PyPI release
Full Changelog: tox-dev/tox@4.61.3...4.61.4
v4.61.3Compare Source
Bug fixes - 4.61.3
set_envenvironment file (file|.env) is now read as UTF-8 instead of the platform's locale encoding, sonon-ASCII values no longer arrive mangled on Windows - by MohammedAlkindi. (#4059)
(#4060)
env_list- by dylanpulver. (#4062)PyPI release
Full Changelog: tox-dev/tox@4.61.2...4.61.3
v4.61.2Compare Source
Bug fixes - 4.61.2
py313-django4-2keeps its name rather than becoming
py313-django4,3and2- by MohammedAlkindi. (#4053)Improved documentation - 4.61.2
architecture factors that apply to conditions without appearing in a name, and how selecting by factor differs from
selecting by name - by gaborbernat. (#4055)
interrupt_post_commandsrunscommands_postafter an interrupt, and
config_file_path,host_python,homeandtox_root_nameare constants aconfiguration can substitute - by gaborbernat. (#4056)
Contributor-facing changes - 4.61.2
license-filesand dropping the license classifier inpyproject.toml- by mwtoews. (#4052)PyPI release
Full Changelog: tox-dev/tox@4.61.1...4.61.2
v4.61.1Compare Source
Bug fixes - 4.61.1
added since 4.56 - by gaborbernat. (#4051)
Contributor-facing changes - 4.61.1
release sync opens a pull request there - by gaborbernat. (#4051)
PyPI release
Full Changelog: tox-dev/tox@4.61.0...4.61.1
v4.61.0Compare Source
Features - 4.61.0
defaultfor{factor:label}to fall back on when no factor of thatgroup is active in the environment name. Setting
TOX_FACTOR_<label>resolves that label to a given value for asingle run - by gaborbernat. (#4045)
factors = [{ py_version = { prefix = "3.", start = 12, stop = 14 } }], which makes{factor:py_version}available for ranges - by gaborbernat.(#4046)
Bug fixes - 4.61.0
--override/-xorTOX_OVERRIDEnow resolve substitutions such as{posargs},{env:VAR}and{env_name}, instead of reaching the environment as literal text - by gaborbernat.(#4047)
Improved documentation - 4.61.0
Contributor-facing changes - 4.61.0
load_modulecall in the documentation configuration, which Python 3.15 removes - bygaborbernat. (#4043)
PyPI release
Full Changelog: tox-dev/tox@4.60.1...4.61.0
v4.60.1Compare Source
Bug fixes - 4.60.1
tox.iniorsetup.cfgas a handled error during config discovery instead of raising anunhandled
Errortraceback - by VXNCXNX (#4027)[tox]core section (such asmin_version,requiresorenv_list) as ahandled error instead of an unhandled traceback, matching the existing TOML loader behavior - by VXNCXNX
(#4028)
--skip-env/TOX_SKIP_ENVregular expression as a handled error instead of raising anunhandled
re.errortraceback - by VXNCXNX (#4029);inside values read from aset_envenvironment file (file|.env). Environment file lines are plainKEY=VALUEpairs and were incorrectly parsed with the PEP-508 marker splitter, which truncated values such asDATABASE_URL=postgresql://host/db?opt=1;sslmode=requireat the first semicolon - by VXNCXNX(#4030)
cannot be read - by SirHegel. (#4031)
install_commandorlist_dependencies_commandin a TOML configuration as a handled errorinstead of an unhandled traceback - by dylanpulver (#4041)
Contributor-facing changes - 4.60.1
Windows, so pytest-timeout no longer kills Windows CI workers - by gaborbernat. (#4026)
PyPI release
Full Changelog: tox-dev/tox@4.60.0...4.60.1
v4.60.0Compare Source
Features - 4.60.0
{home}and{tox_root_name}substitutions; setwork_dirto e.g."{home}/.local/state/tox/{tox_root_name}"to keep environments outside of the project tree - byWhyNotHugo. (#4020)
Bug fixes - 4.60.0
env_list, allowing configuration syntax introduced by thatversion - by CAOShurong (#4021)
Improved documentation - 4.60.0
names of the TOML configuration sources and loaders they refer to - by Yusuf-Gadelrab. (#4024)
PyPI release
Full Changelog: tox-dev/tox@4.59.0...4.60.0
v4.59.0Compare Source
Features - 4.59.0
The plugin and internal APIs now declare their types, and the code base passes
mypy --strictandpyreflynextto
ty- by gaborjbernat.get>returns a configuration value after checking it against itsdeclared type, so plugins can drop
castaroundconf["key"]reads.tox_on_install>hook andInstaller>type theirargumentsasInstallArguments>; installer subclasses may narrow it through the new second type parameter.Parsed>declares the CLI option surface, sooptions.<name>readstype-check.
add_config>acceptsdefault=Nonefor optional values andinfers the value type from callable defaults.
JsonValuecontent; structuredset_enventriesmatch the
SetEnvEntryshape. (#4014)Improved documentation - 4.59.0
Mark the INI configuration format as deprecated throughout the documentation - by gaborbernat.
projects but is frozen and receives no new features.
tox.iniviatox quickstart. (#4017)Contributor-facing changes - 4.59.0
miscchangelog category, and align the changelog filename check with the categories towncrier accepts -by gaborbernat. (#4012)
PyPI release
Full Changelog: tox-dev/tox@4.58.0...4.59.0
v4.58.0Compare Source
Miscellaneous internal changes - 4.58.0
PyPI release
Full Changelog: tox-dev/tox@4.57.2...4.58.0
v4.57.2Compare Source
Bug fixes - 4.57.2
Fix package environment creation failures being misreported:
duplicate configuration definition;tox candtox lwork whenpyproject.tomlcannot be read.(#3987)
Fix state corruption in the environment creation machinery:
dependsreports the cycle as an error instead of a raw traceback;Skipraised by a plugin for a package environment marks the run environment package-skipped instead of crashingwith
UnboundLocalError. (#3991)Fix two packaging regressions:
package = editableon a build backend without PEP-660 support now falls back toeditable-legacywith awarning instead of crashing, also when the project metadata is static;
sdist-wheelenvironment build from the project sources again,instead of a stale temporary copy that made source edits invisible. (#3992)
An environment serving as both a run environment and a package environment now behaves predictably:
[testenv:...]-style section and referenced bypackage_envinherits frompkgenv/env_pkg_baseas documented, instead of silently keeping run environment defaults;env_listwhile referenced as a package environment is reported as a configuration conflict upfront, instead of failing late with
cannot run packaging environmentor silently disappearing fromtox l.(#3993)
pylock.tomlinstalls now match the lock file:name against the package index;
PIP_INDEX_URLreinstalls, as it already did fordeps.(#3994)
Re-running tox no longer rebuilds an environment at random when
depsuses--no-binaryor--only-binarywith more than one package name. (#3995)
A corrupted environment status file (
.tox-info.json) now always triggers an environment recreation instead ofcrashing tox with an internal error for some corruption shapes. (#3996)
PEP 723 scripts saved with a UTF-8 byte order mark now have their inline metadata honored (previously
requires-pythonanddependencieswere silently ignored), and a script with invalid metadata reports a clearconfiguration error instead of an internal one. (#3997)
Fix three command line defects:
tox c -o FILEwrites the default (ini) format to the file like the json and toml formats, without color codes;tox devenv -e ALLreports that exactly one environment is required instead of crashing;--no-provision FILErecords the pinned version for atox==Xrequirement instead of an empty string.(#3998)
Restore the documented fail-fast contract and make cleanup resilient:
--fail-fastin parallel mode lets already running environments finish and report their real outcomes, instead ofinterrupting them after a second and mislabeling them as skipped;
leave tox hanging on exit). (#3999)
Polish four behaviors around the edges of a run:
[tool.tox]stub inpyproject.tomlno longer hides atox.tomlnext to it;CI=false(or empty) is respected as opting out of CI behavior;"skipped": trueso they are distinguishable from passes.(#4000)
PyPI release
Full Changelog: tox-dev/tox@4.57.1...4.57.2
v4.57.1Compare Source
Bug fixes - 4.57.1
set_envvalue (e.g. an apostrophe incan't) from swallowing the;platform marker,which silently set the variable unconditionally with the marker text left in the value - by chuenchen309.
(#3988)
tox run-parallel -p 0turn parallelism off and run sequentially, as the-phelp ("zero is turn off") andthe legacy command already promise, instead of running at the CPU count - by chuenchen309. (#3989)
PyPI release
Full Changelog: tox-dev/tox@4.57.0...4.57.1
v4.57.0Compare Source
Features - 4.57.0
Py_DEBUG) interpreters the way free-threaded builds are already handled. Thepy313dandpy313tdfactors select a debug build, abase_pythonpointing at one matches those factors and conflicts withfactors that lack the suffix, and a debug build gets its own
d-tagged wheel build environment - bychuenchen309. (#3986)
Bug fixes - 4.57.0
tsuffix when deriving the base python spec from a path, so abase_pythonpointing at afree-threaded interpreter matches
py313tfactors and conflicts with factors that lack the suffix - bychuenchen309. (#3986)
PyPI release
Full Changelog: tox-dev/tox@4.56.4...4.57.0
v4.56.4Compare Source
Bug fixes - 4.56.4
Py_DEBUG) interpreters set asbase_python, such as Debian'spython3.13-dbg- the spec wasmisread as a machine named
dbgand no interpreter matched. Requirespython-discovery>=1.4.4- bygaborbernat. (#3977)
PyPI release
Full Changelog: tox-dev/tox@4.56.3...4.56.4
v4.56.3Compare Source
Bug fixes - 4.56.3
reused the freed descriptor number and cause intermittent
Bad file descriptor/Input/output errorfailures - byapoorvdarshan. (#3975)
PyPI release
Full Changelog: tox-dev/tox@4.56.2...4.56.3
v4.56.2Compare Source
Bug fixes - 4.56.2
Fix a batch of latent defects found in a codebase audit:
--extra-index-urlwhen a merged requirements line repeats an already-seen index;--no-binary/--only-binaryas comma-joined strings instead of leaking the internalsetinto thepip command line;
IndexErrorfor a bare one-argument flag (-c,-r,-f,-e) indepsor constraints;optional-dependencieskeys and self-referential (recursive) extra names so non-canonical spellingsno longer silently drop dependencies;
KeyErrorwhendependency_groupsis requested without a[dependency-groups]table;{ replace = "env" }reference from leaking its resolution chain into sibling list entries andtripping a spurious
circular chainerror;\;inset_envvalues;tox -e list) isno longer misread;
TOX_DISCOVER=) as an empty list rather than[""];Configmembership tests;tox p -p allis run with an emptyselection;
rootisreassigned before a frontend exists;
create_session_viewwhen the package and its session copy share no common path (e.g. differentWindows drives);
terminal-attribute inheritance error path;
risks hanging on a child that holds its pipe open without producing output. (#3974)
PyPI release
Full Changelog: tox-dev/tox@4.56.1...4.56.2
v4.56.1Compare Source
Bug fixes - 4.56.1
{ replace = "if" ... extend = true }corrupting the resulting list whenthenorelseis a scalarstring (e.g.
then = "-v"): a non-empty scalar string is now appended as a single element instead of being iteratedcharacter-by-character, while a false
ifwith noelse(yielding"") contributes nothing rather than anempty element, and list/set results are still spread into the parent. (#3969)
PyPI release
Full Changelog: tox-dev/tox@4.56.0...4.56.1
v4.56.0Compare Source
Features - 4.56.0
virtualenv_specautomatically: when an environment targets a Python version the installedvirtualenvcan no longer create (e.g.py38with virtualenv21.5+), tox now pins the newest virtualenvthat still supports it and bootstraps it for that environment only. The downgrade happens only when every
base_pythoncandidate is unsupported, so environments targeting current interpreters are unaffected. This fixespy38(and other end-of-life interpreters) being silently skipped after a virtualenv upgrade - bygaborbernat. (#3965) (#3965)
Bug fixes - 4.56.0
skip_missing_interpreterschanged fromTruetoFalse— missing interpreters now failthe run by default, matching tox 3 behavior. The tox 4 rewrite unintentionally changed this default. To restore the
previous (incorrect) behavior, set
skip_missing_interpreters = truein your tox configuration or pass--skip-missing-interpreterson the command line. (#3965)Improved documentation - 4.56.0
development.rst,onboarding.rstandexplanation.rst. (#3960)http://tox.readthedocs.orgURL withhttps://tox.wikiinpyproject.toml(Homepage),.github/CONTRIBUTING.md, and.github/PULL_REQUEST_TEMPLATE.md. (#3963)PyPI release
Full Changelog: tox-dev/tox@4.55.1...4.56.0
v4.55.1Compare Source
Bug fixes - 4.55.1
TOX_OVERRIDE(and-x/--override) now propagates through configuration references. Previously, overriding abase value that was later referenced via
{[section]key}(ini) or{replace = "ref", of = [...]}(toml) wasignored because reference resolution read the raw file value, bypassing the override system - by
tales-aparecida. (#3950) (#3950)
[Py
Configuration
📅 Schedule: (UTC)
* 0-3 1 * *)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.