Skip to content

Commits with [no-release] (or similar) keyword should be ignored in version calculation #238

@mshahzebraza

Description

@mshahzebraza

🧠 Description

Currently, the version calculation process analyzes all commits, including those containing special keywords like [skip ci].
However, there should be a way to ignore commits that contain a specific keyword (e.g., [no-release]) so they don’t contribute to the version bump logic.

🔍 Example Scenario

chore: hello world
=> Analysis => release_type: patch

feat: Add intro message component [no-release]
=> Analysis => release_type: minor, but should be ignored due to [no-release]

fix: add french language support
=> Analysis => release_type: patch

⚙️ Current Behavior

  • The action analyzes all commits since the last release.
  • Commits with keywords like [no-release] or [skip-release] are not filtered out.
  • If any such commit includes a conventional commit type like feat: or fix:, it still contributes to determining the final release_type.

Example outcome:

  • A commit with feat: and [no-release] still causes a minor bump, even though it should be ignored.

🎯 Expected Behavior

  • Commits containing configurable ignore keywords (e.g., [no-release], [skip-release]) should be skipped entirely during analysis.
  • These commits should:
    • Not contribute to determining the release_type.
    • Not appear in the changelog.
    • Not influence semantic versioning logic in any way.

💡 Proposed Solution

  • Introduce a configurable list of ignore keywords (default: [no-release], [skip-release]).
  • Before version analysis begins, filter out commits whose messages contain one of these keywords.
  • Continue version bump calculation using only the remaining commits.

🧱 Additional Context

This enhancement ensures better control over automated versioning workflows — especially useful when non-impactful commits (like internal refactors, experiments, or temporary feature branches) should not trigger a release.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions