From 246f4001d25b0e0f4dbc2eedf541030c7d2b02ab Mon Sep 17 00:00:00 2001 From: Brian Kanya <6502571+kanya-approve@users.noreply.github.com> Date: Fri, 15 May 2026 21:05:29 -0400 Subject: [PATCH] build: add dev deps for Nuitka onefile binary builds Run with: uv run python -m nuitka --project --mode=onefile \ --output-dir=build --output-filename=graphify \ --assume-yes-for-downloads Produces build/graphify, a self-contained ~60 MB binary that bundles the package's skill *.md files (picked up automatically from [tool.setuptools.package-data] via Nuitka's --project flow). The existing wheel-build path (uv build via setuptools.build_meta) is unchanged. [tool.nuitka] config in pyproject.toml is not used: in --project mode Nuitka builds the option list from setuptools distribution metadata (_dumpBuildConfiguration in nuitka/distutils/DistutilsCommands.py) and never reads [tool.nuitka], so output-dir / output-filename / etc. must be passed on the CLI. patchelf is required at build time on Linux and macOS for Nuitka's standalone/onefile linking; gated by sys_platform != 'win32' so Windows dev installs skip it. --- pyproject.toml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 5442eccd..365db8e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,3 +82,12 @@ graphify = ["skill.md", "skill-codex.md", "skill-opencode.md", "skill-aider.md", [tool.bandit] skips = ["B404"] + +[dependency-groups] +dev = [ + "build>=1.5.0", + "nuitka>=4.1", + "patchelf>=0.17.2.4 ; sys_platform != 'win32'", + "setuptools>=82.0.1", + "wheel>=0.47.0", +]