Skip to content

conventional-commits reports a valid non-bumping commit as non-conforming #97

Description

@lesnik512

This was generated by AI during triage.

Under the conventional-commits strategy, every head commit that yields no bump reports the same status and reason:

{"status": "no_conforming_commit", "reason": "No conforming Conventional Commits type found in commit message."}

That's accurate for a message like Fix typo in README. It's wrong for a valid Conventional Commit whose type doesn't bump, such as ci: ..., docs: ..., chore: ... or test: ...: the commit conforms, its type just isn't in minor_types or patch_types. A user reading the reason would think their commit message is malformed.

This repo hits it on most pushes now that semvertag.yml dogfoods with conventional-commits (#96), since most squash titles are docs:, ci: or test:.

Cause: ConventionalCommitsStrategy.decide returns Bump.NONE for both cases, and the use case builds NoBump from the strategy's fixed no_bump_status and no_bump_reason class attributes, so the two cases can't be told apart downstream.

Constraints:

  • Status tokens are a frozen wire contract (schema_version "1.0"; action.yml maps every non-created status to no-bump). Whether a new token like no_bumping_type is acceptable, or the status stays no_conforming_commit and only the reason changes, is the main decision.
  • The reason must stay semvertag-controlled text. Naming the parsed type (ci) in it is repo-supplied text, so it should be limited to a validated type token (the strategy already checks types against ^[a-z]+$) or left out. See the field audit pinned in test: pin RunResult's fields so a new one forces a redaction audit #92.
  • branch-prefix may have the same shape. A merge commit whose source branch prefix isn't mapped to a bump probably also reports a generic no-bump reason. Worth checking whether the fix should be strategy-agnostic.

Revisit trigger: none; actionable once the status-token question is decided.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions