diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a8b22d2..fd899d3 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -32,17 +32,23 @@ jobs: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV fi - # Step 3: Install dependencies + # Step 3: Set up Python + - name: Set up Python 3.14 + uses: actions/setup-python@v7 + with: + python-version: '3.14' + + # Step 4: Install dependencies - name: Install dependencies run: | python -m pip install --upgrade pip pip install tox - # Step 4: Run Tox for Linting + # Step 5: Run Tox for Linting - name: Run Tox Lint run: tox -e flake8 - # Step 5: Commit and push changes if Black reformats files + # Step 6: Commit and push changes if Black reformats files - name: Commit and push changes run: | git config --global user.name "GitHub Actions" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 12391fb..07f7dc8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, macos-latest] - python-version: ['3.10', '3.11', '3.12'] + python-version: ['3.11', '3.12', '3.13', '3.14'] steps: - uses: actions/checkout@v7 diff --git a/CHANGELOG.md b/CHANGELOG.md index 4145a47..ca25c40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ * planned new feature: during import of long reads, (optionally) correct for short exon alignment issues. * separate new read import and classification of isoforms. +## [2.2.0] + +* **breaking**: dropped support for Python 3.10; `requires-python` is now `>=3.11`. CI now tests 3.11-3.14 (added 3.13 and 3.14); verified the full dependency stack (numba, llvmlite, pyhmmer, CPAT, intervaltree) has published wheels for 3.14 +* removed the unused `pyproject.toml` `[project.optional-dependencies] testing` extra -- nothing installed from it (`tox.ini` uses `requirements_dev.txt` directly), and it referenced `mypy`, which isn't run anywhere in CI +* regenerated the `requirements.txt` lock file under Python 3.14 + ## [2.1.6] * new: `export_end_sequences` now includes strand in the fasta header (`chrom:start-end:strand`) diff --git a/VERSION.txt b/VERSION.txt index 399088b..ccbccc3 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -2.1.6 +2.2.0 diff --git a/pyproject.toml b/pyproject.toml index 6dcf8e2..c6a7283 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ authors = [ ] description = "Framework for the analysis of long read transcriptome sequencing data" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" classifiers = [ "Programming Language :: Python :: 3", "Operating System :: MacOS", @@ -41,15 +41,6 @@ dependencies = [ [project.scripts] run_isotools = "isotools.run_isotools:main" -[project.optional-dependencies] -testing = [ - "pytest>=6.0", - "pytest-cov>=2.0", - "mypy>=0.910", - "flake8>=3.9", - "tox>=3.24", -] - [project.urls] Homepage = "https://github.com/HerwigLab/IsoTools2" Documentation = "https://isotools.readthedocs.io/" diff --git a/requirements.txt b/requirements.txt index 61ff48c..84da54c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,29 +4,29 @@ # Regenerate with: # python -m venv /tmp/isotools-lock && source /tmp/isotools-lock/bin/activate # pip install . -# pip freeze | grep -v '^isotools==' > requirements.txt -CPAT==3.0.5 +# pip freeze | grep -v '^isotools' > requirements.txt biopython==1.88 certifi==2026.7.22 -charset-normalizer==3.4.9 +charset-normalizer==3.5.1 contourpy==1.3.3 +CPAT==3.0.5 cycler==0.12.1 fonttools==4.63.0 -idna==3.18 +idna==3.19 intervaltree==3.2.1 joblib==1.5.3 kiwisolver==1.5.0 -llvmlite==0.48.0 +llvmlite==0.49.0 matplotlib==3.11.1 narwhals==2.24.0 -numba==0.66.0 -numpy==2.4.6 +numba==0.67.0 +numpy==2.5.2 packaging==26.3 pandas==3.0.5 patsy==1.0.2 pillow==12.3.0 psutil==7.2.2 -pyhmmer==0.12.1 +pyhmmer==0.12.3 pynndescent==0.6.0 pyparsing==3.3.2 pysam==0.24.0 diff --git a/tox.ini b/tox.ini index 76434cf..8eee970 100644 --- a/tox.ini +++ b/tox.ini @@ -1,13 +1,14 @@ [tox] minversion = 4.0.0 -envlist = py310, py311, py312, flake8 +envlist = py311, py312, py313, py314, flake8 isolated_build = true [gh-actions] python = - 3.10: py310 3.11: py311 - 3.12: py312, flake8 + 3.12: py312 + 3.13: py313 + 3.14: py314, flake8 [testenv] setenv = @@ -18,7 +19,7 @@ commands = pytest --basetemp={envtmpdir} [testenv:flake8] -basepython = python3.12 +basepython = python3.14 deps = -r{toxinidir}/requirements_dev.txt commands =