Package publishing (eai-sup* family)
This repository publishes three PyPI distributions:
| Distribution | Import | Console script | Role |
|---|---|---|---|
eai-supcore | eai_supcore | — | Shared steady-state bootstrap APIs |
eai-supinit | eai_supinit | eai-supinit | Greenfield entry |
eai-supmig | eai_supmig | eai-supmig | Migration entry |
Monorepo layout
packages/eai-supcore/pyproject.toml
packages/eai-supinit/pyproject.toml
packages/eai-supmig/pyproject.toml
src/eai_supcore/
src/eai_supinit/
src/eai_supmig/
pyproject.toml # monorepo meta (dev extras only)
CLIs pin eai-supcore==<same-version> (lockstep with a2c-cli → a2c-core).
Lockstep versions
All three distributions share one version from the repo-root VERSION file
(also mirrored in each package’s __version__ and the eai-supcore pin).
# source of truth
cat VERSION
# bump all three together (changelog + commit)
python scripts/bump_release.py
Tag vX.Y.Z must match that shared version (scripts/verify_release_version.py).
Local install
python -m venv .venv
# Windows: .venv\Scripts\activate
pip install -e packages/eai-supcore -e packages/eai-supinit -e packages/eai-supmig -e ".[dev]"
pytest -q
eai-supinit --help
eai-supmig --help
Build
pip install build twine
python scripts/build_packages.py
python -m twine check dist/*
Builds --wheel and --sdist separately (same as a2c) so the monorepo
package-dir = ../../src layout works. Do not use bare
python -m build packages/... — that builds the wheel from the extracted
sdist and fails with egg_base ... ../../src does not exist.