diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-06 10:31:30 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-06 10:31:30 -0500 |
| commit | 95dbb5abdbb746cf5da9f7926740d17205ac8d55 (patch) | |
| tree | 0e807d43d8f8ce32b3790efc716c433d35ceca3c /Eask | |
| parent | 6ecd1e9bf1e3d0cdd3861077318541e193ca4532 (diff) | |
| download | duet-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-- | Eask | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -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")) |
