Skip to content

feat: add generic package skeleton#36

Merged
NWarila merged 2 commits into
mainfrom
pt-m3-green-skeleton
Jun 3, 2026
Merged

feat: add generic package skeleton#36
NWarila merged 2 commits into
mainfrom
pt-m3-green-skeleton

Conversation

@NWarila

@NWarila NWarila commented Jun 3, 2026

Copy link
Copy Markdown
Owner

PT-M3 - Minimal generic green skeleton

Ships the renamable src/sample_app/ package ADR-0004 specifies, making "use template -> rename -> green CI" true.

What

  • 8-file anatomy per ADR-0004: __init__ (curated API + __all__), __main__ (python -m self-demo), py.typed, config.py (frozen pydantic-settings: BaseSettings + env-prefix + load()/save_defaults()), exceptions.py (typed What/Why/Fix), _contracts.py (frozen models + Result[T] + StrEnum codes), validators.py (pure, wired via model_validator), main.py (CLI + worked function).
  • tests/test_sample_app.py at >=90% coverage (incl. invalid-repeat covered end-to-end).
  • pyproject: src-layout discovery, py.typed package-data, pydantic + pydantic-settings deps, pydantic.mypy plugin, --cov=src. Build backend unchanged (setuptools).
  • ADR-0004 Implementing-PRs + Changelog updated.

Verified

  • Fresh clone -> README rename -> qa.py 6/6 green, no manual fixups.
  • python -m <pkg> self-demo works; py.typed ships in the built wheel; pydantic.mypy active (bad field fails mypy).
  • Zero framework/domain leakage; scope limited to src/, tests/, pyproject, README, ADR-0004.

@NWarila NWarila merged commit 0f0f30c into main Jun 3, 2026
13 checks passed
@NWarila NWarila deleted the pt-m3-green-skeleton branch June 3, 2026 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant