Skip to content

fix: init scaffolds .releaserc.yaml without breaking change → major rule #14

@catinspace-au

Description

@catinspace-au

Problem

hyperi-ci init scaffolds .releaserc.yaml with explicit releaseRules under the conventionalcommits preset. When explicit rules are provided, they replace the preset defaults rather than extending them. The default conventionalcommits preset handles BREAKING CHANGE: footer → major bump automatically, but our explicit rules override that.

Result: no project created by hyperi-ci init can produce a major version bump, even with a BREAKING CHANGE: footer in the commit message.

Root Cause

In hyperi_ci/init.py, the releaseRules list starts with {"type": "feat", "release": "minor"} but is missing the breaking change rule.

Fix

Add {"breaking": True, "release": "major"} as the first entry in the releaseRules list in the init template:

"releaseRules": [
    {"breaking": True, "release": "major"},  # ← ADD THIS
    {"type": "feat", "release": "minor"},
    {"type": "fix", "release": "patch"},
    ...
]

Workaround (existing projects)

Manually edit .releaserc.yaml and add the rule:

      releaseRules:
        - breaking: true
          release: major
        - type: feat
          release: minor
        # ... rest of rules

Discovered

Found during hyperi-rustlib v2.0.0 release — BREAKING CHANGE: footer produced v1.23.0 (minor) instead of v2.0.0 (major).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions