diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 08bb96e07..87ddaa71e 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -32,7 +32,7 @@ jobs: strategy: matrix: py-ver-major: [3] - py-ver-minor: [9, 10, 11, 12, 13] + py-ver-minor: [9, 10, 11, 12, 13, 14] step: [lint, unit, bandit, mypy] env: @@ -64,6 +64,9 @@ jobs: requirements.txt tox.ini + - name: install dev libraries + run: sudo apt-get install -y libxml2-dev libxslt-dev + - name: Upgrade setuptools and install tox run: | pip install -U pip setuptools wheel diff --git a/mypy-requirements.txt b/mypy-requirements.txt index 09e9739fb..a8676ac56 100644 --- a/mypy-requirements.txt +++ b/mypy-requirements.txt @@ -6,5 +6,5 @@ types-requests types-setuptools types-psutil types-mock -galaxy-tool-util>=22.1.2,!=23.0.1,!=23.0.2,!=23.0.3,!=23.0.4,!=23.0.5,<25.1 -galaxy-util<25.1 +galaxy-tool-util>=22.1.2,!=23.0.1,!=23.0.2,!=23.0.3,!=23.0.4,!=23.0.5,<25.1; python_version < "3.14" +galaxy-util<25.1; python_version < "3.14" diff --git a/setup.py b/setup.py index 8f8098f0a..3181938b6 100644 --- a/setup.py +++ b/setup.py @@ -170,7 +170,7 @@ def _find_package_data(base: str, globs: list[str], root: str = "cwltool") -> li "pillow", # workaround for https://github.com/galaxyproject/galaxy/pull/20525 ], }, - python_requires=">=3.9, <3.14", + python_requires=">=3.9, <3.15", use_scm_version=True, setup_requires=PYTEST_RUNNER + ["setuptools_scm>=8.0.4,<9"], test_suite="tests", @@ -201,6 +201,7 @@ def _find_package_data(base: str, globs: list[str], root: str = "cwltool") -> li "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Bio-Informatics", "Topic :: Scientific/Engineering :: Astronomy", diff --git a/test-requirements.txt b/test-requirements.txt index 42565f630..cb96a7ae1 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9,5 +9,5 @@ pytest-mock>=1.10.0 pytest-cov arcp>=0.2.0 -r requirements.txt -galaxy-tool-util>=22.1.2,!=23.0.1,!=23.0.2,!=23.0.3,!=23.0.4,!=23.0.5,<25.1 -galaxy-util<25.1 +galaxy-tool-util>=22.1.2,!=23.0.1,!=23.0.2,!=23.0.3,!=23.0.4,!=23.0.5,<25.1; python_version < "3.14" +galaxy-util<25.1; python_version < "3.14" diff --git a/tox.ini b/tox.ini index f24cb03a9..aa95d5941 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,9 @@ [tox] envlist = - py3{9,10,11,12,13}-lint - py3{9,10,11,12,13}-unit - py3{9,10,11,12,13}-bandit - py3{9,10,11,12,13}-mypy + py3{9,10,11,12,13,14}-lint + py3{9,10,11,12,13,14}-unit + py3{9,10,11,12,13,14}-bandit + py3{9,10,11,12,13,14}-mypy py312-lintreadme py312-shellcheck py312-pydocstyle @@ -21,16 +21,17 @@ python = 3.11: py311 3.12: py312 3.13: py313 + 3.14: py314 [testenv] skipsdist = - py3{9,10,11,12,13}-!{unit,mypy,lintreadme} = True + py3{9,10,11,12,13,14}-!{unit,mypy,lintreadme} = True description = - py3{9,10,11,12,13}-unit: Run the unit tests - py3{9,10,11,12,13}-lint: Lint the Python code - py3{9,10,11,12,13}-bandit: Search for common security issues - py3{9,10,11,12,13}-mypy: Check for type safety + py3{9,10,11,12,13,14}-unit: Run the unit tests + py3{9,10,11,12,13,14}-lint: Lint the Python code + py3{9,10,11,12,13,14}-bandit: Search for common security issues + py3{9,10,11,12,13,14}-mypy: Check for type safety py312-pydocstyle: docstring style checker py312-shellcheck: syntax check for shell scripts py312-lintreadme: Lint the README.rst→.md conversion @@ -46,11 +47,11 @@ extras = py3{9,10,11,12,13}-unit: deps deps = - py3{9,10,11,12,13}-{unit,lint,bandit,mypy}: -rrequirements.txt - py3{9,10,11,12,13}-{unit,mypy}: -rtest-requirements.txt - py3{9,10,11,12,13}-lint: -rlint-requirements.txt - py3{9,10,11,12,13}-bandit: bandit - py3{9,10,11,12,13}-mypy: -rmypy-requirements.txt + py3{9,10,11,12,13,14}-{unit,lint,bandit,mypy}: -rrequirements.txt + py3{9,10,11,12,13,14}-{unit,mypy}: -rtest-requirements.txt + py3{9,10,11,12,13,14}-lint: -rlint-requirements.txt + py3{9,10,11,12,13,14}-bandit: bandit + py3{9,10,11,12,13,14}-mypy: -rmypy-requirements.txt py312-pydocstyle: pydocstyle py312-pydocstyle: diff-cover py312-lintreadme: twine @@ -66,15 +67,16 @@ commands_pre = py312-lintreadme: python -m build --outdir {distdir} commands = - py3{9,10,11,12,13}-unit: make coverage-report coverage.xml PYTEST_EXTRA="{posargs}" - py3{9,10,11,12,13}-bandit: bandit -r cwltool - py3{9,10,11,12,13}-lint: make flake8 format-check codespell-check + py3{9,10,11,12,13,14}-unit: make coverage-report coverage.xml PYTEST_EXTRA="{posargs}" + py3{9,10,11,12,13,14}-bandit: bandit -r cwltool + py3{9,10,11,12,13,14}-lint: make flake8 format-check codespell-check py3{9,10,11,12,13}-mypy: make mypy mypyc PYTEST_EXTRA="{posargs}" + py314-mypy: make mypyc PYTEST_EXTRA="{posargs}" py312-shellcheck: make shellcheck py312-pydocstyle: make diff_pydocstyle_report py312-lintreadme: twine check {distdir}/* skip_install = - py3{9,10,11,12,13}-{bandit,lint,mypy,shellcheck,pydocstyle,lintreadme}: true + py3{9,10,11,12,13,14}-{bandit,lint,mypy,shellcheck,pydocstyle,lintreadme}: true allowlist_externals = make