Keep changes focused and keep the three SDKs behaviorally aligned.
Before opening a pull request, run:
make test # hermetic: unit tests, contract check, test-count floor
make test-dist # builds and installs each package, then imports the artifactmake test imports each SDK from its source tree. make test-dist builds the
wheel / npm tarball / Go module the way a release would and exercises the
installed artifact, so it catches packaging regressions the unit tests cannot
(missing files, a broken exports map, an unresolvable module path).
To exercise the hosted API end to end:
CODAG_API_KEY=cdk_... make test-liveWhen changing request or response behavior, update:
openapi/codag-v1.openapi.json- shared fixtures under
fixtures/ - tests in Python, TypeScript, and Go
Do not commit credentials, customer logs, generated coverage reports, package manager caches, or built release archives.
The three SDKs share one version. To cut a release:
- Bump the version in
python/pyproject.toml,typescript/package.json, and theUSER_AGENTconstants in all three clients. make test && make test-dist.- Tag the commit
vX.Y.Zand push the tag. - Publish the artifacts:
- PyPI:
cd python && python -m build && twine upload dist/* - npm:
cd typescript && npm publish --access public - Go: no publish step —
go getresolves the pushed tag through the module proxy. The import path isgithub.com/codag-megalith/codag-sdk/go, so the tag the proxy needs isgo/vX.Y.Z(module-subdirectory tagging).
- PyPI: