From 2ac06b613a9e70476ae4f86095e9d5db458a680d Mon Sep 17 00:00:00 2001 From: ChrisRackauckas Date: Mon, 13 Oct 2025 09:56:17 -0400 Subject: [PATCH 1/8] Fix CI to use latest package versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolves issue where CI tests were getting outdated package versions (juliacall 0.9.26 instead of 0.9.28, juliapkg 0.1.17 instead of 0.1.22) despite setup.py specifying only lower bounds. Changes: - Replace jill-based Julia installation with julia-actions/setup-julia@v2 - More reliable and standard approach for GitHub Actions - Eliminates dependency conflicts in CI environment - Recommended by PythonCall.jl maintainer in issue #689 - Add --upgrade flag to tox install command - Forces pip to always upgrade to latest compatible versions - Prevents stale cached versions from being used - Bump juliacall minimum version to 0.9.28 - Ensures compatibility with latest features and fixes - Matches current stable release Related: https://github.com/JuliaPy/PythonCall.jl/issues/689 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/CI.yml | 8 ++++---- setup.py | 2 +- tox.ini | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 318bc59..b949ece 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -30,14 +30,14 @@ jobs: with: python-version: ${{ matrix.python-version }} architecture: ${{ matrix.architecture }} + - name: Setup Julia + uses: julia-actions/setup-julia@v2 + with: + version: '1' - name: Install tox run: | python -m pip install --upgrade pip python -m pip install --upgrade tox - - name: Install Julia using jill - run: | - python -m pip install --upgrade jill - python -c "from jill.install import install_julia; install_julia(confirm=True)" - name: Run test run: python -m tox -- --cov=diffeqpy -s env: diff --git a/setup.py b/setup.py index baa0033..4e281b9 100644 --- a/setup.py +++ b/setup.py @@ -28,6 +28,6 @@ def readme(): author_email='contact@sciml.ai', license='MIT', packages=['diffeqpy','diffeqpy.tests'], - install_requires=['juliacall>=0.9.14', 'jill'], + install_requires=['juliacall>=0.9.28', 'jill'], include_package_data=True, zip_safe=False) diff --git a/tox.ini b/tox.ini index e925450..a0ff0ce 100644 --- a/tox.ini +++ b/tox.ini @@ -2,6 +2,7 @@ deps = pytest pytest-cov +install_command = pip install --upgrade {opts} {packages} commands = python -c 'import diffeqpy; diffeqpy.install()' py.test \ From 614bf4f532c45cdab76ba27aa9c302f622a76ba4 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas Date: Mon, 13 Oct 2025 10:07:12 -0400 Subject: [PATCH 2/8] Drop Python 3.8 support, require Python 3.9+ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit juliacall 0.9.28 requires Python 3.9+. Python 3.8 reached EOL in October 2024, so dropping support aligns with upstream requirements. Changes: - Remove Python 3.8 from package classifiers - Add python_requires='>=3.9' to setup.py - Update CI matrix to test Python 3.9 and 3.13 instead of 3.8 and 3.13 This fixes the CI error: "ERROR: No matching distribution found for juliacall>=0.9.28" on Python 3.8 runners. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .github/workflows/CI.yml | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index b949ece..c74de3f 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -19,7 +19,7 @@ jobs: # Disabling Windows tests as it's known to not work: # https://github.com/SciML/diffeqpy/pull/86#issuecomment-1011675735 # - windows-latest - python-version: ['3.8', '3.13'] + python-version: ['3.9', '3.13'] fail-fast: false name: Test ${{ matrix.os }} ${{ matrix.architecture }} Python ${{ matrix.python-version }} diff --git a/setup.py b/setup.py index 4e281b9..907df0e 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,6 @@ def readme(): classifiers=[ 'Development Status :: 4 - Beta', 'License :: OSI Approved :: MIT License', - 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', @@ -28,6 +27,7 @@ def readme(): author_email='contact@sciml.ai', license='MIT', packages=['diffeqpy','diffeqpy.tests'], + python_requires='>=3.9', install_requires=['juliacall>=0.9.28', 'jill'], include_package_data=True, zip_safe=False) From 8264c7c8ce0c0fdc61d5c1915d9c097d90761304 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Oct 2025 08:53:56 -0400 Subject: [PATCH 3/8] Update CI.yml --- .github/workflows/CI.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c74de3f..29e5387 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -19,7 +19,7 @@ jobs: # Disabling Windows tests as it's known to not work: # https://github.com/SciML/diffeqpy/pull/86#issuecomment-1011675735 # - windows-latest - python-version: ['3.9', '3.13'] + python-version: ['3.10', '3.13'] fail-fast: false name: Test ${{ matrix.os }} ${{ matrix.architecture }} Python ${{ matrix.python-version }} @@ -47,3 +47,4 @@ jobs: with: file: ./coverage.xml name: codecov-umbrella + From d56b9d2728f67210c25669d0a80b1851170fba60 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Oct 2025 08:54:18 -0400 Subject: [PATCH 4/8] Update setup.py --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 907df0e..21fd2c0 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ def readme(): author_email='contact@sciml.ai', license='MIT', packages=['diffeqpy','diffeqpy.tests'], - python_requires='>=3.9', + python_requires='>=3.10', install_requires=['juliacall>=0.9.28', 'jill'], include_package_data=True, zip_safe=False) From b1ac4f5be00cdf5388c6b6519fca0868a57239b7 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Oct 2025 08:54:26 -0400 Subject: [PATCH 5/8] Update setup.py --- setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.py b/setup.py index 21fd2c0..9984ea4 100644 --- a/setup.py +++ b/setup.py @@ -12,7 +12,6 @@ def readme(): classifiers=[ 'Development Status :: 4 - Beta', 'License :: OSI Approved :: MIT License', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', From fa1c9aa4d66babde3b2400626e5714d857c3ffcd Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Oct 2025 08:54:58 -0400 Subject: [PATCH 6/8] Update .github/workflows/CI.yml --- .github/workflows/CI.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 29e5387..ba4f173 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -38,6 +38,10 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install --upgrade tox + - name: Install Julia using jill + run: | + python -m pip install --upgrade jill + python -c "from jill.install import install_julia; install_julia(confirm=True)" - name: Run test run: python -m tox -- --cov=diffeqpy -s env: From 39c8d63ff39b7614bdb5cfb1c3b9de2644dc757c Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Oct 2025 08:55:03 -0400 Subject: [PATCH 7/8] Update .github/workflows/CI.yml --- .github/workflows/CI.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ba4f173..6f3b81e 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -30,10 +30,6 @@ jobs: with: python-version: ${{ matrix.python-version }} architecture: ${{ matrix.architecture }} - - name: Setup Julia - uses: julia-actions/setup-julia@v2 - with: - version: '1' - name: Install tox run: | python -m pip install --upgrade pip From 383f2a12d85c429ecc08d5fd5c602025c49f7e2f Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Oct 2025 08:55:25 -0400 Subject: [PATCH 8/8] Update tox.ini --- tox.ini | 1 - 1 file changed, 1 deletion(-) diff --git a/tox.ini b/tox.ini index a0ff0ce..e925450 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,6 @@ deps = pytest pytest-cov -install_command = pip install --upgrade {opts} {packages} commands = python -c 'import diffeqpy; diffeqpy.install()' py.test \