CI: make Common Lisp core tests reproducible from a clean checkout #9
Labels
No labels
bug
documentation
duplicate
enhancement
feature
good first issue
help wanted
invalid
question
refactor
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/hackmode#9
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Hackmode now has meaningful ASDF regression tests, but the repository does not yet declare/fetch its complete Common Lisp dependency graph from a clean CI checkout. The current monorepo workflow can enforce source/layout contracts and Emacs syntax, but it cannot honestly claim
asdf:test-system :hackmodepasses in an isolated runner.Current behavior
source/hackmode-core/hackmode-tests.asdexercises operation registry reopen and asset normalize/dedupe/persist/event behavior.starintelCommon Lisp schema runtime, plus existing Hackmode dependencies.Desired behavior
A clean GitHub Actions runner can execute the Hackmode ASDF tests without relying on the developer's pre-populated Quicklisp/local-project tree.
Architecture
Prefer one reproducible dependency path shared by local development and CI. Do not vendor StarIntel Server, Quasar, or Tek9 into the Hackmode monorepo merely to make CI work. Pin/source reusable libraries as dependencies (Nix/Quicklisp/Qlot/ASDF source registry as appropriate).
Implementation scope
:hackmodestarintelandtek9as external library dependenciesasdf:test-system :hackmodein CIDependencies
Depends on #4. Can proceed in parallel with #6, but #6 must not be declared fully verified until these runtime tests execute on a clean runner.
Acceptance criteria
:hackmodeasdf:test-system :hackmodeVerification
Delete/ignore all user-local ASDF/Quicklisp state and reproduce the exact CI command from a clean checkout.