From 086807597b1cfc4fc74f582d1f1bf3cc067058c9 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Mon, 2 Nov 2026 09:03:54 +0000 Subject: [PATCH 1/7] Update version of EPICS container --- .github/workflows/code.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 716b8d0..b90945d 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -21,7 +21,7 @@ jobs: runs-on: ${{ matrix.os }} container: - image: ghcr.io/epics-containers/epics-base-developer:7.0.9ec3 + image: ghcr.io/epics-containers/epics-base-developer:7.0.10ec2 volumes: - /opt/hostedtoolcache:/opt/hostedtoolcache From ef77610bcfa7635dd95a326d4f5b047f6a4cbd90 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Mon, 2 Nov 2026 09:40:04 +0000 Subject: [PATCH 2/7] Update versions of Actions --- .github/actions/install_requirements/action.yml | 4 ++-- .github/workflows/code.yml | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/actions/install_requirements/action.yml b/.github/actions/install_requirements/action.yml index 958bea5..4ffda02 100644 --- a/.github/actions/install_requirements/action.yml +++ b/.github/actions/install_requirements/action.yml @@ -16,7 +16,7 @@ runs: steps: - name: Setup python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ inputs.python_version }} @@ -36,7 +36,7 @@ runs: shell: bash - name: Upload lockfiles - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: lockfiles-${{ inputs.python_version }} path: lockfiles diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index b90945d..57d779c 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -31,7 +31,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: # Need this to get version number from last tag fetch-depth: 0 @@ -50,7 +50,7 @@ jobs: run: tox -e pytest - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: name: ${{ matrix.python }}/${{ matrix.os }} files: cov.xml @@ -61,7 +61,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: # Need this to get version number from last tag fetch-depth: 0 @@ -86,7 +86,7 @@ jobs: CIBW_SKIP: pp* *i686* - name: Upload sdist and wheels as artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: dist-${{ matrix.os }}-${{ matrix.python }} path: dist @@ -105,14 +105,14 @@ jobs: steps: - name: Download dist - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: pattern: dist* path: dist merge-multiple: true - name: Download lockfiles - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: pattern: lockfiles* path: lockfiles From c62f9501d02e1862f26782be1f66f4252ae90cc9 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Mon, 2 Nov 2026 11:17:41 +0000 Subject: [PATCH 3/7] Use older Ubuntu image For reasons unknown, the Python versions on later Ubuntu images seems to be missing the "ssl" module, which means we cannot "pip install" anything as we cannot establish secure connections. I feel there must be something else going on, as it's a pretty core part of the Python instalation to be missing, but this is the simplest solution to get things working. --- .github/workflows/code.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 57d779c..5f108e6 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -10,12 +10,12 @@ jobs: strategy: fail-fast: false matrix: - os: ["ubuntu-latest"] # can add windows-latest, macos-latest + os: ["ubuntu-22.04"] # can add windows-latest, macos-latest python: ["3.9", "3.10", "3.11", "3.12"] install: ["-e .[dev]"] # Make one version be non-editable to test both paths of version code include: - - os: "ubuntu-latest" + - os: "ubuntu-22.04" python: "3.8" install: ".[dev]" From 39af78ab63b366b469e685053f76930a8a8995ae Mon Sep 17 00:00:00 2001 From: AlexWells Date: Mon, 2 Nov 2026 11:30:52 +0000 Subject: [PATCH 4/7] Fix Numpy deprecation warning See https://numpy.org/devdocs/release/2.5.0-notes.html#deprecations , 5th bullet point --- src/cothread/dbr.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cothread/dbr.py b/src/cothread/dbr.py index ad24a42..2715c88 100644 --- a/src/cothread/dbr.py +++ b/src/cothread/dbr.py @@ -818,7 +818,7 @@ def _require_value(value, dtype): over channel access.''' result = numpy.require(value, requirements = 'C', dtype = dtype) if result.shape == (): - result.shape = (1,) + result = numpy.reshape(result, (1,)) assert result.ndim == 1, 'Can\'t put multidimensional arrays!' return result From 47bb3da832d1bc35972ac7eb4bb5a8cb1c16a1bd Mon Sep 17 00:00:00 2001 From: AlexWells Date: Mon, 2 Nov 2026 12:18:32 +0000 Subject: [PATCH 5/7] Update cibuildwheel version This eases various older Python compatibility issues, and also builds newer manylinux versions for us while not removing manylinux2014 support --- .github/workflows/code.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 5f108e6..3735632 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -72,18 +72,17 @@ jobs: pipx run build --sdist - name: Build wheels - uses: pypa/cibuildwheel@v2.16.2 + uses: pypa/cibuildwheel@v4.3.5 with: output-dir: dist env: - # Force using an older manylinux image to support more OSs - CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 # Simple test that the wheel is loaded and available CIBW_TEST_COMMAND: python -c "import cothread; print(cothread.__version__)" - # Skip all PyPy wheels (GIL deadlock detected in ThreadState_New) # Skip all i686 wheels (cannot build numpy) + # Skip Python 3.15 due to https://github.com/python/cpython/issues/160719 + # Skip free-threading builds on all platforms # This leaves manylinux and musllinux wheels - CIBW_SKIP: pp* *i686* + CIBW_SKIP: "*i686* cp315* cp3??t-*" - name: Upload sdist and wheels as artifacts uses: actions/upload-artifact@v7 From 83e4ebf5be3d2cb3ee17991dcee40e5542c6a1e6 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Mon, 2 Nov 2026 14:13:16 +0000 Subject: [PATCH 6/7] Add testing to Python 3.13 and 3.14 --- .github/workflows/code.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 3735632..2208b82 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -11,7 +11,7 @@ jobs: fail-fast: false matrix: os: ["ubuntu-22.04"] # can add windows-latest, macos-latest - python: ["3.9", "3.10", "3.11", "3.12"] + python: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] install: ["-e .[dev]"] # Make one version be non-editable to test both paths of version code include: From 28178bdedeb0a644188d996c7e4fda6cd0c86932 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Mon, 2 Nov 2026 15:15:00 +0000 Subject: [PATCH 7/7] Remove Python 3.14 from test and release The tests fail with segfaults and/or memory overruns, with the issues differing between CI and running on my own machine. --- .github/workflows/code.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 2208b82..906f659 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -11,7 +11,7 @@ jobs: fail-fast: false matrix: os: ["ubuntu-22.04"] # can add windows-latest, macos-latest - python: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + python: ["3.9", "3.10", "3.11", "3.12", "3.13"] install: ["-e .[dev]"] # Make one version be non-editable to test both paths of version code include: @@ -79,10 +79,11 @@ jobs: # Simple test that the wheel is loaded and available CIBW_TEST_COMMAND: python -c "import cothread; print(cothread.__version__)" # Skip all i686 wheels (cannot build numpy) + # Skip Python 3.14 due to test failures # Skip Python 3.15 due to https://github.com/python/cpython/issues/160719 # Skip free-threading builds on all platforms # This leaves manylinux and musllinux wheels - CIBW_SKIP: "*i686* cp315* cp3??t-*" + CIBW_SKIP: "*i686* cp314* cp315* cp3??t-*" - name: Upload sdist and wheels as artifacts uses: actions/upload-artifact@v7