Get up and running with TrustLink's automated release process in 5 minutes.
pip install pre-commit
pre-commit installThis validates your commits before they're created.
Use conventional commit format:
git commit -m "feat(storage): add dual indexing"
git commit -m "fix(validation): reject invalid timestamps"
git commit -m "docs: update README"Commit types:
feat— new feature (triggers minor version bump)fix— bug fix (triggers patch version bump)docs,test,chore— no version bump
git push origin your-branch
# Open PR on GitHubUse "Squash and merge" or "Create a merge commit" (not "Rebase and merge").
That's it! Release Please handles the rest automatically.
After commits are merged to main, Release Please creates a Release PR within minutes.
- Check version bump is correct
- Review changelog entries
- Merge the Release PR
- Git tag is created
- WASM artifacts are built and attached
- Release notes are published
No manual action needed!
<type>(<scope>): <subject>
<body>
<footer>
✅ Good:
feat(storage): add dual indexing for subject and issuer lookups
✅ Good:
fix(validation): reject attestations with valid_from in the past
Previously, valid_from was only checked against the current time.
Now we also reject any valid_from that is before the current ledger
timestamp, preventing backdated attestations.
Closes #123
❌ Bad:
Updated stuff
feat: Add new feature.
feat(storage): added dual indexing
| Commits | Version Change |
|---|---|
feat only |
Minor (0.1.0 → 0.2.0) |
fix only |
Patch (0.1.0 → 0.1.1) |
feat + fix |
Minor (0.1.0 → 0.2.0) |
docs, test, chore only |
No release |
BREAKING CHANGE footer |
Major (0.1.0 → 1.0.0) |
| Type | Purpose |
|---|---|
feat |
New feature |
fix |
Bug fix |
docs |
Documentation |
test |
Tests |
refactor |
Code refactoring |
perf |
Performance improvement |
chore |
Build, CI, dependencies |
Narrow the change to a specific area:
storage— Storage layervalidation— Authorization/validationevents— Event emissionindexer— Off-chain indexersdk— TypeScript SDKci— CI/CD workflowsdocs— Documentation
Problem: Commit is rejected by pre-commit.
Solution:
- Fix the reported issue
- Try committing again
Problem: No Release PR appears after merging commits.
Solution:
- Check commits follow conventional format:
git log --oneline main..origin/main - Ensure at least one
featorfixcommit - Wait a few minutes (Release Please runs on schedule)
Problem: GitHub Release created but no WASM files.
Solution:
- Check workflow logs: https://github.com/TrustLink/TrustLink/actions
- Review
publish-releaseworkflow for errors - Manually build and attach if needed
- CONTRIBUTING.md — Full contribution guide with commit conventions
- RELEASE.md — Detailed release process documentation
- docs/release-workflow.md — Comprehensive workflow guide
- RELEASE_AUTOMATION_IMPLEMENTATION.md — Implementation details
| File | Purpose |
|---|---|
.github/workflows/release-please.yml |
Creates Release PRs |
.github/workflows/publish-release.yml |
Builds and publishes WASM |
.github/workflows/validate-commits.yml |
Validates commit format |
release-please-config.json |
Release Please configuration |
.commitlintrc.json |
Commit validation rules |
.pre-commit-config.yaml |
Local pre-commit hooks |
-
Install pre-commit hooks:
pre-commit install
-
Read CONTRIBUTING.md for full guidelines
-
Start committing with conventional format
-
Watch Release PRs appear automatically!
Questions? See RELEASE.md or docs/release-workflow.md for detailed documentation.