-
Notifications
You must be signed in to change notification settings - Fork 0
Development and Testing
git clone https://github.com/ph7x-Systems/stillsite.git
cd stillsite
python -m venv .venv && source .venv/bin/activate
pip install --group dev
for pkg in packages/* apps/admin; do pip install -e "$pkg"; doneruff check . && ruff format --check . # lint + formatting
mypy # strict, whole repo
pytest # full suiteCI runs these plus the PostgreSQL conformance suite, the example build, link checking, secret scanning, W3C markup validation and the axe accessibility gate. main is fully protected — every change lands via PR with all required checks green, linear history, squash merges.
| Suite | Covers |
|---|---|
test_models, test_pages, test_media
|
content models, translation states, checksums |
test_storage, test_factory
|
the storage conformance suite — parameterized over every engine |
test_validation |
every rule and the engine |
test_builder, test_output_integrity, test_targets
|
determinism, URL tree, head contract, feeds, targets |
test_parity, test_theme_conformance
|
the reference theme against its ground rules |
test_cli, test_scaffold
|
the CLI flows end to end |
test_admin_* |
the admin: app factory, auth/CSRF/rate limiting, dashboard, articles, pages, demo export |
test_docs |
anti-drift: documentation is checked against the code |
Conventions: tests exercise real flows (no mocked internals); the PostgreSQL leg runs when STILLSITE_POSTGRES_URL is set and is visibly skipped otherwise; documented facts get anti-drift checks in test_docs.py.
See CONTRIBUTING.md. Short version: everything in English; small PRs with tests; documentation (repo docs and this wiki) updated in the same change when commands, config or models change; reversible decisions recorded as ADRs.
Sardine CMS — multilingual, static-first CMS framework · Repository · Live demo · Apache-2.0