generated from coulomb/repo-seed
3.5 KiB
3.5 KiB
Packaging Audit and Requirements (CYA-WP-0004 T01)
Date: 2026-05-27
Workplan: CYA-WP-0004
Current State Audit
Packaging Configuration
- Build system:
setuptools(viapyproject.toml) - Version: Hardcoded as
0.1.0in two places:pyproject.tomlsrc/cya/__init__.py
- Entry point:
cya = "cya.cli.main:run"(correct) - Package discovery:
srclayout via[tool.setuptools.packages.find] - Dependencies: Minimal (
typer[standard],rich) - No:
setuptools_scmor dynamic versioning[project.optional-dependencies]buildfrontend usageMANIFEST.inor equivalent include rulesinclude-package-dataconfiguration- Development/test extras
pyproject.tomlvalidation forpip install git+...
Current Installation Experience
- Only documented method:
pip install -e .(editable) pip install git+https://...is not reliable (version will be wrong, potential missing files)- No released packages exist yet
Gaps Identified
For "Install from Dev Head":
- No support for clean
pip install "git+https://github.com/worsch/can-you-assist.git@main" - Version will be stuck at 0.1.0 even on latest code (bad for debugging)
- Potential missing non-.py files in the sdist/wheel when installing from git
- No documented one-liner or Makefile target for the primary user
For "Release Packaging":
- No versioning strategy (how to bump, dev vs release versions)
- No process to build clean, reproducible sdist + wheel
- No
python -m buildusage - No release checklist or automation (even lightweight)
- No way for others to
pip install can-you-assist(or a future released name)
General Technical Debt:
- Version is duplicated in two places (violates DRY)
- No separation between build-time and runtime concerns
- No packaging tests or verification step
Requirements for CYA-WP-0004
Must-Have for Dev-Head Install
pip install "git+https://github.com/worsch/can-you-assist.git"(and@main,@branch) must produce a workingcyawith a dev-informative version.- The primary user must have a simple, documented way to stay on latest code.
- Version must clearly indicate it is from development head (e.g.,
0.2.0.devN+g<hash>or similar).
Must-Have for Release Packaging
- A clear, repeatable process to cut a new version.
- Ability to produce clean
sdist+wheelusing modern tools (python -m build). - Version must be single-source-of-truth.
- Documentation in README + AGENTS.md for both installation methods.
Nice-to-Have (in scope if low cost)
- Makefile targets for common operations (
make dev-install,make dist,make check-dist) - Basic CI step that verifies packaging works
- Optional dependencies (e.g.,
[dev],[test])
Versioning Strategy Recommendation (for T02)
Recommended approach: Hybrid using setuptools_scm
- For development/git installs: Automatic versions like
0.3.0.dev14+g3f2a1b7.d20260527 - For releases: Clean versions like
0.3.0 - Single source of truth in git tags +
pyproject.tomlconfiguration - Minimal changes to existing workflow
Alternative (simpler but less powerful): Keep static version + manual bumps + release checklist. Only use if setuptools_scm is deemed overkill.
Decision needed in T02.
Next Steps
- T02 will decide and implement the versioning approach.
- T03 will focus on making git-based installs reliable.
- T04–T05 will focus on the release side.
This audit serves as the requirements baseline for the rest of the workplan.