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

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

[nongnu] elpa/parseclj 74ff7d63fe: Add CI


From: ELPA Syncer
Subject: [nongnu] elpa/parseclj 74ff7d63fe: Add CI
Date: Mon, 11 Sep 2023 13:00:40 -0400 (EDT)

branch: elpa/parseclj
commit 74ff7d63fed92a3c859e474ae85f011e794b751a
Author: vemv <vemv@users.noreply.github.com>
Commit: vemv <vemv@users.noreply.github.com>

    Add CI
---
 .circleci/config.yml | 144 +++++++++++++++++++++++++++++++++++++++++++++++++++
 .dir-locals.el       |  28 +++++++++-
 .gitignore           |   2 +
 .travis.yml          |  22 --------
 Eldev                |  17 ++++++
 Makefile             |  23 ++++++++
 parseclj-alist.el    |  10 ++--
 7 files changed, 218 insertions(+), 28 deletions(-)

diff --git a/.circleci/config.yml b/.circleci/config.yml
new file mode 100644
index 0000000000..140e967b53
--- /dev/null
+++ b/.circleci/config.yml
@@ -0,0 +1,144 @@
+version: 2.1
+
+orbs:
+  win: circleci/windows@2.2.0
+
+# Default actions to perform on each Emacs version
+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
+      - run:
+          name: Install unzip
+          command: apt-get update && apt-get install unzip
+
+  macos-setup:
+    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: Run Elisp-lint
+          command: eldev lint
+      - run:
+          name: Byte-compile .el files
+          command: eldev -dtT compile --warnings-as-errors
+
+jobs:
+  test-ubuntu-emacs-26:
+    docker:
+      - image: silex/emacs:26-ci
+        entrypoint: bash
+    steps:
+      - setup
+      - test
+
+  test-ubuntu-emacs-27:
+    docker:
+      - image: silex/emacs:27-ci
+        entrypoint: bash
+    steps:
+      - setup
+      - test
+
+  test-ubuntu-emacs-28:
+    docker:
+      - image: silex/emacs:28-ci
+        entrypoint: bash
+    steps:
+      - setup
+      - test
+  test-ubuntu-emacs-29:
+    docker:
+      - image: silex/emacs:29-ci
+        entrypoint: bash
+    steps:
+      - setup
+      - test
+
+  test-ubuntu-emacs-master:
+    docker:
+      - image: silex/emacs:master-ci
+        entrypoint: bash
+    steps:
+      - setup
+      - test
+
+  test-macos-emacs-latest:
+    macos:
+      xcode: "14.0.0"
+    steps:
+      - macos-setup
+      - test
+
+  test-windows-emacs-latest:
+    executor: win/default
+    steps:
+      - run:
+          name: Install Emacs latest
+          command: |
+            choco install emacs
+      - setup-windows
+      - test
+
+  test-lint:
+    docker:
+      - image: silex/emacs:28-ci
+    steps:
+      - setup
+      - lint
+
+workflows:
+  version: 2.1
+  ci-test-matrix:
+    jobs:
+      - test-lint
+      - test-ubuntu-emacs-26:
+          requires:
+            - test-lint
+      - test-ubuntu-emacs-27:
+          requires:
+            - test-lint
+      - test-ubuntu-emacs-28:
+          requires:
+            - test-lint
+      - test-ubuntu-emacs-29:
+          requires:
+            - test-lint
+      - test-ubuntu-emacs-master:
+          requires:
+            - test-lint
+      - test-windows-emacs-latest:
+          requires:
+            - test-lint
+      - test-macos-emacs-latest:
+          requires:
+            - test-ubuntu-emacs-28
diff --git a/.dir-locals.el b/.dir-locals.el
index c45357d77a..b9ede8906d 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -1,9 +1,35 @@
+;;; Directory Local Variables
+;;; For more information see (info "(emacs) Directory Variables")
+
 ((emacs-lisp-mode
   (buffer-save-without-query . t)
   (indent-tabs-mode . nil)
   (eval . (flycheck-mode))
   (eval . (checkdoc-minor-mode))
+  (bug-reference-url-format . 
"https://github.com/clojure-emacs/parseedn/issues/%s";)
+  (bug-reference-bug-regexp . "#\\(?2:[[:digit:]]+\\)")
+  (fill-column . 80)
   (sentence-end-double-space . t)
   (emacs-lisp-docstring-fill-column . 75)
+  (checkdoc-symbol-words . ("top-level" "major-mode" "macroexpand-all" 
"print-level" "print-length"))
   (checkdoc-package-keywords-flag)
-  (checkdoc-arguments-in-order-flag)))
+  (checkdoc-arguments-in-order-flag)
+  (checkdoc-verb-check-experimental-flag)
+  (elisp-lint-indent-specs . ((if-let* . 2)
+                              (when-let* . 1)
+                              (let* . defun)
+                              (nrepl-dbind-response . 2)
+                              ;; need better solution for indenting cl-flet 
bindings
+                              (insert-label . defun)              ;; cl-flet
+                              (insert-align-label . defun)        ;; cl-flet
+                              (insert-rect . defun)               ;; cl-flet
+                              (cl-defun . 2)
+                              (with-parsed-tramp-file-name . 2)
+                              (thread-first . 0)
+                              (thread-last . 0)
+                              (transient-define-prefix . defmacro)
+                              (transient-define-suffix . defmacro)))))
+
+;; To use the bug-reference stuff, do:
+;;     (add-hook 'text-mode-hook #'bug-reference-mode)
+;;     (add-hook 'prog-mode-hook #'bug-reference-prog-mode)
diff --git a/.gitignore b/.gitignore
index 433da842b5..061d79cd40 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 .cask
 *.elc
+/.eldev
+/parseclj-autoloads.el
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 2c544d182d..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-language: emacs
-cache: apt
-env:
-  - EVM_EMACS=emacs-25.1-travis
-  - EVM_EMACS=emacs-25.2-travis
-  - EVM_EMACS=emacs-25.3-travis
-  - EVM_EMACS=emacs-26-pretest-travis
-  - EVM_EMACS=emacs-git-snapshot-travis
-matrix:
-  fast_finish: true
-  allow_failures:
-    - env: EVM_EMACS=emacs-26-pretest-travis
-    - env: EVM_EMACS=emacs-git-snapshot-travis
-before_install:
-  - curl -fsSkL https://gist.github.com/rejeep/ebcd57c3af83b049833b/raw > 
travis.sh && source ./travis.sh
-  - evm install $EVM_EMACS --use --skip
-install:
-  - cask install
-script:
-  - export ECUKES_EMACS=${EMACS:-$(which emacs)}
-  - $ECUKES_EMACS --version
-  - cask exec ert-runner
diff --git a/Eldev b/Eldev
new file mode 100644
index 0000000000..c01a9f14f0
--- /dev/null
+++ b/Eldev
@@ -0,0 +1,17 @@
+; -*- mode: emacs-lisp; lexical-binding: t; no-byte-compile: t -*-
+
+(eldev-require-version "0.6")
+
+(eldev-use-package-archive 'gnu)
+(eldev-use-package-archive 'melpa-unstable)
+
+(eldev-use-plugin 'autoloads)
+
+;; CIDER cannot be compiled otherwise.
+(setf eldev-build-load-before-byte-compiling t)
+
+(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")
+        enable-local-variables        :safe))
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000..4a4415268c
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,23 @@
+.PHONY: clean compile lint test
+.DEFAULT_GOAL := all
+
+# Something like this can be handy if you need Eldev to run on an Emacs other 
than your default one:
+# export ELDEV_EMACS="$HOME/emacs28/Emacs.app/Contents/MacOS/Emacs"
+
+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)
+
+lint: clean
+       eldev lint
+
+# Checks for byte-compilation warnings.
+compile: clean
+        eldev -dtT compile --warnings-as-errors
+
+test: clean
+       eldev -dtT -p test
+
+all: lint compile test
diff --git a/parseclj-alist.el b/parseclj-alist.el
index 5bc3719cc0..2e2228ab6e 100644
--- a/parseclj-alist.el
+++ b/parseclj-alist.el
@@ -38,9 +38,9 @@ For example: (parseclj-alist :foo 123 :bar 456)"
   (mapcar (lambda (kv) (cons (car kv) (cadr kv))) (seq-partition kvs 2)))
 
 (defun parseclj-alist-assoc (coll k v)
-  "Associate a key K with a value V in the association list COLL
+  "Associate a key K with a value V in the association list COLL.
 
-Returns a new alist (does not mutate its argument). If an entry
+Returns a new alist (does not mutate its argument).  If an entry
 with the same key is present it will be replaced, otherwise the
 new kv-pair is added to the head of the list."
   (if (map-contains-key coll k)
@@ -56,7 +56,7 @@ new kv-pair is added to the head of the list."
 'Updates' a value in an associative collection COLL, where KEY is
 a key and FN is a function that will take the old value and any
 supplied args and return the new value, and returns a new
-structure. If the key does not exist, nil is passed as the old
+structure.  If the key does not exist, nil is passed as the old
 value."
   (parseclj-alist-assoc coll
                         key
@@ -65,7 +65,7 @@ value."
 (defun parseclj-hash-table (&rest kvs)
   "Create a hash table from the given keys and values KVS.
 Arguments are simply provided in sequence, rather than as lists
-or cons cells. As \"test\" for the hash table, equal is used. The
+or cons cells.  As \"test\" for the hash table, equal is used. The
 hash table is created without extra storage space, so with a size
 equal to amount of key-value pairs, since it is assumed to be
 treated as immutable.
@@ -80,7 +80,7 @@ For example: (parseclj-hash-table :foo 123 :bar 456)"
     hash-map))
 
 (defun parseclj-alist-merge (l1 l2)
-  "Merge two association lists."
+  "Merge the association lists L1 and L2."
   ;; Emacs 27: (map-merge 'alist l1 l2)
   (let ((keys (delete-dups (append (mapcar #'car l1) (mapcar #'car l2))))
         (res '()))



reply via email to

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