emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/clojure-mode 481ca480e8: Use Eldev (#669)


From: ELPA Syncer
Subject: [nongnu] elpa/clojure-mode 481ca480e8: Use Eldev (#669)
Date: Sun, 5 Nov 2023 09:59:26 -0500 (EST)

branch: elpa/clojure-mode
commit 481ca480e8b7b6c90881f8bd8434addab1d33778
Author: p4v4n <pavan.mantha99@gmail.com>
Commit: GitHub <noreply@github.com>

    Use Eldev (#669)
    
    Closes https://github.com/clojure-emacs/clojure-mode/issues/666
---
 .circleci/config.yml                         | 151 ++++++++++++++++++++-------
 .gitignore                                   |   3 +
 CONTRIBUTING.md                              |   6 +-
 Cask                                         |   9 --
 Eldev                                        |  26 +++++
 Makefile                                     |  47 ++-------
 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/clojure-mode-util-test.el               |   2 +-
 test/test-checks.el                          |  30 ------
 test/utils/test-helper.el                    |   2 +-
 13 files changed, 162 insertions(+), 160 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index def610ed32..cb2679f820 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,56 +1,131 @@
 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.2.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:
+          requires:
+            - test-ubuntu-emacs-29
diff --git a/.gitignore b/.gitignore
index ef07d5a4bc..360a99414a 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 2743702aa2..2eada5b964 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 abcd75fd2d..0000000000
--- 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 0000000000..1becee18c3
--- /dev/null
+++ b/Eldev
@@ -0,0 +1,26 @@
+; -*- 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
+        elisp-lint-indent-specs '((define-clojure-indent . 0))))
+
+(setq eldev-project-main-file "clojure-mode.el")
diff --git a/Makefile b/Makefile
index 27503963c6..3e6135387e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,42 +1,17 @@
-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
+.PHONY: clean compile lint test all
+.DEFAULT_GOAL := all
 
 clean:
-       rm -f $(OBJS) clojure-mode-autoloads.el
+       eldev clean
 
-test: $(PKGDIR)
-       $(CASK) exec buttercup
+lint: clean
+       eldev lint -c
 
-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: clean compile lint test
diff --git a/clojure-mode.el b/clojure-mode.el
index 8dda5553c6..e3d554dea2 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 41b3230dd3..0000000000
--- 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 <https://www.gnu.org/licenses/>.
-
-;; 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 28c5977e41..14e5291594 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 9c75f1287f..5f1c5fb9f4 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/clojure-mode-util-test.el b/test/clojure-mode-util-test.el
index 565773d4d0..6157a3d08c 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"
diff --git a/test/test-checks.el b/test/test-checks.el
deleted file mode 100644
index a4b4208f47..0000000000
--- 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 b359277c5d..e7894f04c3 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]