Nix: expose Tek9 as a consumable ASDF package #16

Closed
nsaspy wants to merge 0 commits from rage/7-nix-package-red into master
Owner

Closes #7

Goal

Make Tek9 consumable by downstream Common Lisp flakes, especially lost-rob0t/llm-log#10, without a developer-local Quicklisp checkout.

RED first

dd596fc test: define red consumable Tek9 flake contract

The contract requires:

  • .#tek9 and .#default package outputs;
  • downstream (asdf:load-system :tek9) outside the Tek9 source checkout;
  • LMDB available while building the Common Lisp dependency and at runtime;
  • mutable database state kept outside the Nix store.

Implementation

  • c4f8489 exposes packages.{x86_64-linux,aarch64-linux}.{default,tek9}, preserves the dev shell, and declares the ASDF dependency closure.
  • 10cc133 pins the updated nixpkgs lock, adds downstream flake documentation, turns the Nix package contract into a real flake check, and runs it in CI.
  • 5931490 fixes the failure revealed by that gate by adding pkgs.lmdb.out to the cl.lmdb build itself, as well as Tek9's runtime closure.

The package smoke wraps Tek9 in a downstream sbcl.withPackages closure, changes to an empty consumer directory, loads :tek9, opens a real LMDB database under the writable build directory, and verifies the database file was created there.

Exact-head validation

Head: 5931490eee6f160edf37830fbe96e7142fe68533

CI run 123 is green:

  • tests (ubuntu-22.04);
  • tests (ubuntu-24.04);
  • package-smoke including the actual Nix build/load/database check;
  • benchmark-regression;
  • merge-gate.

Local evaluation also passed nix flake check --no-build, all x86_64 outputs, and all-system output evaluation including aarch64-linux.

Closes #7 ## Goal Make Tek9 consumable by downstream Common Lisp flakes, especially `lost-rob0t/llm-log#10`, without a developer-local Quicklisp checkout. ## RED first `dd596fc test: define red consumable Tek9 flake contract` The contract requires: - `.#tek9` and `.#default` package outputs; - downstream `(asdf:load-system :tek9)` outside the Tek9 source checkout; - LMDB available while building the Common Lisp dependency and at runtime; - mutable database state kept outside the Nix store. ## Implementation - `c4f8489` exposes `packages.{x86_64-linux,aarch64-linux}.{default,tek9}`, preserves the dev shell, and declares the ASDF dependency closure. - `10cc133` pins the updated nixpkgs lock, adds downstream flake documentation, turns the Nix package contract into a real flake check, and runs it in CI. - `5931490` fixes the failure revealed by that gate by adding `pkgs.lmdb.out` to the `cl.lmdb` build itself, as well as Tek9's runtime closure. The package smoke wraps Tek9 in a downstream `sbcl.withPackages` closure, changes to an empty consumer directory, loads `:tek9`, opens a real LMDB database under the writable build directory, and verifies the database file was created there. ## Exact-head validation Head: `5931490eee6f160edf37830fbe96e7142fe68533` CI run 123 is green: - `tests (ubuntu-22.04)`; - `tests (ubuntu-24.04)`; - `package-smoke` including the actual Nix build/load/database check; - `benchmark-regression`; - `merge-gate`. Local evaluation also passed `nix flake check --no-build`, all x86_64 outputs, and all-system output evaluation including aarch64-linux.
Author
Owner

Superseded by #9 at the exact same head commit because GitHub's ready-for-review mutation failed on this draft. PR #9 passed a fresh exact-head CI run and merged as a9f5b595f5d965163d2b7c518c72a2efd9be13fe.

Superseded by #9 at the exact same head commit because GitHub's ready-for-review mutation failed on this draft. PR #9 passed a fresh exact-head CI run and merged as `a9f5b595f5d965163d2b7c518c72a2efd9be13fe`.
nsaspy closed this pull request 2026-09-04 22:49:44 +00:00
Some checks failed
CI / benchmark-regression (pull_request) Failing after 20m25s
CI / tests (ubuntu-22.04) (pull_request) Successful in 5m3s
CI / tests (ubuntu-24.04) (pull_request) Successful in 4m33s
CI / package-smoke (pull_request) Failing after 6s
CI / merge-gate (pull_request) Failing after 2s

Pull request closed

Sign in to join this conversation.
No description provided.