From 4c5b76205ed6d373632f4c6576db89b0ee7b2cbd Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 29 Jun 2026 11:45:11 +0000 Subject: [PATCH] Fix wheel build: include vendored binaries via artifacts, not force-include MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit force-include re-added the whole binaries/ directory on top of the normal package scan, so hatchling aborted with 'a second file is being added ... binaries/.gitignore'. This only surfaces when actually building a wheel, which CI never did (release.yml runs on tags only), so the first release would have failed. List the gitignored binaries as wheel artifacts instead — they are included without duplicating the tracked README/.gitignore in that directory. Verified locally: wheel builds, bundles gomc-rest-linux-amd64, installs, and launch()/connect() work from the installed package. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01SQbVkPEprK2ebcjck5ouUy --- pyproject.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 7e48e31..434db59 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,9 +28,9 @@ Homepage = "https://github.com/Moge800/gomc_rest_python" [tool.hatch.build.targets.wheel] packages = ["src/gomc_rest"] - -# The platform-specific server binaries live under gomc_rest/binaries/ and are -# shipped as package data. (Per-platform wheels are produced at release time; -# see binaries/README.md.) -[tool.hatch.build.targets.wheel.force-include] -"src/gomc_rest/binaries" = "gomc_rest/binaries" +# The platform-specific server binaries under gomc_rest/binaries/ are vendored +# at build time and are gitignored; list them as artifacts so the wheel ships +# whichever binary is present, without duplicating the tracked files (README, +# .gitignore) in that directory. (Per-platform wheels are produced at release +# time; see binaries/README.md.) +artifacts = ["src/gomc_rest/binaries/gomc-rest*"]