diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml index 3f943853f..68120bde6 100644 --- a/.github/workflows/check.yaml +++ b/.github/workflows/check.yaml @@ -21,6 +21,8 @@ jobs: fail-fast: false matrix: py: + - "3.14t" + - "3.14" - "3.13t" - "3.13" - "3.12" @@ -56,14 +58,14 @@ jobs: - name: 🐍 Setup Python for tox uses: actions/setup-python@v5 with: - python-version: "3.13" + python-version: "3.14" - name: 📦 Install tox with this virtualenv shell: bash run: | - if [[ "${{ matrix.py }}" == "3.13t" ]]; then - uv tool install --no-managed-python --python 3.13 tox --with . + if [[ "${{ matrix.py }}" == "3.13t" || "${{ matrix.py }}" == "3.14t" ]]; then + uv tool install --no-managed-python --python 3.14 tox --with . else - uv tool install --no-managed-python --python 3.13 tox --with tox-uv --with . + uv tool install --no-managed-python --python 3.14 tox --with tox-uv --with . fi - name: 🐍 Setup Python for test ${{ matrix.py }} uses: actions/setup-python@v5 @@ -135,7 +137,7 @@ jobs: - name: 🚀 Install uv uses: astral-sh/setup-uv@v4 - name: 📦 Install tox - run: uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv + run: uv tool install --python-preference only-managed --python 3.14 tox --with tox-uv - name: 📥 Checkout code uses: actions/checkout@v4 with: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index f581f3e54..def30f5d9 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -21,7 +21,7 @@ jobs: cache-dependency-glob: "pyproject.toml" github-token: ${{ secrets.GITHUB_TOKEN }} - name: 📦 Build package - run: uv build --python 3.13 --python-preference only-managed --sdist --wheel . --out-dir dist + run: uv build --python 3.14 --python-preference only-managed --sdist --wheel . --out-dir dist - name: 📦 Store the distribution packages uses: actions/upload-artifact@v4 with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index cbe29d7df..332ac436b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,7 +5,7 @@ repos: - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.33.3 + rev: 0.34.0 hooks: - id: check-github-workflows args: ["--verbose"] @@ -20,11 +20,11 @@ repos: - id: tox-ini-fmt args: ["-p", "fix"] - repo: https://github.com/tox-dev/pyproject-fmt - rev: "v2.6.0" + rev: "v2.8.0" hooks: - id: pyproject-fmt - repo: https://github.com/astral-sh/ruff-pre-commit - rev: "v0.13.0" + rev: "v0.14.0" hooks: - id: ruff-format - id: ruff diff --git a/pyproject.toml b/pyproject.toml index f879b4034..85ff87ae8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries", @@ -159,7 +160,7 @@ builtin = "clear,usage,en-GB_to_en-US" count = true [tool.pyproject-fmt] -max_supported_python = "3.13" +max_supported_python = "3.14" [tool.pytest.ini_options] markers = [ diff --git a/src/virtualenv/util/path/_sync.py b/src/virtualenv/util/path/_sync.py index 02a6f6e9e..4dd5a9860 100644 --- a/src/virtualenv/util/path/_sync.py +++ b/src/virtualenv/util/path/_sync.py @@ -11,7 +11,7 @@ def ensure_dir(path): if not path.exists(): - LOGGER.debug("create folder %s", str(path)) + LOGGER.debug("create folder %s", path) os.makedirs(str(path)) diff --git a/tox.ini b/tox.ini index d8aefed7c..7cdebdbe7 100644 --- a/tox.ini +++ b/tox.ini @@ -4,6 +4,7 @@ requires = env_list = fix pypy3 + 3.14 3.13 3.12 3.11 @@ -14,6 +15,7 @@ env_list = coverage readme docs + 3.14t 3.13t skip_missing_interpreters = true @@ -70,6 +72,9 @@ commands = sphinx-build -d "{envtmpdir}/doctree" docs "{toxworkdir}/docs_out" --color -b html {posargs:-W} python -c 'import pathlib; print("documentation available under file://\{0\}".format(pathlib.Path(r"{toxworkdir}") / "docs_out" / "index.html"))' +[testenv:3.14t] +base_python = {env:TOX_BASEPYTHON} + [testenv:3.13t] base_python = {env:TOX_BASEPYTHON}