From 5e2914d7965d60a4cd17a2d1cd22c4716236ac1c Mon Sep 17 00:00:00 2001 From: Clemens Brunner Date: Tue, 27 Oct 2026 17:05:19 +0100 Subject: [PATCH] Update CI: drop EOL jobs, test Python 3.11-3.15, add timeouts The test workflow was failing for reasons unrelated to the code. - Remove the Debian 11 i386 job: Debian 11 is end-of-life and its security repository on deb.debian.org no longer serves the packages it lists, so `apt-get install` fails with 404s. - Test on Python 3.11-3.15 and drop the numpy==1.26.4 job (NumPy 1.26 is the last release that supports Python 3.9). Pass --python to uv run so that every matrix entry actually runs with its own interpreter. - Add a 45 minute timeout to the test job. Slow PhysioNet downloads made jobs hang until GitHub cancelled them after 6 hours. - Update actions/checkout, astral-sh/setup-uv and the Read the Docs build image, and set up Python explicitly in the docs workflow. Add Dependabot to keep GitHub Actions up to date. - Replace the stale Poetry instructions in DEVELOPING.md with the uv equivalent. --- .github/dependabot.yml | 6 +++++ .github/workflows/docs.yml | 7 ++++-- .github/workflows/style.yml | 4 ++-- .github/workflows/test.yml | 46 +++++-------------------------------- .readthedocs.yml | 4 ++-- DEVELOPING.md | 9 ++------ 6 files changed, 23 insertions(+), 53 deletions(-) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..8ac6b8c4 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c9a58941..c8f0cda2 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -10,9 +10,12 @@ on: jobs: docs: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v7 + with: + python-version: "3.12" - name: Install dependencies run: | python -m pip install --upgrade pip diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml index fddc6485..585a8b04 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/style.yml @@ -13,8 +13,8 @@ jobs: name: Style Check runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: astral-sh/setup-uv@v3 + - uses: actions/checkout@v7 + - uses: astral-sh/setup-uv@v10.2.0 - name: Install Python run: uv python install 3.11 - name: Check style diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d20ca8a7..8a45fd3d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,21 +10,17 @@ on: jobs: test: - name: Python ${{ matrix.python-version }} / ${{ matrix.os }} / ${{ matrix.numpy }} + name: Python ${{ matrix.python-version }} / ${{ matrix.os }} strategy: fail-fast: false matrix: os: [windows-latest, ubuntu-latest, macos-latest] - python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] - numpy: ["numpy"] - include: - - os: ubuntu-latest - python-version: "3.9" - numpy: "numpy==1.26.4" + python-version: ["3.11", "3.12", "3.13", "3.14", "3.15"] runs-on: ${{ matrix.os }} + timeout-minutes: 45 steps: - - uses: actions/checkout@v4 - - uses: astral-sh/setup-uv@v3 + - uses: actions/checkout@v7 + - uses: astral-sh/setup-uv@v10.2.0 - name: Install Python ${{ matrix.python-version }} run: uv python install ${{ matrix.python-version }} - name: Install libsndfile @@ -33,34 +29,4 @@ jobs: - name: Run tests env: MPLBACKEND: Agg - run: uv run --with ${{ matrix.numpy }} --extra dev pytest - - test-deb11-i386: - name: Python 3.7 on Debian 11 i386 - runs-on: ubuntu-latest - container: i386/debian:11 - env: - NPY_PROMOTION_STATE: weak_and_warn - steps: - - name: Install dependencies - run: | - apt-get update - apt-get install -y --no-install-recommends \ - python3-fsspec \ - python3-matplotlib \ - python3-numpy \ - python3-pandas \ - python3-pip \ - python3-requests \ - python3-scipy \ - python3-soundfile \ - python3-pytest \ - git - python3 --version - # Note: "actions/checkout@v2" requires libstdc++6:amd64 to be - # installed in the container. To keep things simple, use - # "actions/checkout@v1" instead. - # https://github.com/actions/checkout/issues/334 - - uses: actions/checkout@v1 - - name: Run tests - run: pytest-3 + run: uv run --python ${{ matrix.python-version }} --extra dev pytest diff --git a/.readthedocs.yml b/.readthedocs.yml index 7d45d867..17aa4845 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -3,9 +3,9 @@ version: 2 build: - os: "ubuntu-20.04" + os: "ubuntu-24.04" tools: - python: "3.10" + python: "3.12" # Build from the docs/ directory with Sphinx sphinx: diff --git a/DEVELOPING.md b/DEVELOPING.md index cf3ec53b..04906337 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -36,15 +36,10 @@ uv add --optional It may be useful to publish to testpypi and preview the changes before publishing to PyPi. However, the project dependencies likely will not be available when trying to install from there. -Setup: configure access to repositories: +Setup: create an API token on PyPI (and on TestPyPI for test uploads) and pass it to uv: ```sh -# Create an API token, then add it -poetry config pypi-token.pypi - -# For testpypi -poetry config repositories.test-pypi https://test.pypi.org/legacy/ -poetry config pypi-token.test-pypi +export UV_PUBLISH_TOKEN= ``` To build and upload a new distribution: