Skip to content

Latest commit

 

History

History
1475 lines (1113 loc) · 64.1 KB

changelog.rst

File metadata and controls

1475 lines (1113 loc) · 64.1 KB

Release History

v4.20.0 (2024-09-18)

Features - 4.20.0

  • Separate the list dependencies functionality to a separate abstract class allowing code reuse in plugins (such as tox-uv) - by :gaborbernat`. (:issue:`3347`)

v4.19.0 (2024-09-17)

Features - 4.19.0

v4.18.1 (2024-09-07)

Bugfixes - 4.18.1

Improved Documentation - 4.18.1

  • Changes the tox_env_teardown docstring to explain the hook is called after a tox env was teared down. (:issue:`3305`)

v4.18.0 (2024-08-13)

Features - 4.18.0

Bugfixes - 4.18.0

v4.17.1 (2024-08-07)

Bugfixes - 4.17.1

v4.17.0 (2024-08-05)

Features - 4.17.0

Bugfixes - 4.17.0

  • Add table with default environment variables per OS (:issue:`2753`)

v4.16.0 (2024-07-02)

Bugfixes - 4.16.0

Improved Documentation - 4.16.0

v4.15.1 (2024-06-05)

Features - 4.15.1

  • Fix skip_missing_interpreters option for package = wheel (:issue:`3269`)

Bugfixes - 4.15.1

  • Fix section substitution with setenv. (:issue:`3262`)
  • Allow ConfigSet.add_config to receive parameterized generics for of_type. (:issue:`3288`)

v4.15.0 (2024-04-26)

Features - 4.15.0

Bugfixes - 4.15.0

Improved Documentation - 4.15.0

v4.14.2 (2024-03-22)

Bugfixes - 4.14.2

Improved Documentation - 4.14.2

  • Removed unused line from the fresh_subprocess documentation. (:issue:`3241`)

v4.14.1 (2024-03-06)

Bugfixes - 4.14.1

  • Fix crash with fresh subprocess, if the build backend is setuptools automatically enable fresh subprocesses for build backend calls - by :user:`gaborbernat`. (:issue:`3235`)

v4.14.0 (2024-03-05)

Features - 4.14.0

v4.13.0 (2024-02-16)

Features - 4.13.0

Improved Documentation - 4.13.0

v4.12.1 (2024-01-16)

Bugfixes - 4.12.1

  • Fixed bug where running with --installpkg and multiple envs could not clean up between tests (:issue:`3165`)

v4.12.0 (2024-01-11)

Features - 4.12.0

  • Always pass FORCE_COLOR and NO_COLOR to the environment (:issue:`3172`)

Bugfixes - 4.12.0

  • --parallel-no-spinner flag now implies --parallel (:issue:`3158`)

Improved Documentation - 4.12.0

v4.11.4 (2023-11-27)

Bugfixes - 4.11.4

  • Fix terminal size of tox subcommands (fixes ipython, ipdb, prompt_toolkit, ...). (:issue:`2999`)
  • Fix quickstart command from requiring root positional argument (:issue:`3084`)
  • Added 'AppData' to the default passed environment variables on Windows. (:issue:`3151`)

Improved Documentation - 4.11.4

v4.11.3 (2023-09-08)

Bugfixes - 4.11.3

  • Handle FileNotFoundError when the base_python interpreter doesn't exist (:issue:`3105`)

Improved Documentation - 4.11.3

v4.11.2 (2023-09-07)

Bugfixes - 4.11.2

Improved Documentation - 4.11.2

v4.11.1 (2023-09-01)

Bugfixes - 4.11.1

v4.11.0 (2023-08-29)

Features - 4.11.0

v4.10.0 (2023-08-21)

Features - 4.10.0

  • Change accepted environment name rule: must be made up of factors defined in configuration or match regex (pypy|py|cython|)((\d(\.\d+(\.\d+)?)?)|\d+)?. If an environment name does not match this fail, and if a close match found suggest that to the user. (:issue:`3099`)

Bugfixes - 4.10.0

  • --override foo+=bar appending syntax will now work correctly when foo wasn't defined in tox.ini. (:issue:`3100`)

v4.9.0 (2023-08-16)

Features - 4.9.0

v4.8.0 (2023-08-12)

Features - 4.8.0

  • --override can now take options in the form of foo+=bar which will append bar to the end of an existing list/dict, rather than replacing it. (:issue:`3087`)

v4.7.0 (2023-08-08)

Features - 4.7.0

  • Make --hashseed default to PYTHONHASHSEED, if defined - by :user:`paravoid`. The main motivation for this is to able to set the hash seed when building the documentation with tox -e docs, and thus avoid embedding a random value in the tox documentation for --help. This caused documentation builds to fail to build reproducibly. (:issue:`2942`)

Bugfixes - 4.7.0

  • Update a regular expression in tests to match the exception message in both Python 3.12 and older. (:issue:`3065`)

Improved Documentation - 4.7.0

v4.6.4 (2023-07-06)

Bugfixes - 4.6.4

  • Fix hang and zombie process on interrupt (CTRL-C). (:issue:`3056`)

v4.6.3 (2023-06-19)

Bugfixes - 4.6.3

  • Ensure that get_requires_for_build_wheel is called before prepare_metadata_for_build_wheel, and get_requires_for_build_editable is called before prepare_metadata_for_build_editable - by :user:`abravalheri`. (:issue:`3043`)

Improved Documentation - 4.6.3

  • Linked environment variable substitutions docs in set_env and pass_env config docs. (:issue:`3039`)

v4.6.2 (2023-06-16)

Bugfixes - 4.6.2

v4.6.1 (2023-06-15)

No significant changes.

v4.6.0 (2023-06-05)

Features - 4.6.0

  • Added --list-dependencies and --no-list-dependencies CLI parameters. If unspecified, defaults to listing when in CI, but not otherwise. (:issue:`3024`)

Misc - 4.6.0

v4.5.1 (2023-05-25)

Bugfixes - 4.5.1

v4.5.0 (2023-04-24)

Features - 4.5.0

  • When run with verbosity=1, the per-step timing summaries are suppressed at the end of the run. Thanks to :user:`nedbat` at the PyCon 2023 sprints. (:issue:`2891`)

Improved Documentation - 4.5.0

v4.4.12 (2023-04-13)

Bugfixes - 4.4.12

  • Avoid race conditions in tests using the demo_pkg_inline fixture. (:issue:`2985`)

v4.4.11 (2023-04-05)

Bugfixes - 4.4.11

  • Fixed an issue where a tox plugin couldn't change the value of tox_root. (:issue:`2966`)

v4.4.10 (2023-04-05)

Bugfixes - 4.4.10

  • Fix issue where work_dir was not correctly including tox_root for test runs. (:issue:`2933`)

v4.4.9 (2023-04-05)

Bugfixes - 4.4.9

  • Instead of raising UnicodeDecodeError when command output includes non-utf-8 bytes, tox will now use surrogateescape error handling to convert the unrecognized bytes to escape sequences according to PEP 383 - by :user:`masenf`. (:issue:`2969`)

Improved Documentation - 4.4.9

v4.4.8 (2023-03-26)

Bugfixes - 4.4.8

  • tox.ini is now included in source distributions in order to make all tests pass. (:issue:`2939`)
  • Fix --index-url and --find-links being used together in requirements.txt files. (:issue:`2959`)

v4.4.6 (2023-02-21)

Bugfixes - 4.4.6

  • Plugins are now able to access tox.ini config sections using a custom prefix with the same suffix / name as a tox testenv - by :user:`masenf` (:issue:`2926`)

v4.4.5 (2023-02-07)

Bugfixes - 4.4.5

  • Ignore labels when tox will provision a runtime environment (.tox) so that environment configurations which depend on provisioned plugins or specific tox versions are not accessed in the outer tox process where the configuration would be invalid - by :user:`masenf`. (:issue:`2916`)

v4.4.4 (2023-01-31)

Bugfixes - 4.4.4

v4.4.3 (2023-01-30)

Bugfixes - 4.4.3

  • Tox will now expand self-referential extras discovered in package deps to respect local modifications to package metadata. This allows a package extra to explicitly depend on another package extra, which previously only worked with non-static metadata - by :user:`masenf`. (:issue:`2904`)

v4.4.2 (2023-01-25)

Bugfixes - 4.4.2

  • Allow the user configuration file (default <appdir>/tox/config.ini) to be overridden via the TOX_USER_CONFIG_FILE environment variable. Previously tox was looking at the TOX_CONFIG_FILE to override the user configuration, however that environment variable is already used to override the main configuration - by :user:`masenf`. (:issue:`2890`)

v4.4.1 (2023-01-25)

Bugfixes - 4.4.1

  • In tox 4.4.0 constrain_package_deps was introduced with a default value of True. This has been changed back to False, which restores the original behavior of tox 4.3.5 - by :user:`masenf`. (:issue:`2897`)

v4.4.0 (2023-01-25)

Features - 4.4.0

  • Test environments now recognize boolean config keys constrain_package_deps (default=true) and use_frozen_constraints (default=false), which control how tox generates and applies constraints files when performing install_package_deps.

    If constrain_package_deps is true (default), then tox will write out {env_dir}{/}constraints.txt and pass it to pip during install_package_deps. If use_frozen_constraints is false (default), the constraints will be taken from the specifications listed under deps (and inside any requirements or constraints file referenced in deps). Otherwise, list_dependencies_command (pip freeze) is used to enumerate exact package specifications which will be written to the constraints file.

    In previous releases, conflicting package dependencies would silently override the deps named in the configuration, resulting in test runs against unexpected dependency versions, particularly when using tox factors to explicitly test with different versions of dependencies - by :user:`masenf`. (:issue:`2386`)

Bugfixes - 4.4.0

  • When parsing command lines, use shlex(..., posix=True), even on windows platforms, since non-POSIX mode does not handle escape characters and quoting like a shell would. This improves cross-platform configurations without hacks or esoteric quoting.

    To make this transition easier, on Windows, the backslash path separator will not treated as an escape character unless it precedes a quote, whitespace, or another backslash character. This allows paths to mostly be written in single or double backslash style.

    Note that double-backslash will no longer be escaped to a single backslash in substitutions, instead the double backslash will be consumed as part of command splitting, on either posix or windows platforms.

    In some instances superfluous double or single quote characters may be stripped from arg arrays in ways that do not occur in the default windows cmd.exe shell - by :user:`masenf`. (:issue:`2635`)

Improved Documentation - 4.4.0

  • Add information when command from list_dependencies_command configuration option is used. (:issue:`2883`)

v4.3.5 (2023-01-18)

Bugfixes - 4.3.5

  • When building a wheel or editable package with a PEP 517 backend, no longer pass an empty metadata_directory to the backend build_wheel or build_editable endpoint.

    Some backends, such as PDM and poetry, will not generate package metadata in the presence of a metadata_directory, even if it is empty.

    Prior to this change, attempting to install a wheel created by tox using PDM or poetry would return an error like "There is no item named 'my-package.0.1.dist-info/WHEEL' in the archive" - by :user:`masenf`. (:issue:`2880`)

v4.3.4 (2023-01-17)

Bugfixes - 4.3.4

  • When executing via the provisioning environment (.tox by default), run tox in working directory of the parent process.

    Prior to this change (from tox 4.0.0), the provisioned tox would execute with {tox_root} as the working directory, which breaks when a relative path is passed to -c or --conf and tox is executed in a working directory other than {tox_root} - by :user:`masenf`. (:issue:`2876`)

Misc - 4.3.4

v4.3.3 (2023-01-16)

Bugfixes - 4.3.3

  • The provision environment (.tox) will never inherit from testenv. During provisioning, other test environments are not processed, allowing the use of keys and values that may be registered by later tox version or provisioned plugins - by :user:`masenf`. (:issue:`2862`)

v4.3.2 (2023-01-16)

Bugfixes - 4.3.2

  • Fix regression introduced in 4.3.0 which occurred 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`)

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`)
  • tox has reverted support for Python factors that include PATCH release info (e.g. py3.10.1), build architecture (e.g. pypy3-64) or do not define a py prefix or other supported prefix (e.g. 3.10). These complex factors were initially supported with the release of tox 4.0 but has proven complicated to support. Instead, the simple factors supported by tox 3 e.g. (py310, pypy3) or period-separated equivalent (py3.10) introduced in tox 4 should be used. Users who wish to specify more specific Python version information should configure the :ref:`base_python` setting - by :user:`stephenfin`. (:issue:`2848`)

v4.2.6 (2023-01-06)

Bugfixes - 4.2.6

  • Handle properly pip --no-binary / --only-binary options in requirements.txt format files. (:issue:`2814`)

v4.2.5 (2023-01-06)

Bugfixes - 4.2.5

  • The combination of usedevelop = true and --skip-missing-interpreters=false will no longer fail for environments that were not invoked - by :user:`stephenfin`. (:issue:`2811`)
  • Fix an attribute error when use_develop = true is set and an unsupported interpreter version is requested - by :user:`stephenfin`. (:issue:`2826`)
  • tox returns a non-zero error code if all envs are skipped. It will now correctly do this if only a single env was requested and this was skipped - by :user:`stephenfin`. (:issue:`2827`)

v4.2.4 (2023-01-05)

Bugfixes - 4.2.4

v4.2.3 (2023-01-04)

Bugfixes - 4.2.3

v4.2.2 (2023-01-04)

Bugfixes - 4.2.2

  • Add CC, CFLAGS, CCSHARED, CXX, CPPFLAGS, LDFLAGS, PKG_CONFIG and PKG_CONFIG_SYSROOT_DIR to the default passed through environment variables list as these are needed for building various C-extensions - by :user:`gaborbernat`. (:issue:`2818`)

v4.2.1 (2023-01-03)

Bugfixes - 4.2.1

v4.2.0 (2023-01-03)

Features - 4.2.0

  • Packaging environments now inherit from the pkgenv section, allowing to set all your packaging options in one place, and support the deps key to set additional dependencies that will be installed after pyproject.toml static requires but before backends dynamic requires - by :user:`gaborbernat`. (:issue:`2543`)

Improved Documentation - 4.2.0

v4.1.3 (2023-01-02)

Bugfixes - 4.1.3

Improved Documentation - 4.1.3

Misc - 4.1.3

v4.1.2 (2022-12-30)

Bugfixes - 4.1.2

v4.1.1 (2022-12-29)

Bugfixes - 4.1.1

  • Fix logging error with emoji in git branch name. (:issue:`2768`)

Improved Documentation - 4.1.1

v4.1.0 (2022-12-29)

Features - 4.1.0

Improved Documentation - 4.1.0

v4.0.19 (2022-12-28)

Bugfixes - 4.0.19

v4.0.18 (2022-12-26)

Bugfixes - 4.0.18

v4.0.17 (2022-12-25)

Features - 4.0.17

Bugfixes - 4.0.17

v4.0.16 (2022-12-20)

Bugfixes - 4.0.16

v4.0.15 (2022-12-19)

Bugfixes - 4.0.15

v4.0.14 (2022-12-18)

Bugfixes - 4.0.14

v4.0.13 (2022-12-17)

Bugfixes - 4.0.13

v4.0.12 (2022-12-16)

Bugfixes - 4.0.12

Improved Documentation - 4.0.12

v4.0.11 (2022-12-14)

Features - 4.0.11

  • Modified handling of NO_COLOR environment variable, consistent with de facto conventions: any non-empty string will enable NO_COLOR (disable colorized output); no NO_COLOR variable or NO_COLOR with an empty string will disable NO_COLOR (enable colorized output) - by :user:`ptmcg`. (:issue:`2719`)

Bugfixes - 4.0.11

v4.0.10 (2022-12-14)

Features - 4.0.10

  • Add py_dot_ver and py_impl constants to environments to show the current Python implementation and dot version (e.g. 3.11) for the current environment. These can be also used as substitutions in tox.ini - by :user:`gaborbernat`. (:issue:`2640`)

Bugfixes - 4.0.10

  • --help now reports the default verbosity level (which is WARNING) correctly. (:issue:`2707`)

v4.0.9 (2022-12-13)

Features - 4.0.9

v4.0.8 (2022-12-11)

Bugfixes - 4.0.8

v4.0.7 (2022-12-11)

Bugfixes - 4.0.7

v4.0.6 (2022-12-10)

Features - 4.0.6

v4.0.5 (2022-12-09)

Bugfixes - 4.0.5

v4.0.4 (2022-12-09)

Bugfixes - 4.0.4

Improved Documentation - 4.0.4

  • Document that running --showconfig or --help-ini with the -v flag will add interleaved debugging information, whereas tox v3 added extra lines at the start - by :user:`jugmac00`. (:issue:`2622`)
  • Document that tox v4 errors when using -U when defining dependencies via deps - by :user:`jugmac00`. (:issue:`2631`)

v4.0.3 (2022-12-08)

Bugfixes - 4.0.3

Improved Documentation - 4.0.3

v4.0.2 (2022-12-07)

Bugfixes - 4.0.2

v4.0.1 (2022-12-07)

Bugfixes - 4.0.1

v4.0.0 (2022-12-07)

Bugfixes - 4.0.0

Improved Documentation - 4.0.0

v4.0.0rc4 (2022-12-06)

Bugfixes - 4.0.0rc4

Deprecations and Removals - 4.0.0rc4

v4.0.0rc3 (2022-12-05)

Features - 4.0.0rc3

  • Add --exit-and-dump-after flag that allows automatically killing tox if does not finish within the passed seconds, and dump the thread stacks (useful to debug tox when it seemingly hangs) - by :user:`gaborbernat`. (:issue:`2595`)

Bugfixes - 4.0.0rc3

  • Ensure that two parallel tox instance invocations on different tox environment targets will work by holding a file lock onto the packaging operations (e.g., in bash tox4 r -e py311 &; tox4 r -e py310) - by :user:`gaborbernat`. (:issue:`2594`)
  • Fix leaking backend processes when the build backend does not support editable wheels and fix failure when multiple environments exist that have a build backend that does not support editable wheels - by :user:`gaborbernat`. (:issue:`2595`)

v4.0.0rc2 (2022-12-04)

Features - 4.0.0rc2

Bugfixes - 4.0.0rc2

v4.0.0rc1 (2022-11-29)

Features - 4.0.0rc1

Bugfixes - 4.0.0rc1

v4.0.0b3 (2022-11-27)

Features - 4.0.0b3

Bugfixes - 4.0.0b3

Improved Documentation - 4.0.0b3

v4.0.0b2 (2022-04-11)

Features - 4.0.0b2

Bugfixes - 4.0.0b2

Improved Documentation - 4.0.0b2

v4.0.0b1 (2022-02-05)

Features - 4.0.0b1

Bugfixes - 4.0.0b1

Improved Documentation - 4.0.0b1

v4.0.0a10 (2022-01-04)

Features - 4.0.0a10

Bugfixes - 4.0.0a10

Deprecations and Removals - 4.0.0a10

  • tox_add_core_config and tox_add_env_config now take a state: State argument instead of a configuration one, and Config not longer provides the envs property (instead users should migrate to State.envs) - by :user:`gaborbernat`. (:pull:`2275`)

v4.0.0a9 (2021-09-16)

Features - 4.0.0a9

Bugfixes - 4.0.0a9

Improved Documentation - 4.0.0a9

  • Adopt furo theme, update our state diagram and description in user docs (SVG + light/dark variant), split the Python API into its own page from under the plugin page, and document plugin adoption under the tox-dev organization - by :user:`gaborbernat`. (:issue:`1881`)

v4.0.0a8 (2021-08-21)

Features - 4.0.0a8

Bugfixes - 4.0.0a8

Improved Documentation - 4.0.0a8

v4.0.0a7 (2021-07-28)

Features - 4.0.0a7

Bugfixes - 4.0.0a7

Improved Documentation - 4.0.0a7

v4.0.0a6 (2021-02-15)

Features - 4.0.0a6

Bugfixes - 4.0.0a6

Deprecations and Removals - 4.0.0a6

    • Drop support for sdistsrc flag because introduces a significant complexity and is barely used (5 hits on a github search).
    • --skip-missing-interpreters, --notest, --sdistonly, --installpkg, --develop and --skip-pkg-install CLI flags are no longer available for devenv (enforce the only sane value for these).

    By :user:`gaborbernat` (:issue:`1839`)

  • Remove Jenkins override support: this feature goes against the spirit of tox - blurring the line between the CI and local runs. It also singles out a single CI provider, which opens the door for other CIs wanting similar functionality. Finally, only 54 code file examples came back on a Github search, showing this is a not widely used feature. People who still want Jenkins override support may create a tox plugin to achieve this functionality - by :user:`gaborbernat`. (:issue:`1841`)

v4.0.0a5 (2021-01-23)

Features - 4.0.0a5

Bugfixes - 4.0.0a5

  • Not all package dependencies are installed when different tox environments in the same run use different set of extras - by :user:`gaborbernat`. (:issue:`1868`)

  • Support = separator in requirement file flags, directories as requirements and correctly set the root of the requirements file when using the --root CLI flag to change the root - by :user:`gaborbernat`. (:issue:`1853`)

  • Cleanup local subprocess file handlers when exiting runs (fixes ResourceWarning: unclosed file errors when running with env PYTHONTRACEMALLOC=5 PYTHONDEVMODE=y under a Python built with --with-pydebug) - by :user:`gaborbernat`. (:issue:`1857`)

  • Various small bugfixes:

    • honor updating default environment variables set by internal tox via set env (PIP_DISABLE_PIP_VERSION_CHECK)
    • do not multi-wrap HandledError in the ini file loader,
    • skipped environments are logged now with their fail message at default verbosity level,
    • fix an error that made the show configuration command crash when making the string of a config value failed,
    • support empty-new lines within the set env configurations replacements,

    by :user:`gaborbernat`. (:pull:`1864`)

Improved Documentation - 4.0.0a5

v4.0.0a4 (2021-01-16)

Features - 4.0.0a4

  • Use .tox/4 instead of .tox4 folder (so ignores for tox 3 works for tox 4 too), reminder we'll rename this to just .tox before public release, however to encourage testing tox 4 in parallel with tox 3 this is helpful - by :user:`gaborbernat`. (:discussion:`1812`)
  • Colorize the config command: section headers are yellow, keys are green, values remained white, exceptions are light red and comments are cyan - by :user:`gaborbernat`. (:pull:`1821`)

Bugfixes - 4.0.0a4

  • Support legacy format (-cconstraint.txt) of constraint files in deps, and expand constraint files too when viewing inside the deps or calculating weather our environment is up to date or not - by :user:`gaborbernat`. (:issue:`1788`)
  • When specifying requirements/editable/constraint paths within deps escape space, unless already escaped to support running specifying transitive requirements files within deps - by :user:`gaborbernat`. (:issue:`1792`)
  • When using a provisioned tox environment requesting --recreate failed with AttributeError - by :user:`gaborbernat`. (:issue:`1793`)
  • Fix RequirementsFile from tox is rendered incorrectly in config command - by :user:`gaborbernat`. (:issue:`1820`)
  • Fix a bug in the configuration system where referring to the same named key in another env/section causes circular dependency error - by :user:`gaborbernat`. (:pull:`1821`)
  • Raise ValueError with descriptive message when a requirements file specified does not exist - by :user:`gaborbernat`. (:pull:`1828`)
  • Support all valid requirement file specification without delimiting space in the deps of the tox.ini - by :user:`gaborbernat`. (:issue:`1834`)

Improved Documentation - 4.0.0a4

v4.0.0a3 (2021-01-13)

Features - 4.0.0a3

  • Raise exception when set env enters into a circular reference - by :user:`gaborbernat`. (:issue:`1779`)
    • Raise exception when variable substitution enters into a circle.
    • Add {/} as substitution for os specific path separator.
    • Add {env_bin_dir} constant substitution.
    • Implement support for --discover flag - by :user:`gaborbernat`. (:pull:`1784`)

Bugfixes - 4.0.0a3

  • Entries in the set_env does not reference environments from set_env - by :user:`gaborbernat`. (:issue:`1776`)

  • env substitution does not uses values from set_env - by :user:`gaborbernat`. (:issue:`1779`)

  • Adopt tox 3 base pass env list, by adding:

    • on all platforms: LANG, LANGUAGE, CURL_CA_BUNDLE, SSL_CERT_FILE , LD_LIBRARY_PATH and REQUESTS_CA_BUNLDE,
    • on Windows: SYSTEMDRIVE - by :user:`gaborbernat`. (:issue:`1780`)
  • Fixed a bug that crashed tox where calling tox with the recreate flag and when multiple environments were reusing the same package - by :user:`gaborbernat`. (:issue:`1782`)

    • Python version markers are stripped in package dependencies (after wrongfully being detected as an extra marker).
    • In packaging APIs do not set PYTHONPATH (to empty string) if backend-path is empty.
    • Fix commands parsing on Windows (do not auto-escape \ - instead users should use the new {\}, and on parsed arguments strip both ' and " quoted outcomes).
    • Allow windows paths in substitution set/default (the : character used to separate substitution arguments may also be present in paths on Windows - do not support single capital letter values as substitution arguments) - by :user:`gaborbernat`. (:pull:`1784`)
  • Rework how we handle Python packaging environments:

    • the base packaging environment changed from .package to .pkg,
    • merged the sdist, wheel and dev separate packaging implementations into one, and internally dynamically pick the one that's needed,
    • the base packaging environment always uses the same Python environment as tox is installed into,
    • the base packaging environment is used to get the metadata of the project (via PEP-517) and to build sdist and dev packages,
    • for building wheels introduced a new per env configurable option wheel_build_env, if the target Python major/minor and implementation for the run tox environment and the base package tox environment matches set this to .pkg, otherwise this is .pkg-{implementation}{major}{minor},
    • internally now packaging environments can create further packaging environments they are responsible of managing,
    • updated depends to use the packaging logic,
    • add support skip missing interpreters for depends and show config,

    by :user:`gaborbernat`. (:issue:`1804`)

v4.0.0a2 (2021-01-09)

Features - 4.0.0a2

Bugfixes - 4.0.0a2

  • Fix coverage generation in CI - by :user:`gaborbernat`. (:pull:`1551`)
  • Fix the CI failures:
    • drop Python 3.5 support as it's not expected to get to a release before EOL,
    • fix test using \n instead of os.linesep,
    • Windows Python 3.6 does not contain _overlapped.ReadFileInto
    • by :user:`gaborbernat`. (:pull:`1556`)

Improved Documentation - 4.0.0a2

v4.0.0a1

  • First version all is brand new.

Warning

The current tox is the second iteration of implementation. From version 0.5 all the way to 3.X we numbered the first iteration. Version 4.0.0a1 is a complete rewrite of the package, and as such this release history starts from there. The old changelog is still available in the legacy branch documentation.