v0.5.1: integration tests, retention fix, polite polling
A patch release, headlined by the project's first merged outside code contribution — thanks @ValkyrieUK!
Added
- Full-stack integration test suite + CI (#9): a deterministic Docker Compose stack (readsb + ACARS fixtures, TimescaleDB, both backends, the production nginx image in live-only and multi-feed modes) now verifies every push end to end, including a backend restart to catch non-idempotent schema startup.
Fixed
- Fresh installs silently ended up with no retention policy (#9): the retention call failed on clean database init and the service restarted healthy without it, so data grew without bound. Existing databases were unaffected. Upgrading to this release repairs affected databases automatically — a startup migration detects the missing policy and adds it with your configured
RETENTION_DAYS. If you can't upgrade yet, the manual fix is:SELECT add_retention_policy('aircraft_positions', INTERVAL '90 days');
- The suite's timescaledb healthcheck raced the postgres init phase on fast machines; it now probes TCP.
Changed
- track-service polls remote feeders every 5 s instead of every 1 s (heuristic on the feeder address;
FEEDER_POLL_SECONDSoverrides in either direction). Local feeders keep the 1 s cadence. Polling a stranger's home connection every second around the clock was impolite.
Full details in CHANGELOG.md.