GitHub, **Stacked PR** 기능으로 코드 리뷰 혁신을 시도하다!
GitHub, Stacked PR 기능을 출시하여 대규모 코드 변경을 작은 단위로 분할하여 관리할 수 있도록 지원
각 PR은 독립적으로 검토 가능하며, 한 번의 클릭으로 전체 스택을 병합할 수 있어 코드 리뷰 효율성을 향상시킴
gh stack CLI를 통해 스택 생성, 리베이스, PR 생성 등 다양한 작업을 터미널에서 수행 가능
일부 개발자는 기존 도구와의 차별성 부족 및 ghstack과의 유사성을 지적하며, 기능 개선을 요구함
Stacked PR의 핵심 기능: 종속성 관리
GitHub의 Stacked PR은 대규모 코드 변경(Large Diff)을 작은 단위의 PR로 분할하여 관리한다. 각 PR은 이전 PR을 기반으로 하며, 최종적으로 main 브랜치에 병합된다. GitHub UI는 스택 맵을 제공하여 리뷰어가 각 레이어를 쉽게 탐색하고, 브랜치 보호 규칙(Branch Protection Rules)을 적용할 수 있도록 지원한다. 또한, CI(Continuous Integration)는 최종 브랜치를 대상으로 하는 것처럼 각 PR에 대해 실행된다.
gh stack CLI: 터미널 기반 워크플로우
gh stack CLI는 스택 생성, 리베이스, 푸시, PR 생성 등 로컬 워크플로우를 간소화한다. 특히, `gs init`, `gs add`, `gs push`, `gs submit`과 같은 명령어를 통해 브랜치를 생성하고, 리베이스를 관리하며, GitHub에 푸시하고, PR을 생성하는 과정을 자동화한다. AI 코딩 에이전트(AI Coding Agents)와의 통합을 통해 자동화된 코드 리뷰 및 병합 프로세스를 구축할 수 있다.
커뮤니티 반응: 긍정적 기대와 비판적 시각
커뮤니티에서는 GitHub의 Stacked PR 기능 출시에 대해 긍정적인 반응과 함께, 기존 도구와의 차별성에 대한 의문을 제기한다. 특히, ghstack과의 유사성을 지적하며, GitHub이 기존 도구의 아이디어를 차용했다는 비판이 제기되었다. 또한, Stacked PR이 기존의 PR 프로세스(PR Process)를 개선하는 정도에 그친다는 의견도 존재한다.
리베이스 자동화 및 병합 전략
Stacked PR은 병합 후 나머지 PR을 자동으로 리베이스하여, 병합되지 않은 가장 낮은 PR이 기본 브랜치를 타겟하도록 한다. 이러한 자동 리베이스 기능은 수동 리베이스(Manual Rebase)의 번거로움을 줄여 개발 생산성을 향상시킨다. 또한, 각 PR은 직접 병합하거나 병합 큐를 통해 병합할 수 있어, 다양한 병합 전략(Merge Strategy)을 지원한다.