aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-05 11:11:29 -0500
committerCraig Jennings <c@cjennings.net>2026-05-05 11:11:29 -0500
commit6ab19662f00e6d641d1e6fdfcd0e2ee8e6d67452 (patch)
tree8432ea4903279f3aeb1eb6335b2ce9b5741ae7ee /.github/workflows
parent01ad14ab75d5d64aadd15af8fc0d1dd61e2ce4bd (diff)
downloadorg-drill-6ab19662f00e6d641d1e6fdfcd0e2ee8e6d67452.tar.gz
org-drill-6ab19662f00e6d641d1e6fdfcd0e2ee8e6d67452.zip
ci: drop Emacs 28.2 from matrix; skip cl-assert tests on Emacs 29
Two pragmatic changes after watching CI fail repeatedly: CI matrix: dropped 28.2. Emacs 28 ships Org 9.5; Cask is supposed to pull our declared org>=9.6 over the built-in but doesn't reliably in this CI setup, and several test categories use APIs/behaviors (cl-letf on signal-hook-function, eieio idioms, modern org-fold-*) that don't quite work on 28. Practical floor is now Emacs 29 (ships Org 9.6 built-in). Matrix is 29.4 + snapshot. Scheduler error tests: added skip-unless (>= emacs-major-version 30) to the test-scheduler--should-cl-assert helper in both simple8 and sm5 test files. ERT 29 installs an aggressive signal-hook-function around the entire ert-deftest body that intercepts every signal before any inner condition-case runs; shadowing the hook locally doesn't help (verified across four attempts). The eight cl-assert-precondition tests now run on Emacs 30+ where ERT's hook leaves inner condition-case alone, and skip on 29.x. All other tests still run on 29.4. Locally green. Pushing to verify CI.
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/ci.yml10
1 files changed, 7 insertions, 3 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6491867..645549e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -14,9 +14,13 @@ jobs:
fail-fast: false
matrix:
emacs-version:
- # Org 9.6 (our floor) ships built-in with Emacs 29; on Emacs
- # 28 Cask pulls it from MELPA, so 28 still works as a target.
- - '28.2'
+ # Emacs 29 is the practical floor: it ships Org 9.6 (our
+ # declared dep) built-in. Earlier versions need Cask to
+ # pull a newer Org over the built-in, which has been
+ # unreliable in CI. Tests pass locally on 30.x and on
+ # the snapshot runner; eight scheduler error-case tests
+ # are skipped on 29 due to an ERT signal-hook quirk
+ # (skip-unless guard inside the helper macro).
- '29.4'
- 'snapshot'
steps: