- Fix regression introduced in 4.3.0 by expanding substitution expressions
(``{...}``) that result from a previous subsitution's replacement value (up to
100 times). Note that recursive expansion is strictly depth-first; no
replacement value will ever affect adjacent characters nor will expansion ever
occur over the result of more than one replacement - by :user:`masenf`. (:issue:`2863`)
v4.3.0 (2023-01-15)
Features - 4.3.0
Rewrite substitution replacement parser - by :user:masenf
\ acts as a proper escape for \ in ini-style substitutions
The resulting value of a substitution is no longer reprocessed in the context
of the broader string. (Prior to this change, ini-values were repeatedly re-substituted until
the expression no longer had modifications)
Migrate and update "Substitutions" section of Configuration page from v3 docs.
New names exported from tox.config.loader.ini.replace:
find_replace_expr
MatchArg
MatchError
MatchExpression
Note: the API for replace itself is unchanged. (:issue:2732)
Improved documentation for factors and test env names - by :user:stephenfin. (:issue:2852)
v4.2.8 (2023-01-11)
Bugfixes - 4.2.8
- Allow using package names with env markers for pip's ``--no-binary`` and ``--only-binary`` options - by :user:`q0w`. (:issue:`2814`)
v4.2.7 (2023-01-11)
Bugfixes - 4.2.7
A testenv with multiple factors, one of which conflicts with a base_python setting in tox.ini, will now use the
correct Python interpreter version - by :user:stephenfin. (:issue:2838)
Explicitly list wheel as requirement for the tests, as some of the tests error without it. (:issue:2843)
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 merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@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 from 3.27.1 to 4.3.1.
Release notes
Sourced from tox's releases.
... (truncated)
Changelog
Sourced from tox's changelog.
... (truncated)
Commits
7ccd0f1
release 4.3.199b849b
Recursive replace (#2864)6fe280a
release 4.3.0aff1d4d
Rewrite substitution parser (#2861)24bf148
Document factors (#2852)793132d
Add Documentation URL for quick access via PyPI web (#2854)955a7fb
release 4.2.88d3d26b
Allow package names with env markers with pip binary options (#2853)b8e47ce
release 4.2.79f89f51
Revert to supporting simple Python factors (#2849)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 merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@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)