Semantic Versioning, Semantic Release, and a Go-native implementation

How Semantic Versioning and Semantic Release fit together — the standard, the automation contract that turns commit history into version tags, and why I re-implemented the Node.js tool in Go to remove the JavaScript toolchain from CI pipelines that don’t otherwise need one.

July 20, 2026 · 12 min · Omar Crosby

Conventional Commits, and the thinking they encourage

A working tour of Conventional Commits — the format, the reason it makes each changeset better before any tool touches it, how to identify good scopes, what the Angular convention adds on top, and where the whole thing fits into the release-automation ecosystem (semantic-release, release-please, cocogitto, git-cliff, commitlint).

July 20, 2026 · 18 min · Omar Crosby