Skip to main content
Version: 0.3

Release Management

Automate the release process: aggregate changelogs from commits, determine the version bump, update version files, tag, and publish.

Workflow​

runPipeline(
pipe(
listCommitsSinceLastRelease,
all(
pipe(forEach(classifyCommit), determineVersionBump),
generateChangelog,
),
merge(),
applyVersionBump,
tryCatch(
(throwError) => pipe(
buildAndTest.unwrapOr(throwError).drop(),
tagRelease,
publish,
),
rollbackVersion,
),
),
);

Stages​

  1. List commits — get all commits since the last release tag.
  2. Parallel analysis:
    • Classify commits — each commit is categorized (feature, fix, breaking, chore). The results determine the version bump (major/minor/patch).
    • Generate changelog — an LLM writes human-readable release notes from the commit list.
  3. Apply version bump — update package.json, Cargo.toml, or whatever version files exist.
  4. Build, test, tag, publish — wrapped in tryCatch so failures roll back the version bump.

Key points​

  • all runs version analysis and changelog generation concurrently — they don't depend on each other.
  • Commit classification is per-commit via forEach, so the agent sees one commit at a time.
  • The changelog agent sees all commits but doesn't classify them — it writes prose.
  • tryCatch ensures a failed publish doesn't leave the repo in a half-released state.