diff --git a/.github/actions/install_requirements/action.yml b/.github/actions/install_requirements/action.yml index 958bea5e..4ffda023 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 716b8d0a..906f659d 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -10,18 +10,18 @@ jobs: strategy: fail-fast: false matrix: - os: ["ubuntu-latest"] # can add windows-latest, macos-latest - python: ["3.9", "3.10", "3.11", "3.12"] + os: ["ubuntu-22.04"] # can add windows-latest, macos-latest + 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: - - os: "ubuntu-latest" + - os: "ubuntu-22.04" python: "3.8" install: ".[dev]" 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 @@ -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 @@ -72,21 +72,21 @@ 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.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: pp* *i686* + CIBW_SKIP: "*i686* cp314* cp315* cp3??t-*" - 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 diff --git a/src/cothread/dbr.py b/src/cothread/dbr.py index ad24a423..2715c886 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