[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 '()))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/parseclj 74ff7d63fe: Add CI,
ELPA Syncer <=