Bibliup

Development

The app is its own project in src/, so every Bun command runs from there; the landing page is promo/. Compose runs from the repo root.

cd src
bun install
bun run format:check && bun run lint && bun run typecheck && bun run typecheck:tests && bun run quality && bun run test
bun run build

bun run quality includes the dependency audit. bun run audit runs it separately, with verified temporary advisory exceptions recorded in rulebook/dependencies.md and their regression checks run first.

Browser tests

The browser tests (bun run test:e2e) run against the running stack. On an install that signs in through an identity provider, run bun run e2e:login once and sign in in the window it opens: the tests that need your library then run as you instead of skipping. It saves a live session to src/e2e/.auth/ (kept out of git; set E2E_STORAGE_STATE in your shell to put it elsewhere), so keep that file private and run it again when it expires.

To run them against a throwaway stack instead (no sign-in, no host ports, nothing kept on disk, two synthetic Bibles), run bun run test:e2e:stack from src/, optionally followed by -- e2e/<file>.e2e.ts --project=chromium. It builds and removes its own Compose project, bibliup-e2e-local (set E2E_PROJECT=bibliup-e2e-<name> in your shell to name it differently), so it can run beside your own stack. The first run downloads browsers (about 600 MB, cached in a volume).

Good to know