ADR 0001: Package Split Is The Publication Boundary
Status
Accepted.
Context
AGILAB contains runtime packages, UI packages, app payloads, page bundles, examples, docs, and release tooling. Publishing every package on every change creates unnecessary PyPI operations and makes cleanup expensive.
Decision
The package split contract is the publication source of truth. Release tooling
must derive package matrices from tools/package_split_contract.py and
tools/release_plan.py. Packages whose current artifacts already exist on
PyPI can be skipped by the release plan instead of being rebuilt and uploaded
again.
Consequences
Package names, roles, project paths, and PyPI environments live in one place.
Public docs and app catalogs must follow the package split.
Release workflows can avoid redundant uploads and reduce PyPI cleanup work.
Any package rename must update package split, docs, tests, and release plan evidence together.