From b8af3029e821468cc9baa2e109e2bcac605cd521 Mon Sep 17 00:00:00 2001 From: p4v4n Date: Sat, 4 Nov 2023 19:40:37 +0530 Subject: [PATCH 1/9] Use Eldev --- .circleci/config.yml | 149 ++++++++++++++----- .gitignore | 3 + CONTRIBUTING.md | 6 +- Cask | 9 -- Eldev | 24 +++ Makefile | 46 ++---- clojure-mode.el | 4 +- test/clojure-mode-bytecomp-warnings.el | 40 ----- test/clojure-mode-convert-collection-test.el | 1 + test/clojure-mode-refactor-add-arity-test.el | 1 + test/test-checks.el | 30 ---- test/utils/test-helper.el | 2 +- 12 files changed, 158 insertions(+), 157 deletions(-) delete mode 100644 Cask create mode 100644 Eldev delete mode 100644 test/clojure-mode-bytecomp-warnings.el delete mode 100644 test/test-checks.el diff --git a/.circleci/config.yml b/.circleci/config.yml index def610ed..2b7ad4cc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,56 +1,129 @@ version: 2.1 -# Default actions to perform on each Emacs version -default: &default-steps - steps: - - checkout - - run: apt-get update && apt-get install make - - run: make elpa - - run: emacs --version - - run: make test - # Make sure to run test-checks before test-bytecomp, as test-bytecomp autogenerates - # files which won't pass test-checks. - - run: make test-checks - - run: make test-bytecomp +orbs: + win: circleci/windows@2.2.0 + +commands: + setup: + steps: + - checkout + - run: + name: Install Eldev + command: curl -fsSL https://raw.github.com/doublep/eldev/master/webinstall/circle-eldev > x.sh && source ./x.sh + + setup-macos: + steps: + - checkout + - run: + name: Install Emacs latest + command: | + brew install homebrew/cask/emacs + - run: + name: Install Eldev + command: curl -fsSL https://raw.github.com/doublep/eldev/master/webinstall/circle-eldev > x.sh && source ./x.sh + + setup-windows: + steps: + - checkout + - run: + name: Install Eldev + command: | + # Remove expired DST Root CA X3 certificate. Workaround + # for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51038 + # bug on Emacs 27.2. + gci cert:\LocalMachine\Root\DAC9024F54D8F6DF94935FB1732638CA6AD77C13 + gci cert:\LocalMachine\Root\DAC9024F54D8F6DF94935FB1732638CA6AD77C13 | Remove-Item + (iwr https://raw.github.com/doublep/eldev/master/webinstall/circle-eldev.ps1).Content | powershell -command - + test: + steps: + - run: + name: Run regression tests + command: eldev -dtT -p test + lint: + steps: + - run: + name: Lint + command: eldev lint -c + compile: + steps: + - run: + name: Check for byte-compilation errors + command: eldev -dtT compile --warnings-as-errors -# Enumerated list of Emacs versions jobs: - test-emacs-25: + test-ubuntu-emacs-26: docker: - - image: silex/emacs:25-ci-cask + - image: silex/emacs:26-ci entrypoint: bash - <<: *default-steps - - test-emacs-26: + steps: + - setup + - test + - lint + - compile + test-ubuntu-emacs-27: docker: - - image: silex/emacs:26-ci-cask + - image: silex/emacs:27-ci entrypoint: bash - <<: *default-steps - - test-emacs-27: + steps: + - setup + - test + - lint + - compile + test-ubuntu-emacs-28: docker: - - image: silex/emacs:27-ci-cask + - image: silex/emacs:28-ci entrypoint: bash - <<: *default-steps - - test-emacs-28: + steps: + - setup + - test + - lint + - compile + test-ubuntu-emacs-29: docker: - - image: silex/emacs:28-ci-cask + - image: silex/emacs:29-ci entrypoint: bash - <<: *default-steps - - test-emacs-master: + steps: + - setup + - test + - lint + - compile + test-ubuntu-emacs-master: docker: - - image: silex/emacs:master-ci-cask + - image: silex/emacs:master-ci entrypoint: bash - <<: *default-steps + steps: + - setup + - test + - lint + - compile + test-macos-emacs-latest: + macos: + xcode: "14.0.0" + steps: + - setup-macos + - test + - lint + - compile + test-windows-emacs-latest: + executor: win/default + steps: + - run: + name: Install Emacs latest + command: | + choco install emacs + - setup-windows + - test + - lint + - compile workflows: - version: 2 + version: 2.1 ci-test-matrix: jobs: - - test-emacs-25 - - test-emacs-26 - - test-emacs-27 - - test-emacs-28 - - test-emacs-master + - test-ubuntu-emacs-26 + - test-ubuntu-emacs-27 + - test-ubuntu-emacs-28 + - test-ubuntu-emacs-29 + - test-ubuntu-emacs-master + - test-windows-emacs-latest + - test-macos-emacs-latest diff --git a/.gitignore b/.gitignore index ef07d5a4..360a9941 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ elpa* /clojure-mode-autoloads.el /clojure-mode-pkg.el + +/.eldev +/Eldev-local diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2743702a..2eada5b9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -39,8 +39,8 @@ and description in grammatically correct, complete sentences. ## Development setup 1. Fork and clone the repository. -1. Install [Cask][7]. -1. Run `cask install` in the repository folder. +1. Install [Eldev][7]. +1. Run `eldev build` in the repository folder. 1. Run tests with `make test`. **Note:** macOS users should make sure that the `emacs` command resolves the version of Emacs they've installed @@ -53,5 +53,5 @@ See [this article][8] for more details. [4]: https://help.github.com/articles/using-pull-requests [5]: https://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html [6]: https://github.com/clojure-emacs/clojure-mode/blob/master/CHANGELOG.md -[7]: https://github.com/cask/cask +[7]: https://github.com/emacs-eldev/eldev [8]: https://emacsredux.com/blog/2015/05/09/emacs-on-os-x/ diff --git a/Cask b/Cask deleted file mode 100644 index abcd75fd..00000000 --- a/Cask +++ /dev/null @@ -1,9 +0,0 @@ -(source gnu) -(source melpa) - -(package-file "clojure-mode.el") - -(development - (depends-on "s") - (depends-on "buttercup") - (depends-on "paredit")) diff --git a/Eldev b/Eldev new file mode 100644 index 00000000..ad7c904c --- /dev/null +++ b/Eldev @@ -0,0 +1,24 @@ +; -*- mode: emacs-lisp; lexical-binding: t -*- + +(eldev-require-version "1.6") + +(eldev-use-package-archive 'gnu-elpa) +(eldev-use-package-archive 'nongnu-elpa) +(eldev-use-package-archive 'melpa) + +(eldev-use-plugin 'autoloads) + +(eldev-add-extra-dependencies 'test 'paredit 's 'buttercup) + +(setq byte-compile-docstring-max-column 240) +(setq checkdoc-force-docstrings-flag nil) +(setq checkdoc-permit-comma-termination-flag t) +(setq checkdoc--interactive-docstring-flag nil) + +(setf eldev-lint-default '(elisp)) +(with-eval-after-load 'elisp-lint + ;; We will byte-compile with Eldev. + (setf elisp-lint-ignored-validators '("package-lint" "fill-column" "byte-compile" "checkdoc") + enable-local-variables :safe)) + +(setq eldev-project-main-file "clojure-mode.el") diff --git a/Makefile b/Makefile index 27503963..c940ca74 100644 --- a/Makefile +++ b/Makefile @@ -1,42 +1,20 @@ -CASK = cask -export EMACS ?= emacs -EMACSFLAGS = - -PKGDIR := $(shell EMACS=$(EMACS) $(CASK) package-directory) - -SRCS = $(wildcard *.el) -OBJS = $(SRCS:.el=.elc) .PHONY: compile test clean elpa -all: compile - -elpa-$(EMACS): - $(CASK) install - $(CASK) update - touch $@ - -elpa: elpa-$(EMACS) - -elpaclean: - rm -f elpa* - rm -rf .cask # Clean packages installed for development - -compile: elpa - $(CASK) build - clean: - rm -f $(OBJS) clojure-mode-autoloads.el + echo + +# You can find a generic `eldev` installation script in https://github.com/emacs-eldev/eldev/blob/master/webinstall/eldev +# (Don't use the one defined for CircleCI in your local machine) -test: $(PKGDIR) - $(CASK) exec buttercup +lint: clean + eldev -c lint -test-checks: - $(CASK) exec $(EMACS) --no-site-file --no-site-lisp --batch \ - -l test/test-checks.el ./ +# Checks for byte-compilation warnings. +compile: clean + eldev -dtT compile --warnings-as-errors -test-bytecomp: $(SRCS:.el=.elc-test) +test: clean + eldev -dtT -p test -%.elc-test: %.el elpa - $(CASK) exec $(EMACS) --no-site-file --no-site-lisp --batch \ - -l test/clojure-mode-bytecomp-warnings.el $< +all: compile test diff --git a/clojure-mode.el b/clojure-mode.el index 8dda5553..e3d554de 100644 --- a/clojure-mode.el +++ b/clojure-mode.el @@ -3129,7 +3129,7 @@ Assumes cursor is at beginning of function." "Add an arity to a function. Assumes cursor is at beginning of function." - (let ((beg-line (what-line)) + (let ((beg-line (line-number-at-pos)) (end (save-excursion (forward-sexp) (point)))) (down-list 2) @@ -3141,7 +3141,7 @@ Assumes cursor is at beginning of function." (insert "[") (save-excursion (insert "])\n("))) ((looking-back "\\[" 1) ;; single-arity fn - (let* ((same-line (string= beg-line (what-line))) + (let* ((same-line (= beg-line (line-number-at-pos))) (new-arity-text (concat (when same-line "\n") "(["))) (save-excursion (goto-char end) diff --git a/test/clojure-mode-bytecomp-warnings.el b/test/clojure-mode-bytecomp-warnings.el deleted file mode 100644 index 41b3230d..00000000 --- a/test/clojure-mode-bytecomp-warnings.el +++ /dev/null @@ -1,40 +0,0 @@ -;;; clojure-mode-bytecomp-warnings.el --- Check for byte-compilation problems -*- lexical-binding: t; -*- - -;; Copyright © 2012-2021 Bozhidar Batsov and contributors -;; -;; This program is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - -;; This file is not part of GNU Emacs. - -;;; Commentary: - -;; This is a script to be loaded while visiting a `clojure-mode' source file. -;; It will prepare all requirements and then byte-compile the file and signal an -;; error on any warning. For example: -;; -;; emacs -Q --batch -l test/clojure-mode-bytecomp-warnings.el clojure-mode.el - -;; This assumes that all `clojure-mode' dependencies are already on the package -;; dir (probably from running `cask install'). - -(setq load-prefer-newer t) -(add-to-list 'load-path (expand-file-name "./")) -(require 'package) -(package-generate-autoloads 'clojure-mode default-directory) -(package-initialize) -(load-file "clojure-mode-autoloads.el") -(setq byte-compile-error-on-warn t) -(batch-byte-compile) - -;;; clojure-mode-bytecomp-warnings.el ends here diff --git a/test/clojure-mode-convert-collection-test.el b/test/clojure-mode-convert-collection-test.el index 28c5977e..14e52915 100644 --- a/test/clojure-mode-convert-collection-test.el +++ b/test/clojure-mode-convert-collection-test.el @@ -27,6 +27,7 @@ (require 'clojure-mode) (require 'buttercup) +(require 'test-helper "test/utils/test-helper") (describe "clojure-convert-collection-to-map" (when-refactoring-it "should convert a list to a map" diff --git a/test/clojure-mode-refactor-add-arity-test.el b/test/clojure-mode-refactor-add-arity-test.el index 9c75f128..5f1c5fb9 100644 --- a/test/clojure-mode-refactor-add-arity-test.el +++ b/test/clojure-mode-refactor-add-arity-test.el @@ -24,6 +24,7 @@ (require 'clojure-mode) (require 'buttercup) +(require 'test-helper "test/utils/test-helper") (describe "clojure-add-arity" diff --git a/test/test-checks.el b/test/test-checks.el deleted file mode 100644 index a4b4208f..00000000 --- a/test/test-checks.el +++ /dev/null @@ -1,30 +0,0 @@ -;; This is a script to be loaded from the root `clojure-mode' directory. It will -*- lexical-binding: t; -*- -;; prepare all requirements and then run `check-declare-directory' on -;; `default-directory'. For example: emacs -Q --batch -l test/test-checkdoc.el - -;; This assumes that all `clojure-mode' dependencies are already on the package -;; dir (probably from running `cask install'). - -(add-to-list 'load-path (expand-file-name "./")) -(require 'package) -(require 'check-declare) -(package-initialize) - -;; disable some annoying (or non-applicable) checkdoc checks -(setq checkdoc-package-keywords-flag nil) -(setq checkdoc-arguments-in-order-flag nil) -(setq checkdoc-verb-check-experimental-flag nil) - -(let ((files (directory-files default-directory t - "\\`[^.].*\\.el\\'" t))) - - ;; `checkdoc-file' was introduced in Emacs 25 - (when (fboundp 'checkdoc-file) - (dolist (file files) - (checkdoc-file file)) - (when (get-buffer "*Warnings*") - (message "Failing due to checkdoc warnings...") - (kill-emacs 1))) - - (when (apply #'check-declare-files files) - (kill-emacs 1))) diff --git a/test/utils/test-helper.el b/test/utils/test-helper.el index b359277c..e7894f04 100644 --- a/test/utils/test-helper.el +++ b/test/utils/test-helper.el @@ -26,7 +26,7 @@ (message "Running tests on Emacs %s" emacs-version) (let* ((current-file (if load-in-progress load-file-name (buffer-file-name))) - (source-directory (locate-dominating-file current-file "Cask")) + (source-directory (locate-dominating-file current-file "Eldev")) ;; Do not load outdated byte code for tests (load-prefer-newer t)) ;; Load the file under test From d9437a2f1f0f6014b32aa9b3df8ebfcfce5d750d Mon Sep 17 00:00:00 2001 From: p4v4n Date: Sat, 4 Nov 2023 20:05:43 +0530 Subject: [PATCH 2/9] Fix linting --- clojure-mode.el | 152 ++++++++++++++++++++++++------------------------ 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/clojure-mode.el b/clojure-mode.el index e3d554de..e4e54174 100644 --- a/clojure-mode.el +++ b/clojure-mode.el @@ -1813,82 +1813,82 @@ work). To set it from Lisp code, use :set 'add-custom-clojure-indents) (define-clojure-indent - ;; built-ins - (ns 1) - (fn :defn) - (def :defn) - (defn :defn) - (bound-fn :defn) - (if 1) - (if-not 1) - (case 1) - (cond 0) - (condp 2) - (cond-> 1) - (cond->> 1) - (when 1) - (while 1) - (when-not 1) - (when-first 1) - (do 0) - (delay 0) - (future 0) - (comment 0) - (doto 1) - (locking 1) - (proxy '(2 nil nil (:defn))) - (as-> 2) - (fdef 1) - - (reify '(:defn (1))) - (deftype '(2 nil nil (:defn))) - (defrecord '(2 nil nil (:defn))) - (defprotocol '(1 (:defn))) - (definterface '(1 (:defn))) - (extend 1) - (extend-protocol '(1 :defn)) - (extend-type '(1 :defn)) - ;; specify and specify! are from ClojureScript - (specify '(1 :defn)) - (specify! '(1 :defn)) - (try 0) - (catch 2) - (finally 0) - - ;; binding forms - (let 1) - (letfn '(1 ((:defn)) nil)) - (binding 1) - (loop 1) - (for 1) - (doseq 1) - (dotimes 1) - (when-let 1) - (if-let 1) - (when-some 1) - (if-some 1) - (this-as 1) ; ClojureScript - - (defmethod :defn) - - ;; clojure.test - (testing 1) - (deftest :defn) - (are 2) - (use-fixtures :defn) - (async 1) - - ;; core.logic - (run :defn) - (run* :defn) - (fresh :defn) - - ;; core.async - (alt! 0) - (alt!! 0) - (go 0) - (go-loop 1) - (thread 0)) + ;; built-ins + (ns 1) + (fn :defn) + (def :defn) + (defn :defn) + (bound-fn :defn) + (if 1) + (if-not 1) + (case 1) + (cond 0) + (condp 2) + (cond-> 1) + (cond->> 1) + (when 1) + (while 1) + (when-not 1) + (when-first 1) + (do 0) + (delay 0) + (future 0) + (comment 0) + (doto 1) + (locking 1) + (proxy '(2 nil nil (:defn))) + (as-> 2) + (fdef 1) + + (reify '(:defn (1))) + (deftype '(2 nil nil (:defn))) + (defrecord '(2 nil nil (:defn))) + (defprotocol '(1 (:defn))) + (definterface '(1 (:defn))) + (extend 1) + (extend-protocol '(1 :defn)) + (extend-type '(1 :defn)) + ;; specify and specify! are from ClojureScript + (specify '(1 :defn)) + (specify! '(1 :defn)) + (try 0) + (catch 2) + (finally 0) + + ;; binding forms + (let 1) + (letfn '(1 ((:defn)) nil)) + (binding 1) + (loop 1) + (for 1) + (doseq 1) + (dotimes 1) + (when-let 1) + (if-let 1) + (when-some 1) + (if-some 1) + (this-as 1) ; ClojureScript + + (defmethod :defn) + + ;; clojure.test + (testing 1) + (deftest :defn) + (are 2) + (use-fixtures :defn) + (async 1) + + ;; core.logic + (run :defn) + (run* :defn) + (fresh :defn) + + ;; core.async + (alt! 0) + (alt!! 0) + (go 0) + (go-loop 1) + (thread 0)) From 3da2c5753a6c66508596643d5798c9786634b2f9 Mon Sep 17 00:00:00 2001 From: p4v4n Date: Sat, 4 Nov 2023 21:06:48 +0530 Subject: [PATCH 3/9] Revert "Fix linting" This reverts commit d9437a2f1f0f6014b32aa9b3df8ebfcfce5d750d. --- clojure-mode.el | 152 ++++++++++++++++++++++++------------------------ 1 file changed, 76 insertions(+), 76 deletions(-) diff --git a/clojure-mode.el b/clojure-mode.el index e4e54174..e3d554de 100644 --- a/clojure-mode.el +++ b/clojure-mode.el @@ -1813,82 +1813,82 @@ work). To set it from Lisp code, use :set 'add-custom-clojure-indents) (define-clojure-indent - ;; built-ins - (ns 1) - (fn :defn) - (def :defn) - (defn :defn) - (bound-fn :defn) - (if 1) - (if-not 1) - (case 1) - (cond 0) - (condp 2) - (cond-> 1) - (cond->> 1) - (when 1) - (while 1) - (when-not 1) - (when-first 1) - (do 0) - (delay 0) - (future 0) - (comment 0) - (doto 1) - (locking 1) - (proxy '(2 nil nil (:defn))) - (as-> 2) - (fdef 1) - - (reify '(:defn (1))) - (deftype '(2 nil nil (:defn))) - (defrecord '(2 nil nil (:defn))) - (defprotocol '(1 (:defn))) - (definterface '(1 (:defn))) - (extend 1) - (extend-protocol '(1 :defn)) - (extend-type '(1 :defn)) - ;; specify and specify! are from ClojureScript - (specify '(1 :defn)) - (specify! '(1 :defn)) - (try 0) - (catch 2) - (finally 0) - - ;; binding forms - (let 1) - (letfn '(1 ((:defn)) nil)) - (binding 1) - (loop 1) - (for 1) - (doseq 1) - (dotimes 1) - (when-let 1) - (if-let 1) - (when-some 1) - (if-some 1) - (this-as 1) ; ClojureScript - - (defmethod :defn) - - ;; clojure.test - (testing 1) - (deftest :defn) - (are 2) - (use-fixtures :defn) - (async 1) - - ;; core.logic - (run :defn) - (run* :defn) - (fresh :defn) - - ;; core.async - (alt! 0) - (alt!! 0) - (go 0) - (go-loop 1) - (thread 0)) + ;; built-ins + (ns 1) + (fn :defn) + (def :defn) + (defn :defn) + (bound-fn :defn) + (if 1) + (if-not 1) + (case 1) + (cond 0) + (condp 2) + (cond-> 1) + (cond->> 1) + (when 1) + (while 1) + (when-not 1) + (when-first 1) + (do 0) + (delay 0) + (future 0) + (comment 0) + (doto 1) + (locking 1) + (proxy '(2 nil nil (:defn))) + (as-> 2) + (fdef 1) + + (reify '(:defn (1))) + (deftype '(2 nil nil (:defn))) + (defrecord '(2 nil nil (:defn))) + (defprotocol '(1 (:defn))) + (definterface '(1 (:defn))) + (extend 1) + (extend-protocol '(1 :defn)) + (extend-type '(1 :defn)) + ;; specify and specify! are from ClojureScript + (specify '(1 :defn)) + (specify! '(1 :defn)) + (try 0) + (catch 2) + (finally 0) + + ;; binding forms + (let 1) + (letfn '(1 ((:defn)) nil)) + (binding 1) + (loop 1) + (for 1) + (doseq 1) + (dotimes 1) + (when-let 1) + (if-let 1) + (when-some 1) + (if-some 1) + (this-as 1) ; ClojureScript + + (defmethod :defn) + + ;; clojure.test + (testing 1) + (deftest :defn) + (are 2) + (use-fixtures :defn) + (async 1) + + ;; core.logic + (run :defn) + (run* :defn) + (fresh :defn) + + ;; core.async + (alt! 0) + (alt!! 0) + (go 0) + (go-loop 1) + (thread 0)) From 9dd43431d13bdcdae659455f8348398f81455339 Mon Sep 17 00:00:00 2001 From: p4v4n Date: Sat, 4 Nov 2023 21:07:10 +0530 Subject: [PATCH 4/9] Use elisp-lint-indent-specs for linting issue --- Eldev | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Eldev b/Eldev index ad7c904c..90b0a3cd 100644 --- a/Eldev +++ b/Eldev @@ -19,6 +19,6 @@ (with-eval-after-load 'elisp-lint ;; We will byte-compile with Eldev. (setf elisp-lint-ignored-validators '("package-lint" "fill-column" "byte-compile" "checkdoc") - enable-local-variables :safe)) - + enable-local-variables :safe + elisp-lint-indent-specs '((define-clojure-indent . 0)))) (setq eldev-project-main-file "clojure-mode.el") From d1d124aeb7594358957be0f2d72ed1c943bc3f8f Mon Sep 17 00:00:00 2001 From: p4v4n Date: Sat, 4 Nov 2023 21:09:50 +0530 Subject: [PATCH 5/9] Maybe fix windows test --- test/clojure-mode-util-test.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/clojure-mode-util-test.el b/test/clojure-mode-util-test.el index 565773d4..6157a3d0 100644 --- a/test/clojure-mode-util-test.el +++ b/test/clojure-mode-util-test.el @@ -46,7 +46,7 @@ (bb-edn-src (expand-file-name "src" temp-dir))) (write-region "{}" nil bb-edn) (make-directory bb-edn-src) - (expect (clojure-project-dir bb-edn-src) + (expect (expand-file-name (clojure-project-dir bb-edn-src)) :to-equal (file-name-as-directory temp-dir)))))) (describe "clojure-project-relative-path" From 83c2a29def1bc1009dd4d310b06807fbff22e2db Mon Sep 17 00:00:00 2001 From: p4v4n Date: Sat, 4 Nov 2023 23:29:10 +0530 Subject: [PATCH 6/9] Minor updates --- .circleci/config.yml | 2 +- Eldev | 2 ++ Makefile | 13 +++++-------- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2b7ad4cc..ed91f656 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -98,7 +98,7 @@ jobs: - compile test-macos-emacs-latest: macos: - xcode: "14.0.0" + xcode: "14.2.0" steps: - setup-macos - test diff --git a/Eldev b/Eldev index 90b0a3cd..1becee18 100644 --- a/Eldev +++ b/Eldev @@ -16,9 +16,11 @@ (setq checkdoc--interactive-docstring-flag nil) (setf eldev-lint-default '(elisp)) + (with-eval-after-load 'elisp-lint ;; We will byte-compile with Eldev. (setf elisp-lint-ignored-validators '("package-lint" "fill-column" "byte-compile" "checkdoc") enable-local-variables :safe elisp-lint-indent-specs '((define-clojure-indent . 0)))) + (setq eldev-project-main-file "clojure-mode.el") diff --git a/Makefile b/Makefile index c940ca74..3e613538 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,11 @@ - -.PHONY: compile test clean elpa +.PHONY: clean compile lint test all +.DEFAULT_GOAL := all clean: - echo - -# You can find a generic `eldev` installation script in https://github.com/emacs-eldev/eldev/blob/master/webinstall/eldev -# (Don't use the one defined for CircleCI in your local machine) + eldev clean lint: clean - eldev -c lint + eldev lint -c # Checks for byte-compilation warnings. compile: clean @@ -17,4 +14,4 @@ compile: clean test: clean eldev -dtT -p test -all: compile test +all: clean compile lint test From 6a072605a53ee93a4a57154491d3bb5f982afe8a Mon Sep 17 00:00:00 2001 From: p4v4n Date: Sat, 4 Nov 2023 23:37:15 +0530 Subject: [PATCH 7/9] Skip brew auto-update --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ed91f656..e01b12df 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,7 +17,7 @@ commands: - run: name: Install Emacs latest command: | - brew install homebrew/cask/emacs + HOMEBREW_NO_AUTO_UPDATE=1 brew install homebrew/cask/emacs - run: name: Install Eldev command: curl -fsSL https://raw.github.com/doublep/eldev/master/webinstall/circle-eldev > x.sh && source ./x.sh From bbf84bfe527f59067038b433a39b0bf3b4816530 Mon Sep 17 00:00:00 2001 From: p4v4n Date: Sat, 4 Nov 2023 23:44:43 +0530 Subject: [PATCH 8/9] Revert "Skip brew auto-update" This reverts commit 6a072605a53ee93a4a57154491d3bb5f982afe8a. --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e01b12df..ed91f656 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,7 +17,7 @@ commands: - run: name: Install Emacs latest command: | - HOMEBREW_NO_AUTO_UPDATE=1 brew install homebrew/cask/emacs + brew install homebrew/cask/emacs - run: name: Install Eldev command: curl -fsSL https://raw.github.com/doublep/eldev/master/webinstall/circle-eldev > x.sh && source ./x.sh From d4fa1e979c56929e159be2869489c4f07d598247 Mon Sep 17 00:00:00 2001 From: p4v4n Date: Sun, 5 Nov 2023 17:44:54 +0530 Subject: [PATCH 9/9] Run macos build only if ubuntu-emacs29 succeeds --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ed91f656..cb2679f8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -126,4 +126,6 @@ workflows: - test-ubuntu-emacs-29 - test-ubuntu-emacs-master - test-windows-emacs-latest - - test-macos-emacs-latest + - test-macos-emacs-latest: + requires: + - test-ubuntu-emacs-29