From d04b35230428d3e8fd12c8bee2191053d8b92cdd Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 30 Sep 2026 18:08:08 +0000 Subject: [PATCH] Run build & twine upload in afterPublish instead of afterRelease auto's exec plugin passes every hook argument as a JSON-encoded ARG_ environment variable. afterRelease's single argument carries all commits in the release (with a full GitHub user record per PR commit), the release notes and the GitHub release response, so for larger releases it exceeds Linux's 128KiB per-string limit (MAX_ARG_STRLEN) and the command fails with "spawnSync /bin/sh E2BIG" before it even starts, although "python -m build && twine upload dist/*" never uses it (https://github.com/intuit/auto/issues/1294). afterPublish takes no arguments, so no ARG_* variables are set. It runs in "auto shipit" right after git-tag has created and pushed the new tag, so the version derived from the tag is the same; the only difference is that PyPI upload now happens before, rather than after, the GitHub release is created. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01W872omgTVzywQbbjRvCX6q --- .autorc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.autorc b/.autorc index ff68b4741..47033667f 100644 --- a/.autorc +++ b/.autorc @@ -9,7 +9,7 @@ [ "exec", { - "afterRelease": "python -m build && twine upload dist/*" + "afterPublish": "python -m build && twine upload dist/*" } ], "released"