Repository navigation
ADR 0008 Backend Baseline
- Status: Accepted
- Date: 2026-09-16
The control plane needs a stable Python and Django baseline before application scaffolding and dependency selection can become reproducible. Self-hosted research infrastructure benefits more from a long security-support window than from adopting every Django feature release immediately.
Use Python 3.13 for the initial backend environment and Django 5.2 LTS for the control plane. Manage the server environment and lockfile with uv. Track current patch releases within the Django 5.2 series and review framework upgrades deliberately rather than drifting across feature releases.
This decision applies to the Django server. The independently published Python filesystem client may support a broader Python version range once its packaging requirements are specified.
ADR 0009 supersedes the characterization of the filesystem client as independently published. The distinction between the server's runtime baseline and the client distribution's runtime baseline remains in force.
- Contributors and deployment automation share one documented backend runtime baseline.
- Django 5.2's LTS window suits long-lived self-hosted installations.
- Dependencies must remain compatible with Python 3.13 and Django 5.2.
- Supporting an additional Python or Django series requires explicit testing rather than an unconstrained version declaration.
- A future LTS upgrade should be handled as a planned migration with deprecation warnings resolved before the version change.
Niyān development
Specifications
- Index
- Authentication
- Authorization
- Namespaces and datasets
- Repository access
- Git write transport
- Git LFS and object storage
- Protected refs
- CLI
- CLI LFS tracking
- Python filesystem client
- Web application
- Browser uploads and commits
- Audit events
Architecture
- Decision index
- ADR 0001 — Modular monorepo
- ADR 0002 — Git-native datasets
- ADR 0003 — Git LFS data plane
- ADR 0004 — Dataset access boundary
- ADR 0005 — Direct object transfers
- ADR 0006 — Git repository hosting
- ADR 0007 — Shared S3 bucket
- ADR 0008 — Backend baseline
- ADR 0009 — Unified Python client
- ADR 0010 — Static Nuxt SPA
- ADR 0011 — Standard Git workflows
- ADR 0012 — Self-contained Compose