From d0dfa8cf2ddf129803bcc7d0d58b40f70914d204 Mon Sep 17 00:00:00 2001 From: Umutcan Edizsalan Date: Tue, 14 Jul 2026 00:01:34 +0300 Subject: [PATCH] fix(build): declare hatchling wheel file selection for flat layout (#2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pip install -e . failed with 'Unable to determine which files to ship inside the wheel' — the flat layout has no directory matching the project name (autocad_mcp_pro). Ship server.py plus its root-level imports (config.py, security.py) and the backends/ and engineering/ packages explicitly. Co-Authored-By: Claude Fable 5 --- CHANGELOG.md | 7 +++++++ pyproject.toml | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17235b6..adbfeb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 _Next: closed-loop refiner (critique→repair→re-critique with transaction-stack isolation), pre-plan clarification pass, ISO 286 fit-table lookup (H7/g6 → deviations), and a local-VLM visual judge._ +### Fixed +- **Install from source** — `pip install -e ".[full]"` failed at + "Preparing editable metadata" because the flat layout has no directory + matching the project name, so hatchling could not infer which files to ship. + `pyproject.toml` now declares the wheel file selection explicitly + (`server.py`, `config.py`, `security.py`, `backends/`, `engineering/`). (#2) + ## [1.2.0] — 2026-07-07 Production-ISO parity + a measurable quality moat. **360 tests, ruff-clean.** Tool count: 111 → 116. diff --git a/pyproject.toml b/pyproject.toml index e818e6a..7c61041 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,6 +39,11 @@ dev-dependencies = [ requires = ["hatchling"] build-backend = "hatchling.build" +[tool.hatch.build.targets.wheel] +# Flat layout: no directory matches the project name, so hatchling needs an +# explicit file selection (GH issue #2). server.py imports config + security. +only-include = ["server.py", "config.py", "security.py", "backends", "engineering"] + [tool.ruff] line-length = 100 target-version = "py311"