CI / Build and push docker image (push) Successful in 2m29s
Relocate the composition root (app, config, static, logging_config, aerich_config) from server/src/tavolo/ to packages/tavolo-app/src/tavolo/, with its own pyproject.toml and README like the sibling distributions. Module paths and the granian entrypoint are unchanged. server/pyproject.toml remains as a tooling shim ([tool.aerich] next to ./migrations, [tool.mypy] for runs from server/); the Dockerfile installs all three distributions from ./packages. Verified: all suites green, mypy clean per package, aerich resolves the moved config identically, wheel builds.
32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
# tavolo-app
|
|
|
|
The deployable tavolo application: the composition root wiring
|
|
[`tavolo-platform`](../tavolo-platform/README.md) to the
|
|
[`tavolo-scopone`](../tavolo-scopone/README.md) game.
|
|
|
|
## Contents
|
|
|
|
- `app.py` — assembles the `KayaApp` (session/OIDC/Tortoise/OpenAPI
|
|
mixins plus `PlatformMixin` and the deadline scheduler), registers the
|
|
`ScoponeEngine` with its configured timeouts, and exposes
|
|
`tavolo.app:app` for granian.
|
|
- `config.py` — environment-driven frozen `Settings`.
|
|
- `aerich_config.py` — Tortoise ORM configuration consumed by the aerich
|
|
CLI (migrations live in `server/migrations/`; aerich itself is
|
|
configured via the `[tool.aerich]` section of `server/pyproject.toml`).
|
|
- `logging_config.py` — logging setup.
|
|
- `static.py` — SPA shell hosting for the compiled frontend.
|
|
|
|
## Development (from `packages/tavolo-app/`)
|
|
|
|
```sh
|
|
.venv/bin/python -m mypy --namespace-packages --explicit-package-bases \
|
|
src/tavolo/app.py \
|
|
src/tavolo/config.py \
|
|
src/tavolo/static.py \
|
|
src/tavolo/aerich_config.py \
|
|
src/tavolo/logging_config.py
|
|
```
|
|
|
|
End-to-end coverage of the wired stack lives in `server/tests/`.
|