feat(changelog): migrate to per-version YAMLs (66 versions, 518 entries)#314
Merged
Conversation
Phase 2 of UI-for-Changelog migration (beshu-tech/ror-api#86). Generated by scripts/migrate_changelog.py (beshu-tech/ror-api#90), one-shot parse of the live changelog.md. Hash parity verified: HashTitles.from_md() of each YAML-rendered bullet matches the original on every version, so ror-api will not re-run LLM descriptions for any existing entry. changelog.md kept as-is — will become auto-generated mirror in Phase 3 once render workflow + Issue Forms land. Edge cases (3 entries) emitted with components_raw + manual-review comment: - 1.43.0: (KBN|PRO) — PRO product variant - 1.48.0: (KBN < 7.9.x) — version-qualified component - 1.49.0: (KBN < 7.9.0) — version-qualified component These already had non-canonical components in original changelog.md; left verbatim so existing LLM descriptions stay valid. Maintainer can adjust manually if desired.
This comment was marked as spam.
This comment was marked as spam.
This was referenced May 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Phase 2 of the UI-for-Changelog rollout (tracker:
beshu-tech/ror-api#86).Turns the free-text
changelog.mdinto per-version YAML files. Each release lives in its own file atchangelog/{version}.yaml. After Phase 3,changelog.mdis auto-generated from these YAMLs — humans never touch it directly.Generated by
scripts/migrate_changelog.pyinbeshu-tech/ror-api(PR #90). One-shot. Reuses ror-api's existing parsers (is_version_line,parse_version_details,HashTitles.from_md) to guarantee parsing behavior matches production.Results
Hash parity — why it matters
ror-apistores LLM-generated detailed descriptions per entry, keyed byHashTitles.from_md(entry_bullets). If the YAML→MD render produces different bullets than the original, the hash changes → ror-api re-runs the LLM for every "changed" entry → cost + delay + churn.This PR is hash-stable. Every existing LLM description survives.
The script discovered
(KBN/ES),(KBN|ES),(ES & KBN)mixed-separator entries that would not survive canonical render. Fix: optionalcomponents_rawfield on entries — preserves the original separator/order verbatim while keeping a normalizedcomponents: [es, kbn]array for downstream consumers. Pure form-driven future entries omitcomponents_raw.Edge cases (3 entries) — preserved verbatim, flagged inline
Each YAML for these versions has a
# EDGE CASE — manual review neededcomment block with the original bullet. Samecomponents_rawmechanism keeps hashes stable; you can leave as-is or normalize manually.1.43.0KBN|PRO1.48.0KBN < 7.9.x1.49.0KBN < 7.9.0Sample (1.69.0.yaml)
What this PR does NOT do
changelog.md— stays as-is until Phase 3 cuts over (render workflow regens it from YAMLs)changelog_watch.yml— Phase 3 swaps the payload to structuredAfter merge
Branch
migrate/yaml-changeloglands onmaster. Phase 3 adds the workflow files + Issue Forms in a separate PR, coordinated with ror-api webhook contract changes.Demo
Schema + render verified end-to-end on
ton77v/changelog-forms-demo. Same YAML format, same parser, same render logic that Phase 3 will deploy here.