This document describes the release process for typescript2cxx.
- Ensure you have push access to the repository
- Ensure your local main branch is up to date
- Ensure all tests pass locally
Update the version in deno.json:
{
"version": "0.1.1"
}Add a new section to CHANGELOG.md following the conventional commits format:
## [0.1.1] - 2025-01-15
### Added
- feat: new feature description
### Changed
- refactor: improved implementation
### Fixed
- fix: bug fix descriptiongit add deno.json CHANGELOG.md
git commit -m "chore: release v0.1.1"
git push origin main# Create annotated tag
git tag -a v0.1.1 -m "Release v0.1.1"
# Push tag to trigger release workflows
git push origin v0.1.1The following will happen automatically:
- CI Workflow - Runs tests and checks
- JSR Publish Workflow - Publishes to JSR registry
- GitHub Release Workflow - Creates GitHub release
Monitor the Actions tab to ensure all workflows complete successfully.
We follow Semantic Versioning:
- MAJOR version for incompatible API changes
- MINOR version for backwards-compatible functionality additions
- PATCH version for backwards-compatible bug fixes
For pre-release versions:
# Alpha release
git tag v0.1.1-alpha.1
# Beta release
git tag v0.1.1-beta.1
# Release candidate
git tag v0.1.1-rc.1- Ensure the package is linked to the GitHub repository on JSR
- Verify the version in deno.json matches the tag
- Check for any JSR compatibility issues with
deno publish --dry-run
The publish workflow will fail if the git tag doesn't match the version in deno.json.
Always update deno.json before creating the tag.
The release will not proceed if tests fail. Fix any failing tests before attempting to release.
If automated publishing fails, you can publish manually:
# Dry run first
deno publish --dry-run
# Publish to JSR
deno publishNote: Manual publishing requires browser authentication.