Release Process

This document describes how to create a new release of DocBuilder.

Quick Release (Automated)

The entire release process is automated. You only need to:

1
2
3
4
5
6
7
8
9
# 1. Commit your changes
git add .
git commit -m "feat: your changes"

# 2. Tag the version
git tag -a v0.X.Y -m "Release v0.X.Y - description"

# 3. Push (triggers all pipelines)
git push origin main --tags

That’s it! The following happens automatically:

  1. GoReleaser (.github/workflows/release.yml): Creates binaries for all platforms
  2. Docker (.github/workflows/ci.yml): Builds and publishes multi-arch images

Note: DevContainer features have been moved to a separate repository (docbuilder-devcontainer-features) for independent versioning and maintenance.

Release Checklist

Before tagging a release:

  • All tests pass: go test ./...
  • Linter passes: golangci-lint run
  • Changelog/release notes prepared
  • Version number follows semver (MAJOR.MINOR.PATCH)

After pushing tag:

Version Number Scheme

DocBuilder follows semantic versioning:

  • MAJOR (0.X.x): Breaking API changes, major architecture changes
  • MINOR (0.x.X): New features, theme additions, backwards-compatible changes
  • PATCH (0.1.x): Bug fixes, documentation, minor improvements

Currently in 0.1.x series (pre-1.0 development).

permalink[release-process](https://docs.home.luguber.info/_uid/591c7ad3-3af8-47f8-9d01-531da3233a5d/)