Skip to content

docs: add a generated root changelog merged from the package changelogs - #389

Open
Kyleasmth wants to merge 2 commits into
mainfrom
YPE-4190/root-changelog
Open

docs: add a generated root changelog merged from the package changelogs#389
Kyleasmth wants to merge 2 commits into
mainfrom
YPE-4190/root-changelog

Conversation

@Kyleasmth

@Kyleasmth Kyleasmth commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Closes YPE-5752. The research half, YPE-4190, is closed: Jeff confirmed on 10 Sep that React and RN Expo are in scope and should match the Swift pattern.

Swift and Kotlin each ship a root CHANGELOG.md. This repo had only per-package files, so there was no single place to see what shipped in a release. This adds one, generated rather than maintained by hand.

Why it is generated and deduped

The three packages are a fixed group in .changeset/config.json, so they always share a version, and a changeset touching several of them writes the same entry into each of their changelogs. Concatenating the three would triple most entries:

entries
Naive concat of all three 577
Deduped root changelog 169

Each entry is shown once and annotated with which packages it affected — _(all packages)_, or the specific ones. Across the history that splits 91 all-package, 47 ui-only, 12 hooks+ui, 8 hooks-only, 7 core-only, so the annotation carries real information rather than decorating every line identically.

Updated dependencies blocks are dropped. They are the fixed group's internal bookkeeping (@youversion/platform-core@2.12.1 etc.) and not something a consumer reading release notes needs.

Staying current

version-packages becomes changeset version && node scripts/build-root-changelog.mjs. changesets/action already invokes it via version: pnpm version-packages, so the "Version Packages" PR carries an up-to-date root changelog with no workflow change. Also exposed as pnpm build:root-changelog.

Verified

  • Complete — all 104 versions from each of the three package changelogs appear in the root; none dropped.
  • Idempotent — regenerating produces a byte-identical file, so releases will not churn.
  • No formatting churn — output is already Prettier-clean, and .prettierignore excludes *.md regardless.

Scope note

RN Expo has the same gap (core and ui changelogs, no root) and is deliberately not included here. It is the second half of YPE-5752 and is near-identical work once this shape is agreed.

Greptile Summary

This PR adds a generated repository-level changelog assembled from the three fixed-group package changelogs and integrates regeneration into the Changesets version command.

  • Adds the generated root CHANGELOG.md with package-scope annotations.
  • Adds a Node generator that merges package histories and removes internal dependency bookkeeping.
  • Adds build:root-changelog and runs it after changeset version.
  • Includes an intentional empty changeset for the documentation/tooling-only change.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains.

No blocking failure remains.

Important Files Changed

Filename Overview
scripts/build-root-changelog.mjs Adds parsing, bookkeeping removal, cross-package deduplication, package-scope annotation, and root changelog generation.
package.json Exposes the generator directly and integrates it into the existing Changesets versioning command.
CHANGELOG.md Adds the generated, deduplicated release history for all three fixed-group packages.
.changeset/wise-pandas-repeat.md Records the documentation and tooling change as an intentional no-release changeset.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Core[Core package changelog] --> Generator[build-root-changelog.mjs]
  Hooks[Hooks package changelog] --> Generator
  UI[UI package changelog] --> Generator
  Generator --> Root[Root CHANGELOG.md]
  Changesets[changeset version] --> Generator
  Root --> VersionPR[Version Packages PR]
Loading

Reviews (2): Last reviewed commit: "fix: drop the fixed group's version book..." | Re-trigger Greptile

Context used:

@changeset-bot

changeset-bot Bot commented Sep 9, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 69d85e4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@Kyleasmth Kyleasmth changed the title docs: add a generated root changelog merged from the package changelogs YPE-5752: add a generated root changelog merged from the package changelogs Sep 10, 2026
@Kyleasmth
Kyleasmth marked this pull request as ready for review September 10, 2026 20:20
@Kyleasmth Kyleasmth changed the title YPE-5752: add a generated root changelog merged from the package changelogs docs: add a generated root changelog merged from the package changelogs Sep 10, 2026
Comment thread scripts/build-root-changelog.mjs Outdated
Comment thread scripts/build-root-changelog.mjs Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant