Defines conventions for releasing open-source SDKs and libraries. Use when releasing a new version of an SDK, writing changelogs, or publishing to a language registry (npm, PyPI, Maven, etc.).
Called by sdk-implement Phase 7.
Rules: safety · change-control
Use Semantic Versioning:
0.1.0 for new packages.0.x, breaking changes bump minor (e.g., 0.1.0 → 0.2.0).Convention: altertable-{lang} for product analytics SDKs (default product). altertable-{product}-{lang} for other product SDKs (e.g., altertable-lakehouse-ruby).
Package names, registries, and repository mappings are defined in repositories.config.json.
Note: the JS/TS SDK and web framework wrappers live in the altertable-js monorepo under packages/ — that repo publishes multiple packages.
Follow Keep a Changelog format:
# Changelog
## [Unreleased]
### Added
- New feature description.
### Changed
- Changed behavior description.
### Fixed
- Bug fix description.
### Removed
- Removed feature description.
Rules:
Added, Changed, Fixed, Removed).[0.2.0]: https://github.com/altertable-ai/altertable-js/compare/v0.1.0...v0.2.0).Use release-please GitHub Action for:
Commit message prefixes:
| Prefix | Version Bump |
|---|---|
fix: | Patch |
feat: | Minor |
feat!: | Major |
npm (JS/TS):
"sideEffects": false for tree shaking.exports field.types field pointing to declarations.files array to allowlist published files.PyPI (Python):
pyproject.toml with [build-system] section.py.typed marker for typed packages.Maven Central (Java/Kotlin):
crates.io (Rust):
cargo publish --dry-run before release.All packages use the MIT license. Include LICENSE file at the package root.