diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 691a145..152b8fe 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -18,10 +18,11 @@ jobs: runs-on: ubuntu-20.04 # 22.04 doesn't support Python 3.6 strategy: + fail-fast: false matrix: # The README.rst file mentions the versions tested, please update it as well py-ver-major: [3] - py-ver-minor: [8, 9, 10, 11, 12] + py-ver-minor: [8, 9, 10, 11, 12, 13] step: [lint, unit, mypy, bandit] env: @@ -37,6 +38,7 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ env.py-semver }} + allow-prereleases: true cache: pip cache-dependency-path: | requirements.txt diff --git a/README.rst b/README.rst index c4c50dd..d1cc50e 100644 --- a/README.rst +++ b/README.rst @@ -32,7 +32,7 @@ This is a testing tool for checking the output of Tools and Workflows described with the Common Workflow Language. Among other uses, it is used to run the CWL conformance tests. -This is written and tested for Python 3.8, 3.9, 3.10, 3.11, and 3.12. +This is written and tested for Python 3.8, 3.9, 3.10, 3.11, 3.12, and 3.13. .. contents:: Table of Contents :local: diff --git a/pyproject.toml b/pyproject.toml index ddc54be..8daf19f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,9 +22,10 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Typing :: Typed", ] -requires-python = ">=3.8,<3.13" +requires-python = ">=3.8,<3.14" dynamic = ["version", "dependencies"] [project.readme] diff --git a/tox.ini b/tox.ini index f036283..93aadfa 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,9 @@ [tox] envlist = - py3{8,9,10,11,12}-lint, - py3{8,9,10,11,12}-unit, - py3{8,9,10,11,12}-bandit, - py3{8,9,10,11,12}-mypy, + py3{8,9,10,11,12,13}-lint, + py3{8,9,10,11,12,13}-unit, + py3{8,9,10,11,12,13}-bandit, + py3{8,9,10,11,12,13}-mypy, py312-lintreadme, py312-pydocstyle @@ -22,16 +22,17 @@ python = 3.10: py310 3.11: py311 3.12: py312 + 3.13: py313 [testenv] skipsdist = - py3{8,9,10,11,12}-!{unit,mypy,lintreadme} = True + py3{8,9,10,11,12,13}-!{unit,mypy,lintreadme} = True description = - py3{8,9,10,11,12}-unit: Run the unit tests - py3{8,9,10,11,12}-lint: Lint the Python code - py3{8,9,10,11,12}-bandit: Search for common security issues - py3{8,9,10,11,12}-mypy: Check for type safety + py3{8,9,10,11,12,13}-unit: Run the unit tests + py3{8,9,10,11,12,13}-lint: Lint the Python code + py3{8,9,10,11,12,13}-bandit: Search for common security issues + py3{8,9,10,11,12,13}-mypy: Check for type safety py312-pydocstyle: docstring style checker py312-lintreadme: Lint the README.rst->.md conversion @@ -40,36 +41,36 @@ passenv = GITHUB_* deps = - py3{8,9,10,11,12}-{unit,mypy}: -rrequirements.txt - py3{8,9,10,11,12}-{unit,mypy}: -rtest-requirements.txt - py3{8,9,10,11,12}-lint: flake8-bugbear - py3{8,9,10,11,12}-lint: black~=23.1 - py3{8,9,10,11,12}-bandit: bandit - py3{8,9,10,11,12}-mypy: -rmypy-requirements.txt + py3{8,9,10,11,12,13}-{unit,mypy}: -rrequirements.txt + py3{8,9,10,11,12,13}-{unit,mypy}: -rtest-requirements.txt + py3{8,9,10,11,12,13}-lint: flake8-bugbear + py3{8,9,10,11,12,13}-lint: black~=23.1 + py3{8,9,10,11,12,13}-bandit: bandit + py3{8,9,10,11,12,13}-mypy: -rmypy-requirements.txt set_env = - py3{8,3,10,11,12}-unit: LC_ALL = C.UTF-8 + py3{8,3,10,11,12,13}-unit: LC_ALL = C.UTF-8 COV_CORE_SOURCE=cwltest COV_CORE_CONFIG={toxinidir}/.coveragerc COV_CORE_DATAFILE={toxinidir}/.coverage.eager commands = - py3{8,9,10,11,12}-unit: python -m pip install -U pip setuptools wheel - py3{8,9,10,11,12}-unit: python -m pytest --cov --cov-config={toxinidir}/.coveragerc --cov-append {posargs} - py3{8,9,10,11,12}-unit: coverage xml - py3{8,9,10,11,12}-bandit: bandit --recursive cwltest - py3{8,9,10,11,12}-lint: make flake8 - py3{8,9,10,11,12}-lint: make format-check - py3{8,9,10,11,12}-mypy: make mypy + py3{8,9,10,11,12,13}-unit: python -m pip install -U pip setuptools wheel + py3{8,9,10,11,12,13}-unit: python -m pytest --cov --cov-config={toxinidir}/.coveragerc --cov-append {posargs} + py3{8,9,10,11,12,13}-unit: coverage xml + py3{8,9,10,11,12,13}-bandit: bandit --recursive cwltest + py3{8,9,10,11,12,13}-lint: make flake8 + py3{8,9,10,11,12,13}-lint: make format-check + py3{8,9,10,11,12,13}-mypy: make mypy allowlist_externals = - py3{8,9,10,11,12}-lint: flake8 - py3{8,9,10,11,12}-lint: black - py3{8,9,10,11,12}-{mypy,shellcheck,lint,unit}: make + py3{8,9,10,11,12,13}-lint: flake8 + py3{8,9,10,11,12,13}-lint: black + py3{8,9,10,11,12,13}-{mypy,shellcheck,lint,unit}: make skip_install = - py3{8,9,10,11,12}-lint: true - py3{8,9,10,11,12}-bandit: true + py3{8,9,10,11,12,13}-lint: true + py3{8,9,10,11,12,13}-bandit: true [testenv:py312-pydocstyle]