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:
- 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.
- Keep the fallback data somewhere that does not churn, for example derive it from the CHANGELOG dates already committed, and drop the separate JSON.
- 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.
src/generated/release-timestamps.jsonis regenerated bybun run build(viagenerate: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:
merge=unionis not viable, since unioning JSON produces invalid JSON.Not urgent, but it will keep costing a conflict per branch until one of these lands.