block/buzz의 PoSTMEDIA 포크. 상위를 계속 병합한다.
- 포크 시점:
3c7f288c(2026-09-07) - 상위: https://github.com/block/buzz
- 운영: https://buzz.postmedia.ai
- 설계·계획:
PoSTMEDIA-AI내부 운영 저장소의docs/superpowers/
-
main은 절대 리베이스하지 않는다.git merge upstream/main만 쓴다. force push 금지. -
rerere가 켜져 있어야 한다 (git config rerere.enabled true). 같은 텍스트 충돌을 다음 병합부터 자동 해결한다. 상위가 하루 약 16커밋으로 움직이므로 필수다. -
락파일 3종은 손으로 병합하지 않는다. 항상 상위 것을 받고 재생성한다.
git checkout --theirs Cargo.lock desktop/src-tauri/Cargo.lock pnpm-lock.yaml docker run --rm -v "$PWD":/w -w /w rust:1.95-bookworm cargo generate-lockfile pnpm install --lockfile-only -
커스텀 코드는 새 파일에 둔다. 상위 파일 수정은 최후의 수단이며 아래 표에 기록한다. 목표는 25개 이하 유지.
-
저장소가 이미 설계해 둔 확장 지점을 먼저 쓴다:
preview-features.json,@protected-featuresalias,desktop/src-tauri/build.rs의BUZZ_BUILD_*컴파일 타임 변수, tauri--config델타 파일. -
리터럴 치환보다 식 치환을 선호한다. 예를 들어
block/buzz를 하드코딩한 URL은${{ github.server_url }}/${{ github.repository }}로 바꾼다. 식은 상위의 서식 변경에도 살아남는다.
| 파일 | 사유 | 커밋 |
|---|---|---|
.github/workflows/upstream-merge.yml (추가) |
주간 상위 병합 자동화. 상위 파일 수정 아님 | Task 13 |
상위 워크플로 파일은 삭제하거나 고치지 않는다. 가드가 걸린 것들은 포크에서
no-op이고, 그대로 두면 상위 개선이 병합으로 계속 흘러들어온다. 특히
windows-canary.yml과 release.yml은 계획 2의 데스크톱 빌드 템플릿이다.
대신 비용이 드는 push/pull_request 트리거 워크플로는 Actions 설정에서
비활성화한다(gh workflow disable). 이 상태는 git 밖에 있으므로 병합이
영구히 깔끔하다. 필요할 때 개별로 다시 켠다.
renovate.json은 남겨둔다. Renovate GitHub App을 포크에 설치하지 않는 한
동작하지 않으므로 무해하다. 설치하지 않는다.