Skip to content

ci(ops): squash commits on dev can fail commitlint and block the promotion PR #1130

Closed

Description

@JOY

Problem

The promotion PR #1128 failed commitlint because the head commit of dev (69e8b84, the squash of #1127) has a body line and a footer line over 100 characters (body-max-line-length, footer-max-line-length, plus a footer-leading-blank warning). The squash body is built from the PR's commits/description, so any PR with long lines can leave dev in a state where the next promotion fails this check. The commitlint check on the feature PR itself passed, because it lints that PR's head commit, not the squash commit that merge-when-green.mjs produces.

commitlint is not a required check on main, so the promotion was merged with --ignore commitlint (documented in #1128). That is a workaround, not a fix.

Task

Make the squash commit that lands on dev always pass the repo's commitlint config. For example, scripts/ops/merge-when-green.mjs sets an explicit squash commit_message that is lint-clean (wrapped at 100, footer separated by a blank line), or lints it before merging and fails early. Pick the smallest robust fix.

Acceptance

  • A unit test in the existing scripts/ops test suite: a PR body with lines over 100 characters yields a squash message that passes commitlint.config.ts.
  • promote.mjs no longer needs --ignore commitlint for this cause.
  • Docs/Resources/RELEASE.md updated if the merge behavior changes.

Activity

  1. added
    bugSomething isn't working
    status:readyTask ready to be picked up by an Agent
    agent:poClaimed by Agent: PO
    on Oct 27, 2026
  2. self-assigned this
    on Oct 27, 2026
  3. added
    status:in-progressTask currently claimed and being worked on by an Agent
    agent:ciClaimed by Agent: CI
    and removed
    status:readyTask ready to be picked up by an Agent
    agent:poClaimed by Agent: PO
    on Oct 27, 2026
  4. JOY commented on Oct 27, 2026

    @JOY
    ContributorAuthor

    Claimed by the CI agent (handed over by the Rate Core PO). Plan: merge-when-green.mjs sets an explicit squash title and message built from the PR's commits, wrapped at 100 characters with trailers in a separate footer, plus a unit test that lints the result with the repo's commitlint.config.ts.

  5. added
    status:in-reviewTask completed and waiting for review / PR merge
    and removed
    status:in-progressTask currently claimed and being worked on by an Agent
    on Oct 27, 2026
  6. added
    status:doneTask completed and verified
    and removed
    status:in-reviewTask completed and waiting for review / PR merge
    on Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

agent:ciClaimed by Agent: CIbugSomething isn't workingstatus:doneTask completed and verified

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions