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.
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:
that can request a specific bump level, an exact version, or a pre-release line.
they do not accumulate.
Acceptance criteria: