Files
plex-playlist/docs/adr/ADR001-deterministic_runtime_policy.md
copilotcoder a2d3f14c84
Some checks failed
Tests / Build and Push CICD Base Image (pull_request) Successful in 31m56s
Tests / Build and Push CICD Complete Image (pull_request) Failing after 19s
Tests / YAML Syntax Check (pull_request) Has been skipped
Tests / Trailing Whitespace Check (pull_request) Has been skipped
Tests / End of File Check (pull_request) Has been skipped
Tests / TOML Syntax Check (pull_request) Has been skipped
Tests / Mixed Line Ending Check (pull_request) Has been skipped
Tests / TOML Formatting Check (pull_request) Has been skipped
Tests / Ruff Linting (pull_request) Has been skipped
Tests / Ruff Format Check (pull_request) Has been skipped
Tests / Pyright Type Check (pull_request) Has been skipped
Tests / Darglint Docstring Check (pull_request) Has been skipped
Tests / No Docstring Types Check (pull_request) Has been skipped
Tests / ESLint Check (pull_request) Has been skipped
Tests / Prettier Format Check (pull_request) Has been skipped
Tests / TypeScript Type Check (pull_request) Has been skipped
Tests / TSDoc Lint Check (pull_request) Has been skipped
Tests / Backend Tests (pull_request) Has been skipped
Tests / Frontend Tests (pull_request) Has been skipped
Tests / Backend Doctests (pull_request) Has been skipped
Tests / Integration Tests (pull_request) Has been skipped
Tests / End-to-End Tests (pull_request) Has been skipped
Added the first ADRs.
Signed-off-by: copilotcoder <copilotcoder@darkhelm.org>
2026-05-16 21:10:42 -04:00

1.6 KiB

ADR001: Deterministic Runtime Policy

  • Status: Accepted
  • Date: 2026-05-16

Context

The backend must behave consistently across local development, CI, and production. Historically, floating dependency constraints and non-enforced runtime assumptions can introduce drift and hard-to-diagnose failures.

This branch introduced:

  • Python 3.14 as the required runtime baseline
  • Exact dependency pinning for backend runtime and development tooling
  • Startup compatibility checks that fail fast when runtime policy is violated
  • A compatibility endpoint for operational visibility

Decision

Adopt a deterministic backend runtime policy:

  1. Backend runtime is pinned to Python major/minor 3.14.
  2. Runtime dependencies are exact pinned versions.
  3. Application startup performs runtime policy validation and fails fast on mismatch.
  4. Compatibility status is exposed through an API endpoint for diagnostics.
  5. The lockfile is treated as the source of truth for reproducible dependency resolution.

Consequences

Positive:

  • Reduced environment drift across dev/CI/prod
  • Earlier and clearer failure mode for runtime mismatches
  • Improved reproducibility and troubleshooting

Negative:

  • More frequent explicit dependency maintenance updates
  • Stricter upgrade process for Python/runtime packages

Alternatives Considered

  • Floating dependency constraints with periodic updates
    • Rejected due to non-deterministic installs and regression risk
  • Runtime checks only in CI, not application startup
    • Rejected because deployment/runtime drift can still bypass CI assumptions