From fb3130e952a6c0d5601d06119ee2cf88a3288936 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 12 Jul 2024 14:21:56 +0100 Subject: [PATCH 01/11] Add python 3.12 to github actions --- .github/workflows/unit-test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index b9e31947..6f42acdf 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -6,14 +6,14 @@ jobs: strategy: matrix: os: [ubuntu-20.04, windows-latest, macos-latest] - python-version: [3.6, 3.7, 3.8, 3.9, "3.10", "3.11"] + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] steps: - name: Check out repository - 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 }} From 6a0e029454e01aa9c07e3b1dac530538146160d5 Mon Sep 17 00:00:00 2001 From: Kwabena Amponsah Date: Fri, 7 Feb 2025 09:25:36 +0000 Subject: [PATCH 02/11] Update Python tests to 3.9 - 3.13 --- .github/workflows/unit-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 6f42acdf..f130538d 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -5,8 +5,8 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-20.04, windows-latest, macos-latest] - python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + os: [ubuntu-latest, windows-latest, macos-latest] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - name: Check out repository From d6fb191a32e5860ef0dfb1a99db6d36bbf72f0cc Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 7 Feb 2025 10:08:35 +0000 Subject: [PATCH 03/11] #374 Bump up lxml version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index bf1df611..903f425a 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ include_package_data=True, python_requires='>=3.6', install_requires=[ - 'lxml>=4.6.5, <5', + 'lxml>=4.7, <6.0', 'networkx>=2.1', 'Pint>=0.9, <0.20', 'rdflib>=4', From e3a04e2d61f389d7de6e5feffab6e8cc470d36bf Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 7 Feb 2025 10:42:25 +0000 Subject: [PATCH 04/11] #374 Update sympy requirement --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 903f425a..5a778510 100644 --- a/setup.py +++ b/setup.py @@ -34,7 +34,7 @@ 'networkx>=2.1', 'Pint>=0.9, <0.20', 'rdflib>=4', - 'sympy>=1.4', + 'sympy>=1.4, <1.13', ], extras_require={ 'docs': [ From f0902212a542575d591327890f8c67353723d550 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 7 Feb 2025 11:25:18 +0000 Subject: [PATCH 05/11] #374 Remove lxml upper limit --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 5a778510..1a8fc99d 100644 --- a/setup.py +++ b/setup.py @@ -30,7 +30,7 @@ include_package_data=True, python_requires='>=3.6', install_requires=[ - 'lxml>=4.7, <6.0', + 'lxml>=4.7', 'networkx>=2.1', 'Pint>=0.9, <0.20', 'rdflib>=4', From 571b234a06d441ee92610db512c6cbbaa278ae79 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 7 Feb 2025 11:52:58 +0000 Subject: [PATCH 06/11] #374 Update pinned versions --- .github/workflows/unit-test-pinned.yml | 10 ++++---- requirements/base.in | 11 ++++----- requirements/base.txt | 12 ++++++---- requirements/dev.txt | 33 ++++++-------------------- requirements/test.txt | 33 ++++++-------------------- 5 files changed, 31 insertions(+), 68 deletions(-) diff --git a/.github/workflows/unit-test-pinned.yml b/.github/workflows/unit-test-pinned.yml index 1ce27bfc..c5d5745b 100644 --- a/.github/workflows/unit-test-pinned.yml +++ b/.github/workflows/unit-test-pinned.yml @@ -2,16 +2,16 @@ name: Pinned requirements on: [pull_request] jobs: unit-test-pinned: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - - name: Set up Python 3.6 - uses: actions/setup-python@v2 + - name: Set up Python 3.9 + uses: actions/setup-python@v5 with: - python-version: 3.6 + python-version: 3.9 - name: Install pinned dependencies run: | diff --git a/requirements/base.in b/requirements/base.in index 2965b0e5..72c3f449 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -1,6 +1,5 @@ -lxml>4.2.1 -pint==0.9 ; python_version < '3.8' -pint==0.10 ; python_version >= '3.8' -rdflib -networkx -sympy +lxml>=4.7 +pint>=0.9, <0.20 +rdflib>=4 +networkx>=2.1 +sympy>=1.4, <1.13 diff --git a/requirements/base.txt b/requirements/base.txt index ccab0170..d109d5ab 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,6 +1,6 @@ # -# This file is autogenerated by pip-compile -# To update, run: +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: # # pip-compile --output-file=base.txt base.in # @@ -8,19 +8,21 @@ decorator==4.4.2 # via networkx isodate==0.6.0 # via rdflib -lxml==4.6.2 +lxml==5.3.0 # via -r base.in mpmath==1.1.0 # via sympy networkx==2.5 # via -r base.in -pint==0.9 ; python_version < "3.8" +pint==0.19.2 # via -r base.in pyparsing==2.4.7 # via rdflib rdflib==5.0.0 # via -r base.in six==1.15.0 - # via rdflib + # via + # isodate + # rdflib sympy==1.7.1 # via -r base.in diff --git a/requirements/dev.txt b/requirements/dev.txt index 9d23a2a7..7b8991e6 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,33 +1,21 @@ # -# This file is autogenerated by pip-compile -# To update, run: +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: # # pip-compile --output-file=dev.txt dev.in # attrs==20.3.0 # via pytest -certifi==2020.12.5 - # via requests -chardet==4.0.0 - # via requests click==7.1.2 # via pip-tools coverage==5.4 - # via - # pytest-cov + # via pytest-cov decorator==4.4.2 # via networkx flake8==3.8.4 # via # -r dev.in # -r test.in -idna==2.10 - # via requests -importlib-metadata==3.4.0 - # via - # flake8 - # pluggy - # pytest iniconfig==1.1.1 # via pytest isodate==0.6.0 @@ -36,7 +24,7 @@ isort==5.7.0 # via # -r dev.in # -r test.in -lxml==4.6.2 +lxml==5.3.0 # via -r base.in mccabe==0.6.1 # via flake8 @@ -46,7 +34,7 @@ networkx==2.5 # via -r base.in packaging==20.8 # via pytest -pint==0.9 ; python_version < "3.8" +pint==0.19.2 # via -r base.in pip-tools==5.5.0 # via -r dev.in @@ -62,15 +50,14 @@ pyparsing==2.4.7 # via # packaging # rdflib -pytest-cov==2.11.1 - # via -r test.in pytest==6.2.2 # via # -r test.in # pytest-cov +pytest-cov==2.11.1 + # via -r test.in rdflib==5.0.0 # via -r base.in -requests==2.25.1 six==1.15.0 # via # isodate @@ -79,12 +66,6 @@ sympy==1.7.1 # via -r base.in toml==0.10.2 # via pytest -typing-extensions==3.7.4.3 - # via importlib-metadata -urllib3==1.26.3 - # via requests -zipp==3.4.0 - # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/test.txt b/requirements/test.txt index eded6f38..2713dea2 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,36 +1,24 @@ # -# This file is autogenerated by pip-compile -# To update, run: +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: # # pip-compile --output-file=test.txt test.in # attrs==20.3.0 # via pytest -certifi==2020.12.5 - # via requests -chardet==4.0.0 - # via requests coverage==5.4 - # via - # pytest-cov + # via pytest-cov decorator==4.4.2 # via networkx flake8==3.8.4 # via -r test.in -idna==2.10 - # via requests -importlib-metadata==3.4.0 - # via - # flake8 - # pluggy - # pytest iniconfig==1.1.1 # via pytest isodate==0.6.0 # via rdflib isort==5.7.0 # via -r test.in -lxml==4.6.2 +lxml==5.3.0 # via -r base.in mccabe==0.6.1 # via flake8 @@ -40,7 +28,7 @@ networkx==2.5 # via -r base.in packaging==20.8 # via pytest -pint==0.9 ; python_version < "3.8" +pint==0.19.2 # via -r base.in pluggy==0.13.1 # via pytest @@ -54,15 +42,14 @@ pyparsing==2.4.7 # via # packaging # rdflib -pytest-cov==2.11.1 - # via -r test.in pytest==6.2.2 # via # -r test.in # pytest-cov +pytest-cov==2.11.1 + # via -r test.in rdflib==5.0.0 # via -r base.in -requests==2.25.1 six==1.15.0 # via # isodate @@ -71,9 +58,3 @@ sympy==1.7.1 # via -r base.in toml==0.10.2 # via pytest -typing-extensions==3.7.4.3 - # via importlib-metadata -urllib3==1.26.3 - # via requests -zipp==3.4.0 - # via importlib-metadata From 8b17a41774a36c1c1152dcdcafa9608cdd14cd2c Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 7 Feb 2025 11:54:32 +0000 Subject: [PATCH 07/11] #374 Update github actions versions --- .github/workflows/coverage.yml | 7 +++---- .github/workflows/docs.yml | 4 ++-- .github/workflows/style.yml | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index d62fac03..7879252f 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -6,10 +6,10 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: 3.9 @@ -24,6 +24,5 @@ jobs: python -m pytest --cov --cov-config=.coveragerc - name: Submit report to codecov - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v5 if: success() - diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index dd49f241..a3ab4d40 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -6,10 +6,10 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: 3.9 diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml index ab60e4b0..884c3984 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/style.yml @@ -6,10 +6,10 @@ jobs: steps: - name: Check out repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: 3.9 From d72f7eae25bba61dcabb4ee27327d9cb1c1965c9 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 7 Feb 2025 12:21:47 +0000 Subject: [PATCH 08/11] #374 Add minimal pyproject.toml --- pyproject.toml | 3 +++ setup.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..fed528d4 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index 1a8fc99d..90951539 100644 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ packages=find_packages(exclude=('tests', 'docs')), include_package_data=True, - python_requires='>=3.6', + python_requires='>=3.9', install_requires=[ 'lxml>=4.7', 'networkx>=2.1', From 7d6ed2425c040b9ed7003c20fa107179c234074a Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 7 Feb 2025 12:46:34 +0000 Subject: [PATCH 09/11] #374 Update codecov settings --- .github/workflows/coverage.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 7879252f..f2811cea 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -25,4 +25,6 @@ jobs: - name: Submit report to codecov uses: codecov/codecov-action@v5 + with: + token: ${{ secrets.CODECOV_TOKEN }} if: success() From b2d0044f103cb954a3cd765357b83363d80daf68 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 7 Feb 2025 13:08:33 +0000 Subject: [PATCH 10/11] #374 Add release notes for version 0.3.7 --- README.md | 2 +- RELEASE.md | 5 +++++ cellmlmanip/version.txt | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 13d3ac3c..23b1da7c 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Users install `cellmlmanip` using pip. pip install cellmlmanip ``` -Cellmlmanip is tested and developed on Python 3.5 and higher. +Cellmlmanip is tested and developed on Python 3.9 and higher. ## Release notes For release notes see [RELEASE.md](./RELEASE.md) diff --git a/RELEASE.md b/RELEASE.md index daf509b0..d78ff39b 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,3 +1,8 @@ +# Release 0.3.7 +- Added support for Python 3.12 and 3.13. +- Dropped support for Python 3.6, 3.7 and 3.8 as they are at end of life. +- Pinned sympy to be < 1.13. See https://github.com/ModellingWebLab/cellmlmanip/issues/376. + # Release 0.3.6 - Added the ability to exclude a collection of tags from being used as variable names, by adding the `exclude_terms` parameter to `model.get_display_name`. This can be used for example to prevent ontology annotation that can be used multiple times from appearing as the display name of a variable. diff --git a/cellmlmanip/version.txt b/cellmlmanip/version.txt index 449d7e73..0f826853 100644 --- a/cellmlmanip/version.txt +++ b/cellmlmanip/version.txt @@ -1 +1 @@ -0.3.6 +0.3.7 From 73c0cb1129be789ebb2527254de565235d114ee6 Mon Sep 17 00:00:00 2001 From: Kwabena N Amponsah Date: Fri, 7 Feb 2025 15:40:33 +0000 Subject: [PATCH 11/11] #374 Add wheel to pyproject.toml --- .github/workflows/coverage.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/style.yml | 2 +- .github/workflows/unit-test-pinned.yml | 2 +- .github/workflows/unit-test.yml | 2 +- pyproject.toml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index f2811cea..5d98c258 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -16,7 +16,7 @@ jobs: - name: Install run: | python --version - python -m pip install --upgrade pip setuptools wheel + python -m pip install --upgrade pip python -m pip install .[test] - name: Test coverage diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a3ab4d40..a72bee05 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -16,7 +16,7 @@ jobs: - name: Install run: | python --version - python -m pip install --upgrade pip setuptools wheel + python -m pip install --upgrade pip python -m pip install .[docs] - name: Test documentation building diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml index 884c3984..0c0e6ef6 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/style.yml @@ -16,7 +16,7 @@ jobs: - name: Install tools run: | python --version - python -m pip install --upgrade pip setuptools wheel + python -m pip install --upgrade pip python -m pip install flake8 isort - name: Check code style diff --git a/.github/workflows/unit-test-pinned.yml b/.github/workflows/unit-test-pinned.yml index c5d5745b..246bff72 100644 --- a/.github/workflows/unit-test-pinned.yml +++ b/.github/workflows/unit-test-pinned.yml @@ -16,7 +16,7 @@ jobs: - name: Install pinned dependencies run: | python --version - python -m pip install --upgrade pip setuptools wheel + python -m pip install --upgrade pip python -m pip install -r requirements/test.txt - name: Install diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index f130538d..6a3f5a39 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -20,7 +20,7 @@ jobs: - name: Install run: | python --version - python -m pip install --upgrade pip setuptools wheel + python -m pip install --upgrade pip python -m pip install .[test] - name: Run unit tests diff --git a/pyproject.toml b/pyproject.toml index fed528d4..7b959378 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,3 @@ [build-system] -requires = ["setuptools"] +requires = ["setuptools>=64", "wheel"] build-backend = "setuptools.build_meta"