Skip to content

feat: introduce a dev integration branch + prerelease channel before main #206

@Lutherwaves

Description

@Lutherwaves

Check Existing Issues

  • I have searched the existing issues and discussions.

Problem Description

There is no staging between "merged" and "released to consumers". release.yml runs go-semantic-release on CI completion on main (workflow_runbranches: [main]), so every conventional-commit merge to main can cut a stable version — the changelog/tag is produced immediately, straight to anyone tracking the module.

A dev branch already exists, but it has rotted: it is ~14 commits ahead / 65 behind main, and both ci.yml and release.yml only trigger on main (branches: [main]), so dev is wired into nothing and has drifted. The intent was there; without a defined promotion flow it just accumulated divergence.

There is also no way to exercise the release pipeline itself (semantic-release config, goreleaser hook, changelog generation) without doing it on a real main release in front of consumers.

Desired Solution you'd like

Define an explicit release train with a prerelease channel:

  1. dev as the integration branch. Reset it from main first to clear the existing drift.
  2. Run CI on dev — extend branches: in ci.yml (and its pull_request target) to include dev.
  3. Prerelease channel. Configure go-semantic-release to cut -rc/-beta prerelease tags from dev so the pipeline is exercised on prereleases, not on consumers.
  4. dev → main promotion (scheduled or manual via PR) cuts the stable release. main stays the stable channel; the auto-release on main is unchanged.
  5. Document the branch policy in CONTRIBUTING.md (where PRs target, how a release is cut).

This pairs with the docs/release-strategy-mvp work already in progress.

Additional Context

Found while auditing the release wiring. Smallest viable version: reset dev, add dev to CI triggers, add a semantic-release prerelease branch config, document it. Labeled area:release.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:releaseRelease pipeline / branching / CIdiscussionquestionFurther information is requested

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions