Meta에서 Buck의 새버전으로 만든 Buck2의 특징을 설명한 글입니다. Google이 내부에서 사용하는 빌드 도구인 Blaze가 있는데 Google이 오랜동안 빌드를 고민한 결과 빌드 파일
Meta에서 Buck의 새버전으로 만든 Buck2의 특징을 설명한 글입니다. Google이 내부에서 사용하는 빌드 도구인 Blaze가 있는데 Google이 오랜동안 빌드를 고민한 결과 빌드 파일을 스크립팅 언어등을 지정하는 것이 아닌 출력할 아티팩트, 의존성 등을 매니패스트에 선언하는 아티팩트 기반 빌드도구이고 Blaze를 기반으로 해서 Bazel이라는 빌드도구를 오픈소스로 공개했습니다. Buck2도 이 Bazel과 같은 아티팩트 기반 빌드도구이고 표준 API도 따르고 있고 Rust로 만들었다고 알려졌습니다. 이 글을 쓴 BuildBuddy는 Bazel의 원격 실행 및 캐시 등 엔터프라이즈 기능을 제공하는 서비스로 Bazel이 주력이긴 하지만 새로나온 Buck2를 테스트해 보았습니다. - Bazel보다 훨씬 빨라졌다. - 원격 실행을 우선 진행해서 로컬 샌드박싱이 없는데 첨엔 이상하게 느껴졌지만 막상 쓰니 어색하지 않았다. - 표준 API를 써서 BuildBuddy와도 바로 호환되었다. - CLI의 UX가 좋다. 단점으로는 빌드 내부가 여러 단계로 구성되어 있어서 복잡하고 아직 빌드관련 텔레메트리를 제공하지 않고 의존성 등을 설치하는데 보통 사용하는 레포지토리 단계가 없어서 빌드에 필요한 의존성 설정 등이 어려운 점이라고 합니다. https://www.buildbuddy.io/blog/buck2-review/