P0: CI must test Quasar in the canonical Nix dev environment #63
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
priority:P1
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/quasar#63
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?
Failure that exposed this gap
A real local
npm run dev/control-plane startup reached Vite successfully and then SBCL died while loading CLOG /cl-sqlite:This should have been caught before merge.
Root CI gap
Current
.github/workflows/ci.ymlinstalls native Lisp dependencies directly with apt (libsqlite3-dev, OpenSSL, RabbitMQ, LMDB, etc.) and then runs the Lisp/full-stack smoke tests. That proves the hand-built GitHub runner works, but it does not prove the repository's canonical declared local environment works.flake.nixalready declares the runtime library set (openssl,rabbitmq-c,libffi,sqlite,lmdb) and constructsLD_LIBRARY_PATH. CI needs to exercise that contract directly.Child work
Required work
Add a clean CI job that uses the checked-in
flake.lock+flake.nixas the environment under test and runs the real Quasar startup path from insidenix develop.At minimum, from a clean checkout/environment:
Vite + control plane);Regression requirement
Add a test/guard proving that removing a required runtime library such as
sqlitefrom the canonical environment makes this CI job fail. The test must not be satisfied by Ubuntu host libraries leaking into the Nix shell.CI architecture
The apt-based job may remain as a portability lane if useful, but it cannot be the only runtime lane. Treat the Nix lane as the canonical local-environment contract.
Avoid maintaining two independent native dependency lists where possible; drift between the workflow and
flake.nixis exactly what this issue is meant to prevent.Acceptance
nix developusing checked-inflake.lock.Non-goal
Do not paper over this by adding another apt package to the existing workflow. The point is to prove the repository-declared environment is sufficient.