Files
bookhoard/.gitignore
T
John O'Keefe ee98c0fb3b
Release / build-and-push (push) Successful in 3m29s
docs(dev): test-running policy + media-fixture rules; ignore testdata
Integration tests require the containerized dev DB and bind-mounted
paths — a bare host `go test ./cmd/server/tests` fails on database
auth on every machine not running the compose stack (the old doc
prescribed exactly that flow). development.md now documents the
container runner and the iteration rule: run ONLY your own tests via
a filtered container invocation while working, and reserve full-suite
runs for pre-commit validation — several tests read live shared state
(system_settings, real library folders, the periodic backup scan's
websocket broadcasts) and flap on data or timing a change never
touched.

Binary media fixtures are never committed: internal/services/
testdata/ is gitignored by policy (the audio metadata tests read
real-format binaries that ffmpeg cannot synthesize — Audible freeform
atoms — so they live untracked on the machines that run the suite).
The new "Media fixtures" section carries the ffmpeg recipes for every
supported container, tag writing, embedded covers and ffmetadata
chapters, plus the manual end-to-end recipe for the live system
(one book per subfolder — a directory with ≥2 audio files ingests as
one folder book).
2026-10-19 07:54:55 -04:00

89 lines
1.3 KiB
Plaintext

# Build artifacts
bookhoard
bookhoard.*
/server
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
.pnpm-debug.log*
# TypeScript
*.tsbuildinfo
*.d.ts.map
*.map
# Compiled JavaScript (keep .ts source, ignore .js)
# Exception: Downloaded documentation dependencies
web/static/compiled-*.js
web/static/*.js
web/static/*.mjs
web/static/assets/*.js
web/static/text_layer_builder*.css
web/static/annotation_layer_builder*.css
# Downloaded documentation dependencies (tracked in git)
!web/static/htmx.min.js
!web/static/highlight.min.js
!web/static/highlight-dark.min.css
!web/static/lunr.min.js
!web/static/lunr-flex.min.js
# Temporary files
tmp/
temp/
*.tmp
*.swp
*.swo
*~
# Testing coverage
*.out
*.cover
coverage.html
*.test
# Logs
*.log
*.log.*
# Environment
.env
!.env.example
.env.test
.env.local
# IDE
.idea/
.zed/
.vscode/
.opencode/
*.iml
.DS_Store
Thumbs.db
# Uploads
uploads/
# Vendored build artifacts (copied from node_modules at build time)
web/static/vendor/
# Database
*.db
*.sqlite
*.sqlite3
VALID_TOKEN
fresh_token.txt
session-*.md
# Local prod-export scratch: personal annotation/reading data, never commit
/export/
# Binary media fixtures: never commit (generate with ffmpeg at test time,
# see docs/contributing/development.md → Media fixtures)
internal/services/testdata/