Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 2.4 KB

FORK.md

File metadata and controls

47 lines (35 loc) · 2.4 KB

포크 관리 기록

block/buzz의 PoSTMEDIA 포크. 상위를 계속 병합한다.

규칙

  • 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-features alias, desktop/src-tauri/build.rs의 BUZZ_BUILD_* 컴파일 타임 변수, tauri --config 델타 파일.

  • 리터럴 치환보다 식 치환을 선호한다. 예를 들어 block/buzz를 하드코딩한 URL은 ${{ github.server_url }}/${{ github.repository }} 로 바꾼다. 식은 상위의 서식 변경에도 살아남는다.

상위 파일 수정 목록

파일 사유 커밋
.github/workflows/upstream-merge.yml (추가) 주간 상위 병합 자동화. 상위 파일 수정 아님 Task 13

Actions 정책

상위 워크플로 파일은 삭제하거나 고치지 않는다. 가드가 걸린 것들은 포크에서 no-op이고, 그대로 두면 상위 개선이 병합으로 계속 흘러들어온다. 특히 windows-canary.yml과 release.yml은 계획 2의 데스크톱 빌드 템플릿이다.

대신 비용이 드는 push/pull_request 트리거 워크플로는 Actions 설정에서 비활성화한다(gh workflow disable). 이 상태는 git 밖에 있으므로 병합이 영구히 깔끔하다. 필요할 때 개별로 다시 켠다.

renovate.json은 남겨둔다. Renovate GitHub App을 포크에 설치하지 않는 한 동작하지 않으므로 무해하다. 설치하지 않는다.