Skip to content

fix: implement single-PR workflow for upstream sync conflict resolution - #46

Merged
mateo-di merged 2 commits into
carto/mainfrom
fix/upstream-sync-conflict-resolver
Dec 3, 2025
Merged

fix: implement single-PR workflow for upstream sync conflict resolution#46
mateo-di merged 2 commits into
carto/mainfrom
fix/upstream-sync-conflict-resolver

Conversation

@mateo-di

@mateo-di mateo-di commented Dec 3, 2025

Copy link
Copy Markdown
Collaborator

Description

Shortcut

  • Autolink: [sc-521238]

Changes the upstream sync architecture to use a dedicated sync branch instead of creating PRs directly from main. This enables pushing conflict resolution commits directly to the existing PR.

Architecture Change

Before (2 PRs, confusing)

main → PR #1 to carto/main (conflicts!)
     └── Can't push to main
         └── PR #2: upstream-sync-resolver/XX → carto/main (separate)

After (1 PR, clean)

main → upstream-sync/vX.Y.Z (dedicated branch)
     └── PR to carto/main
         └── Conflicts? Push resolution to same branch (PR auto-updates)

Changes

File Change
carto-upstream-sync.yml Creates upstream-sync/vX.Y.Z branch from main before creating PR
carto-upstream-sync-resolver.yml Pushes to existing sync branch instead of creating new PR

Benefits

  • Single PR workflow - No separate resolution PR needed
  • Cleaner git history - All sync work in one place
  • Less confusion - Obvious which PR to merge
  • Deterministic - Git operations hardcoded in workflow, not in Claude prompt

Type of change

  • Fix

Acceptance

  1. Close PR fix: resolve conflicts for upstream sync PR #41 #45 and 🔄 sync: upstream v1.79.3-stable #41 (created with old broken workflow)
  2. Trigger upstream sync workflow manually or wait for Monday schedule
  3. Verify single PR is created with upstream-sync/vX.Y.Z branch
  4. If conflicts, verify resolver pushes to same PR (no new PR created)

Basic checklist

  • Good PR name
  • Shortcut link
  • Just one issue per PR
  • GitHub labels
  • Proper status & reviewers
  • Tests (N/A - workflow change)
  • Documentation (self-documenting)

Changes the upstream sync architecture to use a dedicated sync branch
instead of creating PRs directly from main. This enables pushing
conflict resolution commits directly to the existing PR.

Architecture changes:
- upstream-sync.yml: Creates upstream-sync/vX.Y.Z branch from main
- resolver.yml: Pushes to existing sync branch instead of creating new PR

Benefits:
- Single PR workflow (no separate resolution PR)
- Cleaner git history
- Less confusion about which PR to merge
- Deterministic git operations (hardcoded in workflow, not Claude prompt)
Updates documentation to reflect the new upstream sync workflow:
- Added single-PR workflow architecture diagram
- Updated branch strategy to include upstream-sync/* branches
- Added critical merge instructions (never squash/rebase)
- Updated conflict resolution troubleshooting
- Added resolver workflow to CARTO-specific changes list
@mateo-di
mateo-di merged commit 899f187 into carto/main Dec 3, 2025
3 of 4 checks passed
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