Skip to content

Latest commit

 

History

History
105 lines (71 loc) · 1.82 KB

File metadata and controls

105 lines (71 loc) · 1.82 KB

Releasing cccc-sdk

This repo is a monorepo with two deliverables:

  • Python package: python/ (PyPI name: cccc-sdk)
  • TypeScript package: ts/ (npm name: cccc-sdk)

Versioning policy

  • SDK major/minor tracks CCCC: 0.4.18.
  • RC sequence is SDK-owned (0.4.18rcN for Python, 0.4.18-rc.N for npm).
  • Compatibility is enforced by contracts/capabilities/op-probing, not by matching RC numbers.

0) Sync specs (recommended)

./scripts/sync_specs_from_cccc.sh ../cccc

1) Python release (PyPI/TestPyPI)

Prerequisites

  • TestPyPI and PyPI accounts
  • Repository secrets in ChesterRa/cccc-sdk:
    • TEST_PYPI_API_TOKEN
    • PYPI_API_TOKEN

Bump version

Edit python/pyproject.toml (project.version).

Local checks

./.venv/bin/python -m unittest discover -s python/tests -p "test_*.py" -v

Publish RC to TestPyPI

git tag v0.4.18rcN
git push origin v0.4.18rcN

This triggers .github/workflows/python-publish-testpypi.yml.

Install check:

python -m pip install --index-url https://pypi.org/simple \
  --extra-index-url https://test.pypi.org/simple \
  cccc-sdk==0.4.18rcN

Publish stable to PyPI

git tag v0.4.18
git push origin v0.4.18

This triggers .github/workflows/python-publish.yml.

2) TypeScript release (npm)

Bump version

Edit ts/package.json (version).

Examples:

  • RC: 0.4.18-rc.N
  • Stable: 0.4.18

Local checks

cd ts
npm ci
npm run typecheck
npm run build

Publish RC

cd ts
npm publish --tag rc --access public

Publish stable

cd ts
npm publish --access public

3) Post-release sanity

  • Run Python compat check against a running daemon:
python python/examples/compat_check.py
  • Verify npm package installs and can import { CCCCClient } from 'cccc-sdk'.