Use this checklist when you need to bring the stack up, exercise the UI/FST
editor, and capture a regression snapshot. Combine it with the deeper guidance
in SETUP.md / USAGE.md as needed.
- From the repo root, ensure Docker is available, then run:
docker compose up -d
- Expect backend on
http://127.0.0.1:5001and frontend onhttp://127.0.0.1:8080.
- Expect backend on
- Launch Caddy in a second terminal to stitch the API + UI together:
caddy run --config Caddyfile.dev
- Default proxy port is
:5002; adjust inCaddyfile.devif needed.
- Default proxy port is
- Visit
http://localhost:5002. - Use the "Available input sources" dropdown to select your TSV file.
- Note: Docker mounts
Germanic/by default. To use Burmish, editdocker-compose.ymlvolume mounts to point toBurmish/instead.
- Note: Docker mounts
- Confirm a matching FST text file exists in the mounted
fsts/directory. - When starting from a blank FST, flip to the FST editor tab before pressing
"Load" to avoid the broken board view (see
USAGE.md).
- Update
Germanic/docs/DEV_NOTES.md(add a dated section) with:- Which dataset + transducers you loaded.
- Outstanding tests or forms to revisit next session.
- If you touched the FSTs, update status in
Germanic/docs/germanic_transducer_report.md.
When finished, shut the stack down:
caddy stop # or Ctrl+C the running Caddy process
docker compose downdocker compose exec -T backend bash -c "cd /usr/app && foma -q -l fsts/germanic.txt -e quit"
docker compose exec -T backend python3 tools/oe_mismatch_report.pydocker compose exec -T backend python3 tools/oe_bin_sync_check.py# WRONG - parentheses make context OPTIONAL, rule applies everywhere!
{X} -> {Y} || _ (context)
# CORRECT - context is required
{X} -> {Y} || _ context
Always test replacement rules with apply down on strings that should NOT match:
regex MyRule;
apply down {test_string_without_context} # Should stay unchanged
apply down {test_string_with_context} # Should transform
Use brace tokens {*u}{*n} when testing; raw *u*n may not match intended symbols.