CI / Build and push docker image (push) Successful in 1m45s
New tavolo-briscola distribution implementing briscola on the platform: - pure rules (state.py, engine.py): 3-card deals, a face-up trump that is the last card drawn, trump-first trick resolution (A > 3 > K > H > J > 7 > 6 > 5 > 4 > 2), 120 points per deal, 60-60 patta re-deals, a configurable target score (default 61), deal-end acknowledgements and turn auto-play; - BriscolaEngine (briscola, 2 players) and BriscolaQuattroEngine (briscola_a_quattro, 4 players in fixed partnerships) adapters; - registered in tavolo-app, packaged in the Docker image, documented. Platform fixes surfaced by a two-player lobby: - the websocket state and snapshot payloads now carry seats_open (they were only in the REST lobby payload), so lobbies with player counts other than four render correctly; seats_open is clamped at zero; - the web client logs unparseable server messages instead of silently dropping them. Web client: briscola table for both variants (stock, face-up trump, trick, last-trick banner), deal summary modal and game-over overlay. Tests: tavolo-briscola rules/adapter suites, app integration tests (lobby, websocket play, turn timeout, deal-end acks, persistence), a platform seats_open test and frontend model parsing tests.
183 lines
5.3 KiB
Plaintext
183 lines
5.3 KiB
Plaintext
#
|
|
# This file is autogenerated by pip-compile with Python 3.14
|
|
# by the following command (run from server/packages/tavolo-app/):
|
|
#
|
|
# pip-compile --allow-unsafe --extra otel --extra-index-url=https://pypi.org/simple --index-url=https://gitea.woggioni.net/api/packages/woggioni/pypi/simple --output-file=../../requirements.txt pyproject.toml
|
|
#
|
|
# NOTE: the tavolo-platform, tavolo-scopone, tavolo-briscola and tavolo-app
|
|
# sibling packages are NOT pinned here: they are installed from ./packages in
|
|
# the Dockerfile and in development (pip install -e ./packages/tavolo-platform
|
|
# -e ./packages/tavolo-scopone -e ./packages/tavolo-briscola
|
|
# -e ./packages/tavolo-app). All of their
|
|
# third-party dependencies are direct dependencies of tavolo-app, so this
|
|
# lock covers the full closure. The otel extra (kaya-otel and its
|
|
# OpenTelemetry dependencies) IS included, so OTEL_ENABLED works in the
|
|
# Docker image; pip-compile cannot resolve the unpublishable sibling
|
|
# packages, so regeneration drops them from a copy of the input file (the
|
|
# existing pins constrain the rest).
|
|
#
|
|
--index-url https://gitea.woggioni.net/api/packages/woggioni/pypi/simple
|
|
--extra-index-url https://pypi.org/simple
|
|
|
|
aerich==0.10.1
|
|
# via tavolo-app (pyproject.toml)
|
|
aiosqlite==0.22.1
|
|
# via tortoise-orm
|
|
anyio==4.15.1
|
|
# via
|
|
# aerich
|
|
# httpx
|
|
# tortoise-orm
|
|
asyncclick==8.4.2.1
|
|
# via aerich
|
|
asyncpg==0.31.0
|
|
# via tavolo-app (pyproject.toml)
|
|
certifi==2026.7.22
|
|
# via
|
|
# httpcore
|
|
# httpx
|
|
cffi==2.1.1
|
|
# via cryptography
|
|
click==8.5.0
|
|
# via granian
|
|
cryptography==50.0.1
|
|
# via pyjwt
|
|
dictdiffer==0.10.0
|
|
# via aerich
|
|
googleapis-common-protos==1.75.4
|
|
# via opentelemetry-exporter-otlp-proto-http
|
|
granian==2.8.3
|
|
# via
|
|
# kaya-rsgi
|
|
# tavolo-app (pyproject.toml)
|
|
h11==0.16.0
|
|
# via httpcore
|
|
httpcore==1.0.9
|
|
# via httpx
|
|
httpx==0.28.1
|
|
# via
|
|
# kaya-oidc
|
|
# tavolo-app (pyproject.toml)
|
|
idna==3.20
|
|
# via
|
|
# anyio
|
|
# httpx
|
|
iso8601==2.1.0
|
|
# via tortoise-orm
|
|
kaya-core==0.0.7
|
|
# via
|
|
# kaya-cors
|
|
# kaya-oidc
|
|
# kaya-openapi
|
|
# kaya-otel
|
|
# kaya-rsgi
|
|
# kaya-session
|
|
# tavolo-app (pyproject.toml)
|
|
kaya-cors==0.0.7
|
|
# via tavolo-app (pyproject.toml)
|
|
kaya-oidc==0.0.7
|
|
# via tavolo-app (pyproject.toml)
|
|
kaya-openapi==0.0.7
|
|
# via tavolo-app (pyproject.toml)
|
|
kaya-otel==0.0.7
|
|
# via tavolo-app (pyproject.toml)
|
|
kaya-rsgi==0.0.7
|
|
# via tavolo-app (pyproject.toml)
|
|
kaya-session==0.0.7
|
|
# via
|
|
# kaya-oidc
|
|
# kaya-session-redis
|
|
# tavolo-app (pyproject.toml)
|
|
kaya-session-redis==0.0.7
|
|
# via tavolo-app (pyproject.toml)
|
|
opentelemetry-api==1.45.0
|
|
# via
|
|
# opentelemetry-exporter-http-transport
|
|
# opentelemetry-exporter-otlp-proto-http
|
|
# opentelemetry-instrumentation
|
|
# opentelemetry-instrumentation-asyncpg
|
|
# opentelemetry-instrumentation-redis
|
|
# opentelemetry-instrumentation-system-metrics
|
|
# opentelemetry-sdk
|
|
# opentelemetry-semantic-conventions
|
|
opentelemetry-exporter-http-transport[urllib3]==0.66b0
|
|
# via opentelemetry-exporter-otlp-proto-http
|
|
opentelemetry-exporter-otlp-common==0.66b0
|
|
# via opentelemetry-exporter-otlp-proto-http
|
|
opentelemetry-exporter-otlp-proto-common==1.45.0
|
|
# via opentelemetry-exporter-otlp-proto-http
|
|
opentelemetry-exporter-otlp-proto-http==1.45.0
|
|
# via kaya-otel
|
|
opentelemetry-instrumentation==0.66b0
|
|
# via
|
|
# opentelemetry-instrumentation-asyncpg
|
|
# opentelemetry-instrumentation-redis
|
|
# opentelemetry-instrumentation-system-metrics
|
|
opentelemetry-instrumentation-asyncpg==0.66b0
|
|
# via tavolo-app (pyproject.toml)
|
|
opentelemetry-instrumentation-redis==0.66b0
|
|
# via tavolo-app (pyproject.toml)
|
|
opentelemetry-instrumentation-system-metrics==0.66b0
|
|
# via tavolo-app (pyproject.toml)
|
|
opentelemetry-proto==1.45.0
|
|
# via
|
|
# opentelemetry-exporter-otlp-proto-common
|
|
# opentelemetry-exporter-otlp-proto-http
|
|
opentelemetry-sdk==1.45.0
|
|
# via
|
|
# kaya-otel
|
|
# opentelemetry-exporter-otlp-common
|
|
# opentelemetry-exporter-otlp-proto-http
|
|
opentelemetry-semantic-conventions==0.66b0
|
|
# via
|
|
# opentelemetry-instrumentation
|
|
# opentelemetry-instrumentation-asyncpg
|
|
# opentelemetry-instrumentation-redis
|
|
# opentelemetry-instrumentation-system-metrics
|
|
# opentelemetry-sdk
|
|
packaging==26.3
|
|
# via opentelemetry-instrumentation
|
|
protobuf==7.36.2
|
|
# via
|
|
# googleapis-common-protos
|
|
# opentelemetry-proto
|
|
psutil==7.2.2
|
|
# via opentelemetry-instrumentation-system-metrics
|
|
pwo==0.1.2
|
|
# via
|
|
# kaya-core
|
|
# kaya-rsgi
|
|
# kaya-session
|
|
# tavolo-app (pyproject.toml)
|
|
pycparser==3.0
|
|
# via cffi
|
|
pyjwt[crypto]==2.15.1
|
|
# via
|
|
# kaya-oidc
|
|
# tavolo-app (pyproject.toml)
|
|
pypika-tortoise==0.6.5
|
|
# via tortoise-orm
|
|
pyyaml==6.0.3
|
|
# via tavolo-app (pyproject.toml)
|
|
redis==8.1.0
|
|
# via
|
|
# kaya-session-redis
|
|
# tavolo-app (pyproject.toml)
|
|
tortoise-orm==1.1.8
|
|
# via aerich
|
|
typing-extensions==4.16.0
|
|
# via
|
|
# anyio
|
|
# kaya-core
|
|
# opentelemetry-api
|
|
# opentelemetry-exporter-otlp-proto-http
|
|
# opentelemetry-sdk
|
|
# opentelemetry-semantic-conventions
|
|
# pwo
|
|
urllib3==2.8.0
|
|
# via opentelemetry-exporter-http-transport
|
|
wrapt==2.5.0
|
|
# via
|
|
# opentelemetry-instrumentation
|
|
# opentelemetry-instrumentation-redis
|