Skip to content

[ci] Drop Emacs 26, test Emacs 30 #3782

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Mar 13, 2025
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
43 changes: 23 additions & 20 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,32 +54,35 @@ commands:
command: eldev -dtT compile --warnings-as-errors

jobs:
test-ubuntu-emacs-26:
docker:
- image: silex/emacs:26-ci
entrypoint: bash
steps:
- setup
- test
# NB: commented until https://github.com/magit/transient/issues/368 or
# whatever is causing it is fixed.
# test-ubuntu-emacs-27:
# docker:
# - image: silex/emacs:27-ci
# entrypoint: bash
# steps:
# - setup
# - test

test-ubuntu-emacs-27:
test-ubuntu-emacs-28:
docker:
- image: silex/emacs:27-ci
- image: silex/emacs:28-ci
entrypoint: bash
steps:
- setup
- test

test-ubuntu-emacs-28:
test-ubuntu-emacs-29:
docker:
- image: silex/emacs:28-ci
- image: silex/emacs:29-ci
entrypoint: bash
steps:
- setup
- test
test-ubuntu-emacs-29:

test-ubuntu-emacs-30:
docker:
- image: silex/emacs:29-ci
- image: silex/emacs:30-ci
entrypoint: bash
steps:
- setup
Expand Down Expand Up @@ -131,19 +134,19 @@ workflows:
jobs:
- test-shellcheck
- test-lint
- test-ubuntu-emacs-26:
requires:
- test-lint
- test-shellcheck
- test-ubuntu-emacs-27:
# - test-ubuntu-emacs-27:
# requires:
# - test-lint
# - test-shellcheck
- test-ubuntu-emacs-28:
requires:
- test-lint
- test-shellcheck
- test-ubuntu-emacs-28:
- test-ubuntu-emacs-29:
requires:
- test-lint
- test-shellcheck
- test-ubuntu-emacs-29:
- test-ubuntu-emacs-30:
requires:
- test-lint
- test-shellcheck
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,18 @@ jobs:
matrix:
# Test all Emacs versions on Ubuntu.
os: [ubuntu-latest]
emacs_version: ['26.3', '27.2', '28.2', '29.3', 'snapshot']
emacs_version: ['27.2', '28.2', '29.3', '30.1', 'snapshot']
java_version: ['21']
include:
# For other OSes, test only the latest stable Emacs version.
- os: macos-latest # aarch64
emacs_version: '29.3'
emacs_version: '30.1'
java_version: '21'
- os: macos-13 # x64
emacs_version: '29.3'
emacs_version: '30.1'
java_version: '21'
- os: windows-latest
emacs_version: '29.3'
emacs_version: '30.1'
java_version: '21'

steps:
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### Changes

- [#3782](https://github.com/clojure-emacs/cider/issues/3782): **(Breaking)** Drop official support for Emacs 26.
- [#3777](https://github.com/clojure-emacs/cider/issues/3777): Inspector no longer displays parsed Javadoc for Java classes and members.

## 1.17.1 (2025-02-25)
Expand Down
6 changes: 3 additions & 3 deletions cider-client.el
Original file line number Diff line number Diff line change
Expand Up @@ -249,15 +249,15 @@ Assuming this is the Clojure map you want to use as `cljfmt' options:

you need to encode it as the following plist:

'((\"indents\" ((\"org.me/foo\" ((\"inner\" 0))))) (\"alias-map\" ((\"me\" \"org.me\"))))"
\\='((\"indents\" ((\"org.me/foo\" ((\"inner\" 0))))) (\"alias-map\" ((\"me\" \"org.me\"))))"
:type 'list
:group 'cider
:package-version '(cider . "1.1.0"))

(defun cider--nrepl-format-code-request-map (&optional format-options)
"Map to merge into requests that require code formatting.
If non-nil, FORMAT-OPTIONS specifies the options cljfmt will use to format
the code. See `cider-format-code-options` for details."
the code. See `cider-format-code-options' for details."
(when format-options
(let* ((indents-dict (when (assoc "indents" format-options)
(thread-last
Expand Down Expand Up @@ -320,7 +320,7 @@ nil."
"A map of options that will be passed to `cider-print-fn'.
Here's an example for `pprint':

'((\"length\" 50) (\"right-margin\" 70))"
\\='((\"length\" 50) (\"right-margin\" 70))"
:type 'list
:group 'cider
:package-version '(cider . "0.21.0"))
Expand Down
4 changes: 2 additions & 2 deletions cider-connection.el
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ We look only at the major and minor components. When the major
version is 0, only check that the minor versions match. When the major version
is > 0, first check that the major version matches, then that the minor
version is >= the required minor version.
VER the 'installed' version,
VER the `installed' version,
REQUIRED-VER the version required by cider."
(let ((ver* (cider--strip-version-patch ver))
(required-ver* (cider--strip-version-patch required-ver)))
Expand Down Expand Up @@ -785,7 +785,7 @@ Session name can be customized with `cider-session-name-template'."
;;; REPL Buffer Init

(defvar-local cider-cljs-repl-type nil
"The type of the ClojureScript runtime ('browser, 'node, 'figwheel, etc.).")
"The type of the ClojureScript runtime (\\='browser, \\='node, \\='figwheel, etc.).")

(defvar-local cider-repl-type nil
"The type of this REPL buffer, usually either clj or cljs.")
Expand Down
4 changes: 3 additions & 1 deletion cider-selector.el
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ selects a buffer.
BODY is a series of forms which are evaluated when the selector
is chosen. The returned buffer is selected with
`switch-to-buffer'."
(declare (indent 1))
(let ((method `(lambda ()
(let ((buffer (progn ,@body)))
(cond ((not (and buffer (get-buffer buffer)))
Expand Down Expand Up @@ -143,7 +144,8 @@ is chosen. The returned buffer is selected with
"Most recently visited emacs-lisp-mode buffer."
(cider-selector--recently-visited-buffer 'emacs-lisp-mode))

(def-cider-selector-method ?q "Abort."
(def-cider-selector-method ?q
"Abort."
(top-level))

(def-cider-selector-method ?r
Expand Down
2 changes: 1 addition & 1 deletion cider.el
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
;; Maintainer: Bozhidar Batsov <[email protected]>
;; URL: https://www.github.com/clojure-emacs/cider
;; Version: 1.18.0-snapshot
;; Package-Requires: ((emacs "26") (clojure-mode "5.19") (parseedn "1.2.1") (queue "0.2") (spinner "1.7") (seq "2.22") (sesman "0.3.2") (transient "0.4.1"))
;; Package-Requires: ((emacs "27") (clojure-mode "5.19") (parseedn "1.2.1") (queue "0.2") (spinner "1.7") (seq "2.22") (sesman "0.3.2") (transient "0.4.1"))
;; Keywords: languages, clojure, cider

;; This program is free software: you can redistribute it and/or modify
Expand Down
13 changes: 10 additions & 3 deletions doc/modules/ROOT/pages/about/compatibility.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

== Emacs

CIDER supports Emacs 26.1+. More generally we try to support the last 3 major Emacs releases
CIDER supports Emacs 27.1+. More generally we try to support the last 3 major Emacs releases
when that's feasible and doesn't add a lot of maintenance overhead.

NOTE: We pay special attention to supporting whatever Emacs is bundled with the current stable Debian
Expand All @@ -16,7 +16,7 @@ NOTE: We pay special attention to supporting whatever nREPL is bundled with the

== Java

CIDER officially targets Java 8, Java 11, Java 17, Java 21, and the most recent
CIDER officially targets Java 8, 11, 17, 21, and the most recent
non-LTS version. Generally speaking, we aim to support all Java releases that
are currently officially supported by Oracle.footnote:[You can find more
information about the supported Java releases
Expand Down Expand Up @@ -75,13 +75,20 @@ Below you can find the official compatibility matrix for CIDER.
| 8
| 1.9

| 1.16
| 1.17
| 26.1
| 1.0
| 0.50
| 8
| 1.10

| 1.18
| 27.1
| 1.0
| 0.50
| 8
| 1.10

|===

TIP: You can also check the requirements of a particular CIDER version by inspecting
Expand Down
2 changes: 1 addition & 1 deletion doc/modules/ROOT/pages/basics/installation.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ release. If you're new to Emacs you might want to go through
https://www.gnu.org/software/emacs/tour/index.html[the guided tour of Emacs]
and the built-in tutorial (just press kbd:[C-h t]).

CIDER officially supports Emacs 26.1+, Java 8+, and Clojure(Script) 1.10+. If
CIDER officially supports Emacs 27.1+, Java 8+, and Clojure(Script) 1.10+. If
you need to work with earlier versions, check
xref:about/compatibility.adoc#compatibility-matrix[compatibility matrix].

Expand Down
12 changes: 6 additions & 6 deletions nrepl-client.el
Original file line number Diff line number Diff line change
Expand Up @@ -833,13 +833,13 @@ to the REPL."
truncated-handler)
"Make a response handler for connection BUFFER.
A handler is a function that takes one argument - response received from
the server process. The response is an alist that contains at least 'id'
and 'session' keys. Other standard response keys are 'value', 'out', 'err',
and 'status'.
the server process. The response is an alist that contains at least `id'
and `session' keys. Other standard response keys are `value', `out', `err',
and `status'.

The presence of a particular key determines the type of the response. For
example, if 'value' key is present, the response is of type 'value', if
'out' key is present the response is 'stdout' etc.
example, if `value' key is present, the response is of type `value', if
`out' key is present the response is `stdout' etc.

Depending on the type, the handler dispatches the appropriate value to one
of the supplied handlers: VALUE-HANDLER, STDOUT-HANDLER, STDERR-HANDLER,
Expand Down Expand Up @@ -1219,7 +1219,7 @@ up."
(defun nrepl-server-sentinel (process event)
"Handle nREPL server PROCESS EVENT.
If the nREPL PROCESS failed to initiate and encountered a fatal EVENT
signal, raise an 'error'. Additionally, if the EVENT signal is SIGHUP,
signal, raise an `error'. Additionally, if the EVENT signal is SIGHUP,
close any existing client connections."
;; only interested on fatal signals.
(when (not (process-live-p process))
Expand Down