LCMD db logoLCMD[db]

Releases

Semantic versioning via release-please

Release-Please tracks conventional commits on main and maintains an open PR that cuts a version when merged.

Releases are archive markers, not deploy triggers. Every merge to main deploys to prod continuously via the CI/CD pipeline — see CI/CD. Merging a release PR creates a tag (v0.4.0) and a GitHub Release that pins the image versions for traceability. The code is already live.

Flow

Commit normally

feat: bumps minor, fix: patches, feat!: or BREAKING CHANGE: bumps major. Release-Please accumulates these on its open PR.

Review the release PR

GitHub lists it as chore(main): release X.Y.Z. The diff is the generated changelog and the version bumps across pyproject.toml / package.json / VERSION.

Merge it

Release-Please creates the git tag and GitHub Release. CI's annotate-release job lists the corresponding image references in the release body.

Commit typeVersion bump
fix:patch
feat:minor
feat!: or BREAKING CHANGE:major
chore:, docs:, refactor:, test:none (still in changelog)

What gets updated

  • VERSION
  • CHANGELOG.md (root and per-package)
  • pyproject.toml / package.json versions across the monorepo
  • Git tag + GitHub Release
  • Image tags (built during the tag push CI run)

Pre-releases

Edit the VERSION in the release PR to add -rc.1 before merging. Release-Please preserves the suffix.

Configuration

  • .github/workflows/release-please.yml
  • .github/release-please-config.json
  • .github/.release-please-manifest.json

Troubleshooting

No release PR appears. No version-bumping commits landed since the last release. Push a feat: or fix: commit.

Release PR stale. Close it, push any commit, Release-Please re-opens.

Skip a release. Just don't merge the PR. It accumulates the next time.

On this page