Skip to content

build(deps): bump tox from 4.67.4 to 4.67.5 - #782

Merged
firstof9 merged 1 commit into
mainfrom
dependabot/pip/tox-4.67.5
Nov 4, 2026
Merged

firstof9 merged 1 commit into
mainfrom
dependabot/pip/tox-4.67.5

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 4, 2026

Copy link
Copy Markdown
Contributor

Bumps tox from 4.67.4 to 4.67.5.

Release notes

Sourced from tox's releases.

v4.67.5

Bug fixes

  • A packaging environment whose base_python (or default_base_python) is not installed no longer crashes with KeyError: 'skip_missing_interpreters'. It now fails with the missing interpreter, or skips the run environment when skip_missing_interpreters is true, as tox did before 4.36.0 (#4213) by @​gaborbernat. (#4212)
  • Keep environment markers when a package extra refers to another extra of the same package. For example, demo[dev]; python_version < '3.10' keeps the version condition on dependencies from dev (#4216) by @​ericdelorefice and @​gaborbernat.
  • A pylock.toml or a tox user configuration file (TOX_USER_CONFIG_FILE) saved with a UTF-8 byte order mark, as some Windows editors do, is now read instead of failing with a TOML decode error or being ignored with failed to read config file (#4217) by @​pcbeingused333.
  • With args_are_paths enabled, a positional argument naming an existing file whose rewritten path relative to change_dir starts with - (for example tests/--config=evil.cfg) is now prefixed with ./ so the command still receives a path instead of an option (#4317) by @​rahuldevikar and @​gaborbernat. (#4218)
  • An extending TOML replace table with a nonempty marker now raises an error instead of adding its internal value and marker keys to deps or requires. Markers on set_env values remain supported (#4320) by @​rahuldevikar and @​gaborbernat. (#4220)
  • A TOML type mismatch no longer includes an expanded string or container value. A malformed commands setting with {env:...} reports its type instead of the substituted text (#4327) by @​rahuldevikar and @​gaborbernat. (#4221)
  • Keep artifacts supplied with --installpkg out of tox's provisioning environment while installing them in the requested test environments (#4304) by @​Pratham2511 and @​gaborbernat. (#4222)
  • A file: URI passed to --installpkg is now percent-decoded once instead of twice, so a path containing a literal % sequence, such as a directory named feature%2Flogin, selects the package the user named (#4300) by @​pcbeingused333 and @​gaborbernat. (#4223)
  • A relative TOX_INSTALL_PKG or user configuration install_pkg path is now resolved against the invocation directory, as --installpkg already was, so tox inspects and installs from the same path (#4333) by @​rahuldevikar and @​gaborbernat. (#4224)
  • tox refuses a symlink or Windows junction at meta_dir because the build frontend empties that directory during metadata preparation (#4332) by @​rahuldevikar and @​gaborbernat. (#4225)
  • An explicitly empty base_python (for example {env:TOXPYTHON:python3.11} with TOXPYTHON empty) now fails during configuration with base_python for env <name> is empty. Blank entries in a base_python list are ignored (#4326) by @​rahuldevikar and @​gaborbernat. (#4226)
  • A path setting that expands to an empty value, such as env_tmp_dir = {env:SCRATCH_DIR} with SCRATCH_DIR unset, now fails with a configuration error instead of resolving to the current directory, which tox could then clear (#4330) by @​rahuldevikar and @​gaborbernat. (#4227)
  • Keep every value of a multi-value command line flag, such as -f py legacy, with that flag. The command scanner took a later value matching a subcommand as the command, causing environments without that factor to run (#4319) by @​rahuldevikar and @​gaborbernat. (#4228)
  • Unreadable wheels, invalid wheel metadata, and unreadable or empty source archives supplied through --installpkg now produce errors that name the artifact instead of internal error tracebacks (#4287) by @​santhiprakash and @​gaborbernat. (#4230)
  • Reject NUL characters in set_env file assignments with a handled input error instead of a subprocess traceback (#4279) by @​Doomguy-BFG9000 and @​gaborbernat. (#4231)
  • Limit each requirement or constraint file to 10 MiB, so oversized and endless includes fail with a size error. For remote files, tox checks a 120-second deadline between response body reads. Slow HTTP framing can delay that check (#4312) by @​rahuldevikar and @​gaborbernat. (#4232)
  • tox now validates inline script dependencies as requirements before installing them. An invalid entry such as a pip option fails before tox passes the dependencies to pip (#4306) by @​santhiprakash and @​gaborbernat. (#4233)
  • Read static package dependencies and the editable-legacy install path from the packaging environment's package_root instead of the core one, so a package_root set in [testenv:.pkg] no longer pairs the built package with the dependencies declared next to tox.ini (#4321) by @​rahuldevikar and @​gaborbernat. (#4234)
  • A package environment path that is already a symlink no longer causes tox list to create file.lock under the link target (#4311) by @​rahuldevikar and @​gaborbernat. (#4235)
  • tox now expands ${VAR} in requirements and constraints files using the environment running pip, including pass_env and set_env, instead of the tox process. A variable absent from that environment stays literal, so tox cannot put its host value in a fetched URL. To retain expansion, add it to pass_env or define it with set_env (#4323) by @​rahuldevikar and @​gaborbernat. (#4236)
  • Mask values when a flag or environment variable name contains a secret keyword after a newline (#4259) by @​haigou-web and @​gaborbernat. (#4237)
  • tox -h no longer prints secret-looking --key=value values from TOX_OVERRIDE. Conversion warnings also mask those values in invalid TOX_ options (#4303) by @​faresrafat3 and @​gaborbernat. (#4238)
  • A tox.toml or pyproject.toml string with literal braces around text containing a colon, such as a JSON argument holding a URL or a time, is now kept as written, as in tox.ini, instead of being read as a {key:default} reference. Positional arguments such as set_env:x passed into such braces through {posargs} no longer expand into the value of that setting (#4269) by @​Anandb71 and @​gaborbernat. (#4239)
  • Reject wheel metadata entries over 8 MiB uncompressed, limiting memory use during package installation (#4328) by @​rahuldevikar and @​gaborbernat. (#4240)
  • Recreate an environment when its .tox-info.json contains a non-mapping value for a section that requires a mapping (#4258) by @​haigou-web and @​gaborbernat. (#4241)
  • Preserve empty positional arguments when rewriting relative paths for change_dir (#4256) by @​Fire162 and @​gaborbernat. (#4242)
  • base_python_file rejects non-regular files, undecodable content, and version lines over 1024 characters with a handled error naming the file. It reads comments in bounded chunks, so a long comment can still precede the version (#4325) by @​rahuldevikar and @​gaborbernat. (#4243)
  • base_python_file now accepts only a Python version specifier (such as 3.13 or pypy3.10) from the version file. A path or program name there no longer makes tox start that program during interpreter discovery, and the rejected line is not echoed in the error message (#4324) by @​rahuldevikar and @​gaborbernat. (#4244)
  • An inline deps or constraints entry that directly substitutes a host variable via {env:NAME} or a TOML replace = "env" table now passes ${OTHER} text in that value to pip unchanged. A TOML reference to the loaded entry keeps the same behavior. A ${NAME} reference written in the configuration or a substitution default still expands (#4329) by @​rahuldevikar and @​gaborbernat. (#4245)
  • pylock now evaluates Python and platform markers using a complete environment from the target interpreter. Previously, missing values such as implementation_version came from the Python running tox, which could select a package locked for the wrong interpreter (#4331) by @​rahuldevikar and @​gaborbernat. (#4246)
  • For active packages in a pylock.toml, reject whitespace or control characters in hash tokens, archive or VCS URLs, commit IDs, and subdirectories before writing pip requirements. A line break in one of these fields could add a pip option such as --index-url. The check also covers values pip expands from ${VAR} references. Changing a referenced value reinstalls the locked packages (#4315) by @​rahuldevikar and @​gaborbernat. (#4247)
  • A direct URL entry in requires (such as tox @ file:///path/to/tox.whl) now triggers provisioning unless the installed distribution's direct_url.json records the requested source, including a supported archive hash, subdirectory, or VCS revision. pip discards fragment fields such as egg; these no longer trigger repeat provisioning. When the installer omits credentials from the origin record, a credentialed direct URL without a requested archive hash fails with an explanation instead of hanging during provisioning (#4314) by @​rahuldevikar and @​gaborbernat. (#4248)
  • tox now rejects sdist members whose paths or link targets escape the extraction directory. On Python versions without the tarfile data filter, tox checks each member as it extracts the archive (#4316) by @​rahuldevikar and @​gaborbernat. (#4249)
  • Report the file and line number for an invalid set_env file line, since its content may contain a secret (#4298) by @​r3wretrhy and @​gaborbernat. (#4250)
  • Keep input bytes out of tox config INI, JSON, and TOML output when a configuration key reads non-UTF-8 data (#4302) by @​ducanhnguyen223, ducanhnguyen223 and @​gaborbernat. (#4251)
  • A pre-existing symlink at .tox-info.json no longer supplies cached state. When tox writes state, it replaces the link and leaves its target untouched (#4322) by @​rahuldevikar and @​gaborbernat. (#4253)
  • When rebuilding a stale bootstrap environment for virtualenv_spec, tox removes a link at the cache path and creates the replacement without venv's clear option. A link placed there after cleanup and before directory creation stops the rebuild without emptying its target (#4313) by @​rahuldevikar and @​gaborbernat. (#4254)
  • Redirected Windows output now escapes characters its code page cannot encode instead of raising UnicodeEncodeError. The stream keeps its encoding (#4257) by @​haigou-web and @​gaborbernat. (#4255)
  • Read the Docs now fetches Git history and tags before installing tox, so VCS version detection can satisfy tox-uv (#4337) by @​gaborbernat. (#4336)
  • A host variable substituted through set_env into deps or constraints now keeps ${NAME} text literal for pip. A ${NAME} written in the configuration still expands (#4342) by @​gaborbernat. (#4338)
  • On Windows, building a virtualenv_spec bootstrap environment no longer writes through a junction swapped into its cache entry. A linked project work directory still works; the work directory must allow temporary subdirectories (#4341) by @​gaborbernat. (#4339)
  • test_parallel_general uses an absolute missing-interpreter path to avoid Windows registry probes in CI (#4346) by @​gaborbernat. (#4344)
  • A set_env line with a substituted key keeps its value in one variable, even when the input contains a line break. A key that expands to = or a line separator raises an error (#4265) by @​gaborbernat.
  • A host environment value selected by {env:NAME} that references itself twice could stall tox during recursive expansion. tox now stops expansion at the first depth-limit hit, logs one warning, and leaves the remaining text unexpanded (#4272) by @​gaborbernat.
  • An included set_env keeps {env:...} values intact when the source environment inherits the setting, uses setenv or comes from a generative section. The TOML string form "{[env.name]set_env}" does the same. Line breaks, ; and file| text inside values no longer become set_env syntax (#4268) by @​gaborbernat.

... (truncated)

Changelog

Sourced from tox's changelog.

########### Changelog ###########

.. towncrier-draft-entries:: Unreleased

.. towncrier release notes start

.. _release-4-67-8:


4.67.8 (2026-11-03)


.. _release-4-67-8-fixed:

Fixed

  • A .tox created under umask 002 no longer fails the package staging check. When the current user owns a group-writable work directory left by an older tox, tox makes it owner-only and removes group write from the staging directories inside it. Provisioning runs the same repair before starting the provisioned tox, which may be a release without it, and creates a missing work directory owner-only. Previously, such checkouts failed until .tox was deleted, and a fresh .tox also failed when tox provisioned itself (:pr:4377) by :user:gaborbernat. (:issue:4376)

.. _release-4-67-7:


4.67.7 (2026-11-02)


.. _release-4-67-7-fixed:

Fixed

  • PEP 723 metadata lines with content now require a space after #. Empty blocks count when detecting duplicates, and invalid requires-python values report a configuration error. Previously, malformed content lines could make tox read metadata that other script runners ignored (:pr:4371) by :user:abhishekcpp007 and :user:gaborbernat.

.. _release-4-67-6:


4.67.6 (2026-11-02)


.. _release-4-67-6-fixed:

Fixed

... (truncated)

Commits
  • 07746dd release 4.67.5
  • b9e7a31 🐛 fix(pylock): use target marker values (#4331)
  • 3137a26 🧪 test(pip): pass referenced variables (#4356)
  • dea9d1b 🐛 fix(pip): keep nested host text literal (#4342)
  • 7762778 🐛 fix(venv): stage Windows bootstrap before caching (#4341)
  • 12919dc 🐛 fix(python): reject empty base_python (#4326)
  • 6407666 🐛 fix(pip): use installer variables in requirements (#4323)
  • 75eec3d 🧪 test(parallel): avoid Windows registry probes (#4346)
  • 799c877 🧪 test(pip): trim recursive fan-out input (#4355)
  • c0801dc 🐛 fix(venv): guard redirect writes and removal (#4348)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [tox](https://github.com/tox-dev/tox) from 4.67.4 to 4.67.5.
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/main/docs/changelog.rst)
- [Commits](tox-dev/tox@4.67.4...4.67.5)

---
updated-dependencies:
- dependency-name: tox
  dependency-version: 4.67.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Nov 4, 2026
@coderabbitai

coderabbitai Bot commented Nov 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f66098c5-5d32-4171-9e3e-3f4da53a37c8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions github-actions Bot added the build Build system changes label Nov 4, 2026
@firstof9
firstof9 merged commit d3aa65b into main Nov 4, 2026
9 checks passed
@dependabot
dependabot Bot deleted the dependabot/pip/tox-4.67.5 branch November 4, 2026 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Build system changes dependencies Pull requests that update a dependency file python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant