Skip to content

Define a simple release process for branch/tag/docker/crate publication #448

@josecelano

Description

@josecelano

Overview

Define a standard but intentionally simple release process for this repository.

The process should cover:

  1. Update version-bearing Cargo.toml files
  2. Commit and push the release to main
  3. Create and push release tag vX.Y.Z
  4. Create and push release branch releases/vX.Y.Z
  5. Create GitHub release from tag
  6. Publish release artifacts via workflows:
    • Docker image for release branches
    • SDK crate publication

Specification

See detailed specification: docs/issues/448-release-process-branch-tag-docker-crate.md

Implementation Plan

Phase 1: Manual release sequence

  • Document pre-flight checks and release gate order
  • Define version/tag/branch conventions and manual steps

Phase 2: Docker release publish

  • Extend container.yaml to support releases/**/*
  • Enforce Docker tag policy (X.Y.Z only, no vX.Y.Z image tags)

Phase 3: Crate release publish

  • Add dedicated crate publish workflow for SDK crate
  • Add dry-run, package inspection, publish, and verification steps

Phase 4: Validation and recovery

  • Document partial-failure matrix, idempotency, and yank policy
  • Verify end-to-end release scenario

Acceptance Criteria

  • Pre-commit checks pass: ./scripts/pre-commit.sh
  • Docker release tags avoid duplicate v-prefixed variants
  • Docker and crate publishing remain in independent workflows
  • Environment policy is explicit: token is secret; username/repository are non-secret variables

Related

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions