Skip to content

Commit

Permalink
Default tox min_version to 4.0 instead of current tox version
Browse files Browse the repository at this point in the history
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
  • Loading branch information
gaborbernat committed Dec 7, 2022
1 parent 60d4e25 commit 4573cfd
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 12 deletions.
10 changes: 2 additions & 8 deletions src/tox/provision.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
from tox.tox_env.errors import Skip
from tox.tox_env.python.pip.req_file import PythonDeps
from tox.tox_env.python.runner import PythonRun
from tox.version import version as current_version

if sys.version_info >= (3, 8): # pragma: no cover (py38+)
from importlib.metadata import PackageNotFoundError, distribution
Expand Down Expand Up @@ -63,7 +62,7 @@ def provision(state: State) -> int | bool:
keys=["min_version", "minversion"],
of_type=Version,
# do not include local version specifier (because it's not allowed in version spec per PEP-440)
default=Version(current_version),
default=Version("4.0"),
desc="Define the minimal tox version required to run",
)
state.conf.core.add_config(
Expand All @@ -75,12 +74,7 @@ def provision(state: State) -> int | bool:

def add_tox_requires_min_version(requires: list[Requirement]) -> list[Requirement]:
min_version: Version = state.conf.core["min_version"]
# If own version can be a development one or a pre-release, we need to only use its base_version for
# requirements, or pip will never be able to find a version that is compatible with the requirement.
if min_version.is_devrelease or min_version.is_prerelease:
# Earliest possible pre-release number for current base version.
min_version = Version(f"{min_version.base_version}a0")
requires.append(Requirement(f"tox >= {min_version.public}"))
requires.append(Requirement(f"tox >= {min_version}"))
return requires

state.conf.core.add_config(
Expand Down
5 changes: 1 addition & 4 deletions tests/test_provision.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@
from devpi_process import Index, IndexServer
from filelock import FileLock
from packaging.requirements import Requirement
from packaging.version import Version

from tox import __version__
from tox.pytest import MonkeyPatch, TempPathFactory, ToxProjectCreator

if sys.version_info >= (3, 8): # pragma: no cover (py38+)
Expand Down Expand Up @@ -189,5 +187,4 @@ def test_provision_no_recreate_json(tox_project: ToxProjectCreator) -> None:
assert msg in result.out
with (project.path / "out.json").open() as file_handler:
requires = json.load(file_handler)
version = Version(__version__).base_version
assert requires == {"minversion": version, "requires": ["p", f"tox>={version}"]}
assert requires == {"minversion": "4.0", "requires": ["p", "tox>=4.0"]}

0 comments on commit 4573cfd

Please sign in to comment.