From 95dbb5abdbb746cf5da9f7926740d17205ac8d55 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 6 Jun 2026 10:31:30 -0500 Subject: 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. --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) (limited to '.gitignore') diff --git a/.gitignore b/.gitignore index 715b879..b78f809 100644 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,13 @@ *.elc *.eln /.eldev/ +/.eask/ /eln-cache/ +# Generated by eask +/duet-autoloads.el +/duet-pkg.el + # Emacs cruft *~ \#*\# @@ -12,6 +17,7 @@ # Coverage / test output /coverage/ /.coverage/ +tests/*-output.log # Local planning + tooling (kept out of the public repo). /.ai/ -- cgit v1.2.3