Skip to content

HYG-09: CHANGELOG.md is a stale, cross-repo-copied shared file [go part] #116

Closed

Description

@cristim

Split from LeanerCloud/cloud-commitments-cli#1178 (cross-component issue, monorepo split)

Evidence: Newest release is 0.9.0 (2026-03-06); the Unreleased section lists four minor
fixes while ~1400 commits landed since, including major features.

Impact: Users and operators cannot determine what changed since 0.9.0; the sparse Unreleased
section gives a false impression of low activity.

Recommendation: Backfill from merged PR titles and cut a release, or drop the CHANGELOG in
favor of GitHub releases.

Repo-specific verification (2026-09-27)

The literal "~1400 commits since 0.9.0" count no longer means anything post-split (this repo has
its own fresh git history from the split point), but the underlying problem survived the split
rather than being resolved by it:

  • No repo has cut a release since the split -- gh release list and gh api .../tags are both
    empty for cloud-commitments-go (only cloud-commitments-cli carries a monorepo-final tag
    marking the split boundary). 0.9.0 (2026-03-06) is still the last real release, six-plus months
    stale.
  • CHANGELOG.md in this repo is byte-for-byte identical to the one in cloud-commitments-mcp
    and cloud-commitments-platform -- it was copied verbatim to all three repos, not adapted.
    Its "Fixed" section under Unreleased includes "Remove debug console.log from frontend
    recommendation handler", which describes a frontend/ change -- but this repo
    (cloud-commitments-go) has no frontend/ directory; that change belongs to
    cloud-commitments-platform. The same misattribution repeats for other repo-specific entries.

So this repo's CHANGELOG both understates what changed (pre-split staleness, unresolved) and
misattributes what it does list (post-split copy-paste, a new problem the split introduced).

Acceptance criteria

  • CHANGELOG.md in cloud-commitments-go contains only entries relevant to this repo's own
    code (pkg/, providers/), not copy-pasted entries from other repos.
  • Either backfill and cut a release, or replace the curated CHANGELOG with a pointer to
    GitHub Releases -- team's call on which is cheaper to maintain going forward.

Activity

  1. cristim commented on Oct 17, 2026

    @cristim
    MemberAuthor

    Decision needed (one line): backfill CHANGELOG.md and cut a release, or replace it with a pointer to GitHub Releases? Safe default: the pointer, dropping the entries copied from other repos. Open PRs #441 and #493 also edit CHANGELOG.md, so this lands after them. Marking status/needs-info.

  2. cristim commented on Nov 12, 2026

    @cristim
    MemberAuthor

    Plan for the go part (owner decision: simplest scope). Branch chore/116-changelog, one commit, CHANGELOG.md only.

    Challenge: still present on origin/main (fetched this session). Evidence at origin/main CHANGELOG.md:

    • L3: header says "All notable changes to CUDly".
    • L52-73: federation IaC bundle notices (CUDly UI, Terraform, CloudFormation). No platform code here.
    • L593-599: a platform-only note (recTotalCommitment). Drop the sentence, keep the in-repo consumer note.
    • L600: "Remove debug console.log from frontend recommendation handler". No frontend/ here.
    • L603: README Go badge entry. This README has no Go version badge.
    • L632-765: released sections 0.3.0 to 0.9.0 are CUDly product releases (CLI, platform, frontend, Terraform, Docker). This repo has no release tags.

    Changes

    1. L3: replace with a scope statement: the file covers only cloud-commitments-go (pkg, providers/ aws/azure/gcp, ci_cd_sanity_tests, this repo's scripts and CI). CUDly platform, frontend, MCP server and CLI changes live in their own repos.
    2. Delete L52-73 and L600, L603.
    3. L593-599: remove the platform recTotalCommitment sentence; keep the in-repo pkg/reporter and pkg/common/audit.go note.
    4. L632-765: keep only bullets that describe pkg/, providers/ or go-module code. Drop CLI, platform, frontend, Terraform, Docker and product bullets, and drop headings left empty. The dropped text stays in this file's git history.
    5. All other Unreleased bullets stay: they describe this repo's pkg, providers, scripts or CI.

    Proof

  3. cristim commented on Nov 12, 2026

    @cristim
    MemberAuthor

    Decision (go part, additive scope): deleting the copied content needs an owner confirmation, so this change deletes nothing. Commit 49995de changes CHANGELOG.md only (+4/-1):

    • L3 now says the file covers the cloud-commitments-go module (pkg/, providers/, ci_cd_sanity_tests/).
    • One note in the Unreleased section (before the federation IaC notices) names the entries copied from the CUDly product changelog: the federation notices, the frontend console.log fix, the README badge entry and the 0.3.0 to 0.9.0 releases. They are kept for history.

    Not done, so this issue stays open: the copied entries are still in the file, and the other repos are untouched. Removing them is the remaining step if the owner confirms the deletion. Also noticed, not changed: stale line numbers in the Azure Consumption units entry (pkg/reporter/reporter.go lines 44 and 96, now 50 and 103), and the ladder buffer-layer Fixed entry appears twice.

    Checks: markdownlint and the pre-commit and CI workflows on 49995de passed (jobs ran real steps). Two review passes by one independent reviewer: approve, no blocking findings.

  4. cristim commented on Nov 13, 2026

    @cristim
    MemberAuthor

    Landed in 2e15fd5: removed the copied federation IaC notices, frontend console.log and README badge entries, and the pre-split 0.3.0 to 0.9.0 releases, and added a pointer to cloud-commitments-cli for pre-split history. Chose pruning over a backfilled release as the cheaper option to maintain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions