- Fix regression introduced in 4.3.0 which occured when a substitution expression
for an environment variable that had previously been substituted appears in the
ini file after a substitution expression for a different environment variable.
This situation erroneously resulted in an exception about "circular chain
between set" of those variables - by :user:`masenf`. (:issue:`2869`)
v4.3.1 (2023-01-15)
Bugfixes - 4.3.1
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.
find_replace_part is removed from tox.config.loader.ini.replace
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)
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.0 to 4.3.2.
Release notes
Sourced from tox's releases.
... (truncated)
Changelog
Sourced from tox's changelog.
... (truncated)
Commits
a2222e9
release 4.3.214194d6
Fix a incorrect config key name (#2868)0006a12
Fix regression with multiple env substitutions for the same key (#2873)2d46a1e
Fix typos in{tox_root}
variable named17994f
Fix a RestructuredText typoaeaba41
Fix rendering ofversion_added
7ccd0f1
release 4.3.199b849b
Recursive replace (#2864)6fe280a
release 4.3.0aff1d4d
Rewrite substitution parser (#2861)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)