feat: implement optimization #4 - version-tag consistency check
Add version-tag consistency validation to prevent mismatched releases: - Integrate validate_changelog_version() into create_tag() workflow to ensure CHANGELOG has version section before creating git tag - Add check_version_consistency() method to ReleaseManager for manual consistency verification - Add 'release check-consistency --version X.Y.Z' CLI command to verify CHANGELOG and git tag alignment - Prevent tag creation if CHANGELOG missing version section - Provide helpful tips when validation fails This ensures git tags and CHANGELOG versions stay synchronized, preventing incomplete or inconsistent releases. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -261,5 +261,30 @@ def version_info(ctx, suggest: bool):
|
||||
print(f" {key.replace('_', ' ').title()}: {value}")
|
||||
|
||||
|
||||
@main.command('check-consistency')
|
||||
@click.option('--version', required=True, help='Version to check (e.g., 0.10.0)')
|
||||
@click.pass_context
|
||||
def check_consistency(ctx, version: str):
|
||||
"""Check consistency between CHANGELOG version and git tags."""
|
||||
manager = ReleaseManager(
|
||||
project_root=ctx.obj['project_root'],
|
||||
dry_run=ctx.obj['dry_run'],
|
||||
force=ctx.obj['force']
|
||||
)
|
||||
|
||||
is_consistent, issues = manager.check_version_consistency(version)
|
||||
|
||||
if is_consistent:
|
||||
print(f"✅ Version {version} is consistent:")
|
||||
print(f" - CHANGELOG has section for {version}")
|
||||
print(f" - Git tag v{version} exists")
|
||||
print(f" - [Unreleased] section present")
|
||||
else:
|
||||
print(f"❌ Version {version} has consistency issues:")
|
||||
for issue in issues:
|
||||
print(f" - {issue}")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user