From 8ed06bc57c907778ae435bb64c51ff949f70c3f4 Mon Sep 17 00:00:00 2001 From: hyperpolymath-bot Date: Tue, 22 Sep 2026 16:16:35 +0000 Subject: [PATCH] chore: remove local cliff.toml override now that standards#988 has merged MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The local cliff.toml was added in #221 as an emergency hotfix for the infinite changelog-regenerate loop (see #219). The canonical fix landed in hyperpolymath/standards#988 and the canonical templates/cliff.toml at standards@main now contains the same subject-matcher skip rule. Verified that git-cliff run against the canonical config produces byte-identical CHANGELOG.md to the current on-disk version, so this repo can return to consuming the canonical estate config per the comment in changelog.yml ("no local cliff.toml by design — one config for the estate"). [skip changelog] --- cliff.toml | 98 ------------------------------------------------------ 1 file changed, 98 deletions(-) delete mode 100644 cliff.toml diff --git a/cliff.toml b/cliff.toml deleted file mode 100644 index 12a5203..0000000 --- a/cliff.toml +++ /dev/null @@ -1,98 +0,0 @@ -# SPDX-License-Identifier: MPL-2.0 -# SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) -# -# Local override of the canonical hyperpolymath/standards cliff.toml. -# -# This exists ONLY as an emergency hotfix for the infinite changelog loop -# surfaced in maa-framework#219. The canonical config at -# hyperpolymath/standards/templates/cliff.toml was missing a skip rule for -# the bot's own auto-generated commits, which caused each squash-merge of -# a changelog PR to add a new conventional commit, re-trigger -# regeneration, and open the next changelog PR in an infinite chain. -# -# The fix (adding a subject-matcher skip rule for -# "chore(changelog): regenerate from conventional commits") has been -# submitted as standards#988. Once that PR merges, this local override can -# (and should) be deleted so the repo returns to consuming the canonical -# config from standards@main, per estate convention. -# -# This file is byte-identical to the standards/templates/cliff.toml on -# branch fix/changelog-loop-* (standards PR #988), modulo this header -# comment block. -# -# -# Canonical git-cliff config for the hyperpolymath estate. -# -# Place a copy at `cliff.toml` in any repo and run `git cliff -o CHANGELOG.md` -# locally, OR consume the `changelog-reusable.yml` workflow which uses this -# config automatically. -# -# Closes the 65% CHANGELOG gap surfaced by the 2026-05-26 documentation-debt -# audit (standards#197). - -[changelog] -header = """ -# Changelog - -All notable changes to this project are documented here. - -This file is generated by [git-cliff](https://git-cliff.org) from conventional -commits. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) -and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -""" -body = """ -{% if version -%} -## [{{ version | trim_start_matches(pat="v") }}] — {{ timestamp | date(format="%Y-%m-%d") }} -{% else -%} -## [Unreleased] -{% endif -%} - -{% for group, commits in commits | group_by(attribute="group") %} -### {{ group | upper_first }} - -{% for commit in commits -%} -- {{ commit.message | upper_first | trim }}{% if commit.breaking %} **[BREAKING]**{% endif %} ({{ commit.id | truncate(length=7, end="") }}) -{% endfor %} -{% endfor %} -""" -footer = """ - -""" -trim = true - -[git] -conventional_commits = true -filter_unconventional = false -split_commits = false -commit_parsers = [ - { message = "^feat", group = "Added" }, - { message = "^add", group = "Added" }, - { message = "^fix", group = "Fixed" }, - { message = "^perf", group = "Performance" }, - { message = "^refactor", group = "Changed" }, - { message = "^docs", group = "Documentation" }, - { message = "^test", group = "Tests" }, - { message = "^ci", group = "CI" }, - # Never re-emit the auto-changelog's own commits; that causes an infinite - # regenerate loop (surfaced by maa-framework PR #219). Must come BEFORE - # the generic ^chore matcher because commit_parsers is first-match-wins. - # The regex matches both the bot's branch commit subject and the default - # GitHub squash-merge subject ("... (#NNN)"), which is critical because - # in pr-back mode the squash-merge subject (not the branch commit body) - # survives into main. - { message = "^chore\\(changelog\\):\\s*regenerate from conventional commits", skip = true }, - { body = "\\[skip changelog\\]", skip = true }, - { message = "^chore", group = "Chores" }, - { message = "^style", skip = true }, - { message = "^revert", group = "Reverted" }, - { body = ".*security",group = "Security" }, - # Fallback: any commit not matching above falls into "Other". - { message = ".*", group = "Other" }, -] -filter_commits = false -tag_pattern = "v[0-9]+\\.[0-9]+\\.[0-9]+" -skip_tags = "v0.0.0-test" -ignore_tags = "" -topo_order = false -sort_commits = "newest"