Skip to content

docs: track upstream sync progress with marker refs - #65

Merged
santhoshvai merged 1 commit into
masterfrom
chore/sync-marker-refs
Aug 17, 2026
Merged

docs: track upstream sync progress with marker refs#65
santhoshvai merged 1 commit into
masterfrom
chore/sync-marker-refs

Conversation

@santhoshvai

Copy link
Copy Markdown
Member

Merging upstream refs into master to record sync progress makes every upstream commit an ancestor of master. semantic-release analyses ..master by walking all parents, so commits we deliberately skipped enter the version calculation and changelog — one upstream 'feat:' turns a patch into a minor and credits us with code we never shipped. Ghost merges have the same problem: the tree is unchanged but the upstream parent is still recorded.

Track progress with a sync-marker/ ref instead. It is not an ancestor of master, so releases never see it, and because tracking no longer depends on history shape the PR merge strategy stops mattering — squashing a sync PR used to silently destroy the record.

Also folds in what the last sync surfaced: don't run both example builds concurrently, pipefail so a failed xcodebuild isn't hidden by tail, keep only the formatting for files the sync touched, and don't trust a shadowed grep.

Merging upstream refs into master to record sync progress makes every upstream
commit an ancestor of master. semantic-release analyses <lastTag>..master by
walking all parents, so commits we deliberately skipped enter the version
calculation and changelog — one upstream 'feat:' turns a patch into a minor and
credits us with code we never shipped. Ghost merges have the same problem: the
tree is unchanged but the upstream parent is still recorded.

Track progress with a sync-marker/<remote> ref instead. It is not an ancestor of
master, so releases never see it, and because tracking no longer depends on
history shape the PR merge strategy stops mattering — squashing a sync PR used
to silently destroy the record.

Also folds in what the last sync surfaced: don't run both example builds
concurrently, pipefail so a failed xcodebuild isn't hidden by tail, keep only
the formatting for files the sync touched, and don't trust a shadowed grep.
@santhoshvai
santhoshvai merged commit 1a00a75 into master Aug 17, 2026
1 of 2 checks passed
@santhoshvai
santhoshvai deleted the chore/sync-marker-refs branch August 17, 2026 20:07
santhoshvai added a commit that referenced this pull request Aug 17, 2026
… rule

Restructure upstream-sync.md: each pitfall now lives in the workflow phase
where it bites, and former pitfalls 10/13 merge into one section covering
semantic-release vs upstream ancestors, the ghost-merge + absorbing-tag
procedure, and the 'commits behind' banner. Also re-lands the banner
guidance lost when PR #65 was squash-merged during the GitHub outage.
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