Skip to content

chore: release-timestamps.json conflicts on every branch because local builds rewrite it #925

Description

@smmariquit

src/generated/release-timestamps.json is regenerated by bun run build (via generate:release-timestamps, which fetches the GitHub releases API) and is also committed, because the committed copy is the offline fallback when that API is unreachable or rate limited.

The result is that any branch where someone ran a local build carries a rewritten copy, and it conflicts with every other branch that did the same. It conflicted on four separate branches in one session today (#888, #917, #922, and the staging sync), every time for the same reason and never for a reason anyone cared about.

The conflicts are always trivially resolvable (union the version to timestamp map), which is what makes them pure tax.

Options, roughly in order of preference:

  1. Let only the release workflow commit it. Local and CI builds may regenerate it for their own output, but the file is only staged by the release job. Feature branches then never touch it.
  2. Keep the fallback data somewhere that does not churn, for example derive it from the CHANGELOG dates already committed, and drop the separate JSON.
  3. Add a merge driver for it. Note merge=union is not viable, since unioning JSON produces invalid JSON.

Not urgent, but it will keep costing a conflict per branch until one of these lands.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions