From eeb4d32e9949429a0aad2642a294062548b77259 Mon Sep 17 00:00:00 2001 From: Edgar Bonet Date: Wed, 23 Sep 2026 16:51:59 +0200 Subject: [PATCH 1/6] CI: bump actions-codespell from 2.2 to 2.4.3 --- .github/workflows/codespell.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index d39d9fe..578dacc 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - uses: codespell-project/actions-codespell@8f01853be192eb0f849a5c7d721450e7a467c579 # v2.2 + - uses: codespell-project/actions-codespell@e3258cca84ce02b0bb36a3d41f2c18f719a0cc1a # v2.4.3 with: # "nd" (with lowercase "n") is from ".Nd" (with uppercase "n") in ttyplot.1 # https://github.com/codespell-project/codespell/issues/3233#issuecomment-1828026522 From d158c1d95c9504ad65d5e8cac62bbc0e802d12cb Mon Sep 17 00:00:00 2001 From: Edgar Bonet Date: Wed, 23 Sep 2026 16:57:12 +0200 Subject: [PATCH 2/6] CI: run "Enforce clang-format" on ubuntu-slim These runners use less resources, and are well suited for this kind of lightweight workflows. The codespell workflow cannot use these runners though, as it depends on Docker, which does not work on the slim runners. --- .github/workflows/clang_format.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/clang_format.yml b/.github/workflows/clang_format.yml index 9654a89..8a0b850 100644 --- a/.github/workflows/clang_format.yml +++ b/.github/workflows/clang_format.yml @@ -17,7 +17,7 @@ permissions: jobs: clang-format: name: Enforce clang-format - runs-on: ubuntu-22.04 + runs-on: ubuntu-slim env: CLANG_MAJOR_VERSION: 17 steps: From 45a62841dae1be00f862cb65619a842426325a71 Mon Sep 17 00:00:00 2001 From: Edgar Bonet Date: Wed, 23 Sep 2026 17:40:29 +0200 Subject: [PATCH 3/6] CI: run "Enforce codespell-clean spelling" on ubuntu-24.04 Bump to ubuntu-24.04, which is the current ubuntu-latest. --- .github/workflows/codespell.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codespell.yml b/.github/workflows/codespell.yml index 578dacc..083c157 100644 --- a/.github/workflows/codespell.yml +++ b/.github/workflows/codespell.yml @@ -17,7 +17,7 @@ permissions: jobs: codespell: name: Enforce codespell-clean spelling - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 From 3fe5707ba809802c99f886ecfd489bc17e96a722 Mon Sep 17 00:00:00 2001 From: Edgar Bonet Date: Wed, 23 Sep 2026 17:08:16 +0200 Subject: [PATCH 4/6] CI: bump clang-format from 17 to 20 We do not need to add the LLVM repositories anymore, as clang-format-20 is available on the standard repositories of Ubuntu 24.04, which is the base distro of the ubuntu-slim image. It is also available on Ubuntu 26.04, which should make this safe vs. a future upgrade of the image base. --- .github/workflows/clang_format.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/clang_format.yml b/.github/workflows/clang_format.yml index 8a0b850..f46327c 100644 --- a/.github/workflows/clang_format.yml +++ b/.github/workflows/clang_format.yml @@ -19,17 +19,10 @@ jobs: name: Enforce clang-format runs-on: ubuntu-slim env: - CLANG_MAJOR_VERSION: 17 + CLANG_MAJOR_VERSION: 20 steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - - name: Add Clang/LLVM repositories - run: |- - set -x - source /etc/os-release - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo add-apt-repository "deb http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}-${CLANG_MAJOR_VERSION} main" - - name: Install clang-format run: |- set -x From f9aaf015eb36ded08d41146f182df9ff79219961 Mon Sep 17 00:00:00 2001 From: Edgar Bonet Date: Wed, 23 Sep 2026 19:20:51 +0200 Subject: [PATCH 5/6] CI: upgrade tooling on "Build on Linux/macOS" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There have been some changes in the GitHub runner images since our last big bump: * Ubuntu 26.04 is available as public preview * macOS 14 has being deprecated * macOS 26 has reached general availability * macOS 27 is available as public preview as "xcode-27" Update the set of images we use: remove the deprecated macOS 14 and add the newly available images. Update also the range of compilers, including for each of them versions n, n−2 and n−4, where n is the latest available version. Remove the steps "Add Clang/LLVM repositories" and "Install build dependency Clang ", as the required clang versions are already installed on the GitHub-supplied images. The version coverage of our CI workflow is changed as follows: Ubuntu: 22.04,24.04 → 22.04–26.04 macOS: 14–26 → 15–27 gcc: 13–15 → 11,13,15 clang: 18,20 → 18,20,22 --- .github/workflows/linux_and_macos.yml | 50 ++++++++------------------- 1 file changed, 15 insertions(+), 35 deletions(-) diff --git a/.github/workflows/linux_and_macos.yml b/.github/workflows/linux_and_macos.yml index e3923ee..341dbb1 100644 --- a/.github/workflows/linux_and_macos.yml +++ b/.github/workflows/linux_and_macos.yml @@ -26,46 +26,33 @@ jobs: fail-fast: false matrix: include: - - cc: gcc-14 + - cc: gcc-11 clang_major_version: null - clang_repo_suffix: null make: make - runs-on: ubuntu-24.04 - - cc: clang-18 - clang_major_version: 18 - clang_repo_suffix: -18 - make: bmake runs-on: ubuntu-22.04 - - cc: musl-gcc + - cc: musl-gcc # based on gcc-13 clang_major_version: null - clang_repo_suffix: null make: bmake - runs-on: ubuntu-22.04 - - cc: gcc-13 - clang_major_version: null - clang_repo_suffix: null + runs-on: ubuntu-24.04 + - cc: clang-22 + clang_major_version: 22 + make: bmake + runs-on: ubuntu-26.04 + experimental: true # preview OS (see continue-on-error above) + - cc: clang-18 + clang_major_version: 18 make: make - runs-on: macos-14 + runs-on: macos-15 - cc: gcc-15 clang_major_version: null - clang_repo_suffix: null make: bmake - runs-on: macos-15-intel + runs-on: macos-26-intel - cc: clang-20 clang_major_version: 20 - clang_repo_suffix: null make: bsdmake - runs-on: macos-26 - experimental: true # preview OS; UI test renders blank (see continue-on-error above) + runs-on: xcode-27 + experimental: true # preview OS (see continue-on-error above) steps: - - name: Add Clang/LLVM repositories - if: "${{ runner.os == 'Linux' && contains(matrix.cc, 'clang') }}" - run: |- - set -x - source /etc/os-release - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo add-apt-repository "deb http://apt.llvm.org/${UBUNTU_CODENAME}/ llvm-toolchain-${UBUNTU_CODENAME}${{ matrix.clang_repo_suffix }} main" - - name: Install build dependencies if: "${{ runner.os == 'Linux' }}" run: |- @@ -84,13 +71,6 @@ jobs: bsdmake \ coreutils - - name: Install build dependency Clang ${{ matrix.clang_major_version }} - if: "${{ runner.os == 'Linux' && contains(matrix.cc, 'clang') }}" - run: |- - sudo apt-get install --yes --no-install-recommends -V \ - clang-${{ matrix.clang_major_version }} \ - libclang-rt-${{ matrix.clang_major_version }}-dev - - name: Add versioned aliases for Clang ${{ matrix.clang_major_version }} if: "${{ runner.os == 'macOS' && contains(matrix.cc, 'clang') }}" run: |- @@ -157,7 +137,7 @@ jobs: fi # musl-gcc and compilers on macOS do not seem to support linking with sanitizers - if [[ ${{ matrix.cc }} =~ musl || ${{ matrix.runs-on }} =~ macos ]]; then + if [[ ${{ matrix.cc }} =~ musl || ${{ matrix.runs-on }} =~ macos|xcode ]]; then sanitizer= else # ASan: https://clang.llvm.org/docs/AddressSanitizer.html From adc1766305453e19b91dce18979e3dbde3e48691 Mon Sep 17 00:00:00 2001 From: Edgar Bonet Date: Wed, 23 Sep 2026 21:39:39 +0200 Subject: [PATCH 6/6] CI: replace bsdmake with remake. Remove bsdmake from the test matrix: it has been deprecated (it's unmaintained). Add remake (GNU make fork with improved error reporting and debugging). --- .github/workflows/linux_and_macos.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linux_and_macos.yml b/.github/workflows/linux_and_macos.yml index 341dbb1..a86c3fe 100644 --- a/.github/workflows/linux_and_macos.yml +++ b/.github/workflows/linux_and_macos.yml @@ -36,7 +36,7 @@ jobs: runs-on: ubuntu-24.04 - cc: clang-22 clang_major_version: 22 - make: bmake + make: remake runs-on: ubuntu-26.04 experimental: true # preview OS (see continue-on-error above) - cc: clang-18 @@ -49,7 +49,7 @@ jobs: runs-on: macos-26-intel - cc: clang-20 clang_major_version: 20 - make: bsdmake + make: remake runs-on: xcode-27 experimental: true # preview OS (see continue-on-error above) steps: @@ -59,6 +59,7 @@ jobs: sudo apt-get update sudo apt-get install --yes --no-install-recommends \ bmake \ + remake \ libncurses-dev \ musl-tools \ pkg-config @@ -68,7 +69,7 @@ jobs: run: |- brew install \ bmake \ - bsdmake \ + remake \ coreutils - name: Add versioned aliases for Clang ${{ matrix.clang_major_version }}