Skip to content

Maintain consumer-facing release notes / CHANGELOG keyed to forge versions #34

@misnaej

Description

@misnaej

Problem

Consumers adopt forge partly by copying text out of forge's docs into their own repo — CI workflow YAML (docs/ci-recipe.md), .githooks/pre-commit customizations, .claude/settings.json hook wiring, etc. When forge changes that text, nothing tells a consumer their pasted copy is now stale.

Live example: PR #29 changed the CI recipe so pytest is invoked with explicit --durations flags (the previous bare-pytest recipe produced an empty slow-tests report in a consumer repo). A consumer who pasted the old recipe has no signal to update it. New CLIs (forge-slow-tests-report), a raised Python floor (>=3.11), new pre-commit steps, and new hooks have the same property.

Goal

A release-note history, keyed to forge version, that a consumer can scan after a forge-upgrade to know what — if anything — they must change in their repo. Emphasis on "consumer action required" items (workflow/recipe/config changes), not just internal refactors.

Why this is tractable in forge specifically

  • Releases are already tagged vX.Y.Z; plugin.json rolling-next + /promote mark minor/major boundaries.
  • Squash-merge messages on main are already conventional-commit formatted, <=50 words, 3–5 bullets (enforced by forge-pr-squash-comment / pr-manager). That's a clean, pre-curated changelog source — git log <prev-tag>..<tag> on main is already release-note-shaped.

Proposed direction (for the implementing PR, not this issue)

  • A CHANGELOG.md (Keep-a-Changelog style) or docs/release-notes.md, one section per released version, with a dedicated "Consumer action required" subsection when a release touches copy-pasted surface (CI recipe, hook config, requires-python, new mandatory step).
  • Consider a forge-gen-changelog CLI that derives entries from squash messages between tags (mirrors forge-gen-cli-reference / forge-gen-api-digest), so the changelog stays single-sourced and low-effort — generated, not hand-curated.
  • Surface the relevant section after forge-upgrade (it already prints post-upgrade reminders) and link it from the README adoption flow.
  • Backfill notable consumer-affecting changes from existing tags (the --durations recipe change, the 3.11 floor, new CLIs/hooks).

Relates to #33 (adoption-docs clarity) — both are about consumer-facing transparency.

Metadata

Metadata

Assignees

No one assigned

    Labels

    docsDocumentation onlyfeatureNew capabilitytier-3-standardNormal features / refactors

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions