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).
Problem
hyperi-ci initscaffolds.releaserc.yamlwith explicitreleaseRulesunder theconventionalcommitspreset. When explicit rules are provided, they replace the preset defaults rather than extending them. The defaultconventionalcommitspreset handlesBREAKING CHANGE:footer → major bump automatically, but our explicit rules override that.Result: no project created by
hyperi-ci initcan produce a major version bump, even with aBREAKING CHANGE:footer in the commit message.Root Cause
In
hyperi_ci/init.py, thereleaseRuleslist starts with{"type": "feat", "release": "minor"}but is missing the breaking change rule.Fix
Add
{"breaking": True, "release": "major"}as the first entry in thereleaseRuleslist in the init template:Workaround (existing projects)
Manually edit
.releaserc.yamland add the rule:Discovered
Found during hyperi-rustlib v2.0.0 release —
BREAKING CHANGE:footer produced v1.23.0 (minor) instead of v2.0.0 (major).