Skip to content

feat: override files for releases conventional commits cannot express #178

@joshua-temple

Description

@joshua-temple

cascade computes the next version from conventional commits. That cannot express every
release intent: forcing a major bump when no commit carries a breaking marker, or cutting
a named pre-release line on demand. Today the only escape hatches are commit-message
conventions, which are awkward for deliberate, reviewed version decisions.

Add optional override files that a maintainer commits to declare an explicit version
intent for the next release. When present, the override takes precedence over the
commit-derived computation; when absent, behavior is unchanged.

Proposed approach:

  • Define an override file format (for example small files under a conventional directory)
    that can request a specific bump level, an exact version, or a pre-release line.
  • Add an optional manifest pointer for the override location with a sensible default.
  • Fold overrides into the existing next-version computation and consume them on release so
    they do not accumulate.

Acceptance criteria:

  • With no override files, version computation and changelog are byte-for-byte unchanged.
  • An override requesting a major bump or an exact version produces that version.
  • An override is consumed at release time and does not affect the following release.
  • An e2e scenario exercises a forced major and a pre-release line.

Metadata

Metadata

Assignees

No one assigned

    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