Contributing
Local setup
git clone https://github.com/Leyline-Coding/scryme.git
cd scryme
docker compose -f docker-compose.dev.yml up # backend on http://localhost:8000 with hot reload
Tests and linting
The backend test suite runs against PostgreSQL. Point SCRYME_DATABASE_URL at a reachable
database (the dev compose Postgres works) and run:
CI (GitHub Actions) runs the same checks on every pull request and must pass before merge, alongside
a dependency audit (pip-audit) and CodeQL static analysis. See
Quality & Security for the full set of automated checks.
Workflow
- Branch per change:
feat/*→ pull request intomain. - Keep tests green and
ruffclean; add tests for new behavior. - Searchable card attributes get promoted to indexed columns; everything else reads from
cards.raw. Add an Alembic migration when promoting a new field. - Never commit personal collection data.
tests/fixtures/*_full.csvis gitignored; commit only small redacted*_sample.csvfixtures.
Extending scryme
- New import format — add a parser in
backend/src/importers/(detect+parse, decorated with@register) and import it inimporters/__init__.py. See Supported Formats. - New search filter — add an alias in
search/parser.pyand a handler insearch/compiler.py, then cover it with tests.
Documentation
These docs are built with MkDocs Material and
deployed to docs.scryme.app from the docs/ directory on every push to
main. To preview locally: