Skip to content

feat: interactive release confirmation (--interactive flag) #193

@mwaldheim

Description

@mwaldheim

Summary

Add a --interactive flag to semrel release that pauses before tagging and asks the user to confirm (or manually override) the detected version bump.

Motivation

Automated commit analysis is reliable for well-maintained commit histories, but there are cases where a human sanity-check is desirable:

  • Squash-merged PRs where the merge commit message may not reflect the actual change
  • First release of a new major version
  • Local developer workflows where the user wants to see the proposed changelog before committing

Proposed UX

$ semrel release --interactive

Analyzing commits since v1.2.3...
  feat: add file storage backend
  fix: correct pagination offset calculation

Proposed next version: v1.3.0 (minor bump)

Changelog preview:
  ### Features
  - add file storage backend

  ### Bug Fixes
  - correct pagination offset calculation

Proceed with v1.3.0? [Y/n/edit]

Options:

  • Y — proceed with detected version
  • n — abort release
  • edit — open $EDITOR with the version number pre-filled for manual override

Acceptance criteria

  • --interactive flag available on semrel release
  • Shows detected version and changelog preview
  • Supports Y/n/edit prompt
  • Non-interactive (CI) environments: if stdin is not a TTY and --interactive is set, print an error and exit non-zero
  • Compatible with --dry-run (dry-run preview still shown, no actual release)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    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