-
-
Notifications
You must be signed in to change notification settings - Fork 549
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: tox-dev/tox
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4.42.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: tox-dev/tox
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 4.43.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 5 commits
- 19 files changed
- 2 contributors
Commits on Feb 20, 2026
-
📝 docs(infra): integrate sphinxcontrib-towncrier (#3798)
The `sphinxcontrib-towncrier` package was listed as a docs dependency but never actually wired into the Sphinx configuration. Instead, the `setup()` function in `docs/conf.py` shelled out to `towncrier build --draft`, wrote a generated `_draft.rst` file, and included it via `.. include::`. This required a `.gitignore` entry and an `exclude_patterns` entry to manage the generated file. This replaces that approach with the `sphinxcontrib.towncrier.ext` extension, which renders draft changelog entries natively via the `towncrier-draft-entries` directive. The draft section only appears in non-release builds (via Sphinx's `.. only:: not is_release` conditional), matching the pattern used by yarl and other aio-libs projects. **Changes:** - Added `sphinxcontrib.towncrier.ext` to Sphinx extensions with `towncrier_draft_*` config - Replaced `.. include:: _draft.rst` in `changelog.rst` with `.. towncrier-draft-entries::` directive - Removed the manual `towncrier build --draft` script from `setup()` and its unused imports - Removed `_draft.rst` from `.gitignore` and `exclude_patterns` Fixes #3201
Configuration menu - View commit details
-
Copy full SHA for 0f4da83 - Browse repository at this point
Copy the full SHA 0f4da83View commit details -
✨ feat(toml): add generative env_list via product dict (#3797)
TOML users have had to manually enumerate every environment in `env_list` when they need a test matrix, while INI users could write concise expressions like `py3{12,13}-django{42,50}`. This gap made TOML configuration verbose and error-prone for projects with large matrices, and was one of the most visible feature disparities between the two formats. ✨ This introduces a TOML-native `product` dict syntax that leverages TOML's type system instead of mimicking INI's string-based brace expansion. Factor groups are expressed as arrays of strings or range dicts, and tox computes the Cartesian product joining combinations with `-`. Range dicts (`{ prefix = "py3", start = 12, stop = 14 }`) generate sequential factors, with open-ended bounds matching INI's `py3{10-}` behavior. An `exclude` key allows skipping specific combinations — a capability not available in INI at all. ```toml env_list = [ "lint", { product = [ { prefix = "py3", start = 12, stop = 14 }, ["django42", "django50"], ] }, ] ``` Documentation has been updated across all four Diataxis dimensions (tutorial, how-to, reference, explanation) with TOML shown first in all tab pairs. The "TOML feature gaps" section has been renamed to "Format comparison" since generative `env_list` was the last major functional gap — only generative section names remain INI-exclusive. The JSON schema has been extended to validate `product` dicts with their factor groups and optional `exclude` arrays.Configuration menu - View commit details
-
Copy full SHA for b11c645 - Browse repository at this point
Copy the full SHA b11c645View commit details -
🐛 fix(config): restore factor conditional continuations (#3799)
Commit 78eb394 (#3787) moved continuation line collapsing (`\`) before factor filtering to fix #2912, where factor-specific multiline commands leaked continuation lines into non-matching environments. However, this broke the common pattern of using different factor prefixes on consecutive continuation lines — the collapsed single line caused prefixes like `!cov:` to be passed as literal command arguments instead of being filtered. ```ini commands = cov: coverage run \ !cov: python \ somefile.py ``` Running `tox -e py-cov` produced `coverage run '!cov:' python somefile.py` instead of `coverage run somefile.py`. The fix restores the original order (factor filter first, collapse `\` after) and makes `filter_for_env` continuation-aware. Two flags track whether a kept line has an active backslash chain (`active_continuation`) and whether a filtered-out line's continuation should be skipped (`pending_skip`). An unfactored continuation line is only dropped when it is exclusively reachable through removed factored lines, preserving the fix for #2912 while restoring the conditional continuation pattern from #3796. Fixes #3796.
Configuration menu - View commit details
-
Copy full SHA for 413b963 - Browse repository at this point
Copy the full SHA 413b963View commit details -
🐛 fix(pip): pass config_settings to pip for sdist install (#3800)
When `package = sdist`, tox builds an sdist via PEP-517 and then hands it to pip for installation. Pip internally builds a wheel from that sdist, but `config_settings_build_wheel` was never forwarded as `--config-settings` flags. This meant build backends couldn't honor wheel-build config settings during pip's internal build phase, silently ignoring user configuration. The `sdist-wheel` package type wasn't affected since tox builds the wheel directly with config settings in that flow. The fix threads `config_settings_build_wheel` from the `.pkg` environment through `SdistPackage` and into the pip install command as `--config-settings=KEY=VALUE` flags. This keeps the data flow explicit — config settings travel with the package object rather than requiring the installer to reach back into the package environment's configuration. Fixes #3125
Configuration menu - View commit details
-
Copy full SHA for 8517abc - Browse repository at this point
Copy the full SHA 8517abcView commit details -
Configuration menu - View commit details
-
Copy full SHA for f4855f3 - Browse repository at this point
Copy the full SHA f4855f3View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 4.42.0...4.43.0