diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 81d932e..52b229c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,29 +13,21 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - python-version: [3.8, 3.9] - include: - # Oldest supported version of main dependencies on Python 3.5.1 - - os: ubuntu-latest - python-version: 3.5 - OLDEST_SUPPORTED_VERSION: true - DEPENDENCIES: numpy==1.13.3 scipy==1.3.3 + python-version: ['3.12', '3.13', '3.14'] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Display versions run: python -V; pip -V - - name: Install oldest supported version - if: ${{ matrix.OLDEST_SUPPORTED_VERSION }} - run: pip install ${{ matrix.DEPENDENCIES }} - - name: Install depedencies and package + - name: Install dependencies and package shell: bash run: pip install -U -e .'[tests]' - name: Run tests - run: pytest --cov=morphops --pyargs morphops - - name: Generate line coverage - if: ${{ matrix.os == 'ubuntu-latest' }} - run: coverage report --show-missing + if: ${{ matrix.os != 'ubuntu-latest' || matrix.python-version != '3.14' }} + run: pytest --pyargs morphops + - name: Run tests with coverage + if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.14' }} + run: pytest --cov=morphops --cov-report=term-missing --pyargs morphops diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a11ab2c..2ff3b33 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,17 @@ entries are sorted in descending chronological order. Unreleased ========== +Changed +------- +- Dropped support for Python versions older than 3.12 and updated CI to test + Python 3.12 through 3.14. + +Fixed +----- +- Fixed compatibility with NumPy 2.x by replacing removed or deprecated NumPy + APIs. +- Fixed invalid escape sequence warnings in math-heavy docstrings. + Added ----- - all-contributors section to README. Added manually due to `lack of rst support in the cli, bot `_, but see `PR 301 there `_. @@ -23,4 +34,4 @@ Added Added ----- -- This project now keeps a changelog. \ No newline at end of file +- This project now keeps a changelog. diff --git a/setup.py b/setup.py index 0c6fd40..99897de 100644 --- a/setup.py +++ b/setup.py @@ -30,15 +30,13 @@ packages=find_packages(), classifiers=[ 'Programming Language :: Python :: 3 :: Only', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', + 'Programming Language :: Python :: 3.14', 'License :: OSI Approved :: MIT License', 'Topic :: Scientific/Engineering' ], - python_requires='>=3.5.1', + python_requires='>=3.12', extras_require=extra_feature_requirements, install_requires=['numpy >= 1.13.3', 'scipy >= 1.3.3'], include_package_data=True diff --git a/tox.ini b/tox.ini index b9c5acc..fb2afb5 100644 --- a/tox.ini +++ b/tox.ini @@ -1,32 +1,16 @@ [tox] -envlist = py35,py36,python3.7 +envlist = py312,py313,py314-coverage -[travis] -python = - 3.5: py35 - 3.6: py36 - 3.7: python3.7 - -[testenv:py35] -deps = - pytest - numpy==1.13.3 - scipy==1.3.3 -commands = - pytest -q -s tests - -[testenv:py36] +[testenv] deps = pytest - pytest-cov - numpy==1.14.5 - scipy==1.5.0 commands = - pytest -q -s tests - pytest --cov=morphops tests/ + pytest -q -s --pyargs morphops -[testenv] -deps = +[testenv:py314-coverage] +basepython = python3.14 +deps = pytest -commands = - pytest -q -s tests \ No newline at end of file + pytest-cov +commands = + pytest -q -s --cov=morphops --cov-report=term-missing --pyargs morphops