Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 9 additions & 16 deletions .github/workflows/code.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,21 +54,18 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-15-intel]
python: [cp37, cp38, cp39, cp310, cp311, cp312, cp313]
python: [cp37, cp38, cp39, cp310, cp311, cp312, cp313, cp314]


include:
# Put coverage and results files in the project directory for mac
# Put results files in the project directory for mac
- os: macos-15-intel
cov_file: "{project}/dist/coverage.xml"
results_file: "{project}/dist/pytest-results.xml"
# And for windows
- os: windows-latest
cov_file: "{project}/dist/coverage.xml"
results_file: "{project}/dist/pytest-results.xml"
# But put coverage and results files in the output dir mounted in docker for linux
# But put results files in the output dir mounted in docker for linux
- os: ubuntu-latest
cov_file: /output/coverage.xml
results_file: /output/pytest-results.xml

exclude:
Expand Down Expand Up @@ -112,35 +109,31 @@ jobs:
# cibuildwheel reports it cannot clean up the temp dir used for testing,
# and fails the build. Sleeping seems to give pytest enough time to
# fully clean up.
CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} && sleep 2
CIBW_TEST_COMMAND: pytest {project}/tests --junit-xml=${{ matrix.results_file }} && sleep 2
# Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows...
CIBW_TEST_COMMAND_WINDOWS: python -X faulthandler -m pytest -s {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }}
CIBW_TEST_COMMAND_WINDOWS: python -X faulthandler -m pytest -s {project}/tests --junit-xml=${{ matrix.results_file }}
# Disable auditwheel as it isn't compatible with setuptools_dso approach
# https://github.com/mdavidsaver/setuptools_dso/issues/17
CIBW_REPAIR_WHEEL_COMMAND: ""
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
CIBW_ENVIRONMENT_LINUX: SETUPTOOLS_DSO_PLAT_NAME=manylinux2014_x86_64
CIBW_SKIP: "*-musllinux*" # epicscorelibs doesn't build on musllinux platforms
# epicscorelibs doesn't build on musllinux platforms
# Ensure we never use free-threaded variants, as we (and our EPICS python dependencies) do not support it
CIBW_SKIP: "*-musllinux* cp3??t-*"

- name: Upload Wheel
uses: actions/upload-artifact@v4
with:
name: dist-${{ matrix.os }}-${{ matrix.python }}
path: dist/softioc*

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
name: ${{ matrix.os }}/${{ matrix.python }}
directory: dist

test-sdist:
needs: [sdist]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-15-intel]
python: [cp37, cp38, cp39, cp310, cp311, cp312, cp313]
python: [cp37, cp38, cp39, cp310, cp311, cp312, cp313, cp314]

exclude:
# Exclude Windows + Python 3.9 as p4p can't build there, due to numpy bug #27224
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Versioning <https://semver.org/spec/v2.0.0.html>`_.
Unreleased_
-----------

Nothing yet!
- `Add Python3.14 non-free-threading builds <../../pull/212>`_

4.7.1_ - 2026-07-23
-------------------
Expand Down
7 changes: 0 additions & 7 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ useful =
dev =
# Pytest 9.1.0 deprecates some APIs that some of our plugins require
pytest<9.1.0
pytest-cov
pytest-flake8
# Flake8 5.0 starts printing error, so pin to avoid it:
# AttributeError: module 'flake8.options.config' has no attribute 'ConfigFileFinder'
Expand Down Expand Up @@ -77,12 +76,6 @@ extend-ignore =
# Don't do flake8 here as we need to separate it out for CI
addopts =
--tb=native -vv --doctest-modules --ignore=softioc/iocStats --ignore=epicscorelibs --ignore=docs
--cov=softioc --cov-report term --cov-report xml:cov.xml
# Enables all discovered async tests and fixtures to be automatically marked as async, even if
# they don't have a specific marker https://github.com/pytest-dev/pytest-asyncio#auto-mode
asyncio_mode = auto

[coverage:run]
# This is covered in the versiongit test suite so exclude it here
omit = */_version_git.py
patch = subprocess
Loading