From e49482665a5d1d0e58e6a9f6f9ca90dc0fdfdb62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Sonderfeld?= Date: Tue, 6 Jan 2026 00:39:01 +0000 Subject: [PATCH 1/4] CI: test against Emacs 25.3, 29.1, 30.2 --- .github/workflows/test.yml | 41 +++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 428d4e7..32a9329 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,14 +3,49 @@ on: [push, pull_request] jobs: test: runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + # Skipping some in between releases. + emacs: ["25.3", "29.1", "30.2"] steps: - - uses: purcell/setup-emacs@master + - uses: actions/checkout@v6 + + - name: Set up Emacs + uses: purcell/setup-emacs@master + with: + version: ${{ matrix.emacs }} + + - name: Install zbar + run: | + sudo apt update + sudo apt install -y zbar-tools + + - name: Build + run: make + + - name: Test + run: make test + + test-snapshot: + runs-on: ubuntu-latest + # allow snapshot failures so CI doesn't block on nightly breakage + continue-on-error: true + steps: + - uses: actions/checkout@v6 + + - name: Set up Emacs (snapshot) + uses: purcell/setup-emacs@master with: version: snapshot + - name: Install zbar - run: sudo apt install -y zbar-tools - - uses: actions/checkout@v2 + run: | + sudo apt update + sudo apt install -y zbar-tools + - name: Build run: make + - name: Test run: make test From a66beda3e6c41b15db06e2e35d037d05621cdbdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Sonderfeld?= Date: Tue, 6 Jan 2026 10:31:39 +0000 Subject: [PATCH 2/4] CI: test against Emacs 26, 27, 28 as well --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 32a9329..2d92149 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: fail-fast: false matrix: # Skipping some in between releases. - emacs: ["25.3", "29.1", "30.2"] + emacs: ["25.3", "26.3", "27.2", "28.2", "29.1", "30.2"] steps: - uses: actions/checkout@v6 From 72e47a2a5039182d414afb465d979232014ad39d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Sonderfeld?= Date: Tue, 6 Jan 2026 10:44:26 +0000 Subject: [PATCH 3/4] Include subr-x for string-trim and string-empty-p prior to Emacs 29.1 --- qrencode.el | 3 +++ 1 file changed, 3 insertions(+) diff --git a/qrencode.el b/qrencode.el index d86dcc9..1451414 100644 --- a/qrencode.el +++ b/qrencode.el @@ -36,6 +36,9 @@ ;;; Code: +;; backwards compatibility for Emacs <29.1 +(eval-when-compile (require 'subr-x)) + (require 'cl-lib) (eval-when-compile (require 'easymenu)) (require 'seq) From 402867c2657fb5b6296f451c538c0d9305edf996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Sonderfeld?= Date: Tue, 6 Jan 2026 10:47:11 +0000 Subject: [PATCH 4/4] Limit tests to 25, 29, 30, snapshot. 25 is kinda the oldest version we claim to support, so let's test for it. But I don't want to waste all the time and energy to test all the version in between that probably hardly have users anyway. For transparency 26 actually failed to build the documentation with error `Please install htmlize from https://github.com/hniksic/emacs-htmlize`. But that doesn't seem like functional breakage and is exactly an example for why it's not worth supporting every single version. Supported versions will keep changing over time. --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2d92149..32a9329 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,7 +7,7 @@ jobs: fail-fast: false matrix: # Skipping some in between releases. - emacs: ["25.3", "26.3", "27.2", "28.2", "29.1", "30.2"] + emacs: ["25.3", "29.1", "30.2"] steps: - uses: actions/checkout@v6