From e6b9610b25ed4c4f8f38afce39df7c0720652949 Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 27 May 2026 00:05:26 +0200 Subject: [PATCH] =?UTF-8?q?feat(packaging)=20+=20chore(workplan):=20comple?= =?UTF-8?q?te=20T04=20for=20CYA-WP-0004=20=E2=80=94=20MANIFEST.in,=20pypro?= =?UTF-8?q?ject=20improvements,=20verified=20clean=20sdist+wheel=20build?= =?UTF-8?q?=20and=20install?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MANIFEST.in | 6 ++++++ pyproject.toml | 5 +++++ ...-0004-dev-install-and-release-packaging.md | 20 +++++++++++-------- 3 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..5ac54fa --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,6 @@ +include LICENSE +include README.md +include pyproject.toml +recursive-include src *.py +global-exclude __pycache__ +global-exclude *.py[co] \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index e160108..fb58497 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,6 +35,11 @@ where = ["src"] [tool.setuptools] zip-safe = false +include-package-data = true +license-files = ["LICENSE"] + +[tool.setuptools.package-data] +"*" = ["py.typed"] [project.urls] Homepage = "https://github.com/worsch/can-you-assist" diff --git a/workplans/CYA-WP-0004-dev-install-and-release-packaging.md b/workplans/CYA-WP-0004-dev-install-and-release-packaging.md index 0466ad4..41c7d72 100644 --- a/workplans/CYA-WP-0004-dev-install-and-release-packaging.md +++ b/workplans/CYA-WP-0004-dev-install-and-release-packaging.md @@ -122,19 +122,23 @@ completed: "2026-05-27" ```task id: CYA-WP-0004-T04 -status: todo +status: done priority: high state_hub_task_id: "d49a3362-865f-4397-b127-372a2aa2c4a2" +started: "2026-05-27 ralph iter 4" +completed: "2026-05-27" ``` -- Adopt the modern `build` frontend (`python -m build`). -- Ensure `pyproject.toml` + package data produces high-quality sdists and wheels. -- Add or improve `MANIFEST.in` / `pyproject.toml` configuration so that necessary files (README, LICENSE, etc.) are included. -- Verify that the resulting packages can be installed in a fresh environment and provide a working `cya` command. +**Done.** -**Acceptance criteria**: -- `python -m build` produces a clean sdist and wheel. -- The wheel installs correctly and `cya --version` works in an isolated environment. +- Created `MANIFEST.in` for proper sdist inclusion. +- Improved `pyproject.toml` (include-package-data, license-files under setuptools, package-data). +- `python -m build` successfully produces clean sdist + wheel. +- Verified in isolated venv: the wheel installs cleanly and `cya --version` works (shows proper dev version from setuptools_scm). + +**Acceptance criteria met**: +- Clean, usable distribution packages can now be built. +- They install and run correctly in fresh environments. ### T05 — Create a lightweight release process