The user wants goal -a to publish the existing dependency-free Python SDK as
the root PyPI distribution todo2code. They selected one root manifest, removal
of sdk/python/pyproject.toml, and an SDK-only artifact. The root project must
still remain a Node.js application; Goal therefore needs to detect both stacks.
The shared dist/ directory is acceptable when handled append-only. TypeScript
uses paths below dist/src, while Python build writes two top-level archive
files. Publication is already bounded to dist/todo2code-{version}*, so neither
the JavaScript tree nor unrelated artifacts are passed to Twine.
Removing the nested manifest requires migrating make python-wheel from
pip wheel ./sdk/python to the repository root. Tickets 018 and 035 are DONE;
the latter now makes all five publication paths integration-owned shared
contracts. Ticket-019 is therefore routed to the integration workstream.
todo2code and todo2code_sdk from
sdk/python, preserving Apache-2.0 metadata and Python >=3.10.dist/ with a sentinel TypeScript file, run an isolated root build and
prove the sentinel survives.twine check, install the wheel into a
clean virtual environment and verify imports/version/dependency metadata.goal --dry-run -a, then the repository verification,
SDK examples and governance checks.todo2code PEP 517/621 manifest with an explicit
sdk/python package mapping and no runtime dependencies.make python-wheel to
the root manifest, removed the nested manifest and updated SDK commands.--dry-run flag. The bounded Python artifacts were therefore published as
PyPI 0.5.1; npm rejected the subsequent operation with ENEEDAUTH, and an
independent lookup found no npm release.main@e333ace.