aboutsummaryrefslogtreecommitdiff
path: root/Eask
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-06 10:31:30 -0500
committerCraig Jennings <c@cjennings.net>2026-06-06 10:31:30 -0500
commit95dbb5abdbb746cf5da9f7926740d17205ac8d55 (patch)
tree0e807d43d8f8ce32b3790efc716c433d35ceca3c /Eask
parent6ecd1e9bf1e3d0cdd3861077318541e193ca4532 (diff)
downloadduet-95dbb5abdbb746cf5da9f7926740d17205ac8d55.tar.gz
duet-95dbb5abdbb746cf5da9f7926740d17205ac8d55.zip
build: add Eask, test harness, and dev tooling
I brought the skeleton up to a working package baseline (Phase 0 in the design spec). Eask defines the package and its dev deps. A root Makefile delegates test targets to tests/Makefile and adds compile, coverage, lint, doctor, and clean, matching the layout the other packages use. deps installs both halves DUET needs: the Emacs Lisp deps via eask, and the transport CLIs (rsync, rclone, lftp, unison) via the system package manager, so a contributor's environment is ready before the code that shells out to them. make complexity runs a small homegrown McCabe branch counter (scripts/duet-complexity.el). No off-the-shelf tool measures Emacs Lisp: lizard doesn't support it and codemetrics is an interactive overlay, so DUET owns one. The counting is pure and covered by Normal/Boundary/Error tests. The budget is soft and the target is advisory. The ERT harness (bootstrap, check-deps, per-file undercover coverage) and a smoke test prove the loop works end to end.
Diffstat (limited to 'Eask')
-rw-r--r--Eask26
1 files changed, 26 insertions, 0 deletions
diff --git a/Eask b/Eask
new file mode 100644
index 0000000..d7b8f52
--- /dev/null
+++ b/Eask
@@ -0,0 +1,26 @@
+;; -*- mode: eask; lexical-binding: t -*-
+
+(package "duet"
+ "0.1.0"
+ "Dual-pane file commander over dirvish/dired")
+
+(website-url "https://github.com/cjennings/duet")
+(keywords "files" "tools" "convenience")
+
+(package-file "duet.el")
+
+(source 'gnu)
+(source 'nongnu)
+(source 'melpa)
+
+(depends-on "emacs" "29.1")
+
+;; dirvish is the recommended renderer but optional at runtime (DUET degrades
+;; to plain dired), so it is not a hard package dependency. It is pulled in
+;; as a development dependency once pane code lands (Phase 4); until then the
+;; suite needs none of it.
+
+(development
+ (depends-on "elisp-lint")
+ (depends-on "package-lint")
+ (depends-on "undercover"))