날짜 비워 두기: BazelCon 2023이 10월 24~25일에 Google 뮌헨에서 열립니다. 등록이 시작되었습니다. 자세히 알아보기

Bazel 로드맵

개요

Bazel 프로젝트는 사용자의 요구사항에 따라 지속적으로 발전하며 핵심 제품의 성능을 유지, 리팩터링하고 개선하는 동시에 기능을 개발하고 지원을 제공합니다.

이러한 변경을 통해 오픈소스 커뮤니티에 정보를 제공하고 포용할 수 있는 방법을 찾고자 합니다. 이 로드맵은 Bazel 개발의 미래를 위한 현재 이니셔티브와 예측을 설명하여 현재 우선순위와 진행 중인 프로젝트에 대한 정보를 제공합니다.

이 로드맵은 타겟을 타겟팅하므로 보장해서는 안 됩니다. 우선순위는 개발자 및 고객의 피드백이나 새로운 시장 기회에 따라 변경될 수 있습니다.

이 로드맵 업데이트를 포함하여 새 기능에 대한 알림을 받으려면 Google 그룹 커뮤니티에 가입하세요.

Q4 — Bazel 6.0 출시

4분기에는 새로운 장기적 지원 (LTS) 버전인 Bazel 6.0이 도입됩니다. Bazel 6.0에는 종속 항목 관리, Android를 사용한 개발 등을 위해 커뮤니티에서 요청한 강력한 기능이 포함될 예정입니다.

Bzlmod: 외부 종속 항목 관리 시스템

Bzlmod는 전이 종속 항목을 자동으로 해결하여 빠르고 리소스를 효율적으로 유지하면서 프로젝트를 확장할 수 있습니다. Bazel 5.0에 실험적으로 도입된 Bzlmod는 정식 버전으로 제공되며 다이아몬드 종속 항목 문제에 대한 해결책을 제공합니다.

  • Bzlmod가 ‘실험용’에서 ‘일반 안정화 버전’으로 변경됨
  • rules\_jvm\_external 지원을 포함하여 사용자가 자바 프로젝트의 Maven 종속 항목을 다운로드할 수 있습니다.
  • Bzlmod 이전 가이드는 Bzlmod를 채택하려는 팀에 도구, 스크립트, 문서를 제공합니다.
  • Bazel 중앙 저장소는 핵심 Bazel BUILD 규칙(rules\_jvm\_external, rules\_go, rules\_python, rules\_nodejs) 및 Bzlmod에 필요한 핵심 종속 항목을 호스팅합니다.

이 개발에 관한 자세한 내용은 Bzlmod 커뮤니티 업데이트를 시청하거나 원본 디자인 문서를 읽어보세요.

Bazel을 사용한 Android 앱 빌드

Bazel 6.0에는 개선된 도구 및 병합된 커뮤니티 기능 참여가 포함됩니다. 채택 확대와 코드베이스 확대를 예상하고 Bazel팀은 Android 빌드 도구를 Bazel Android 규칙과 통합하는 것을 우선시할 것입니다.

  • D8을 v. 3.3.28로 업데이트하고 기본 dexer로 설정합니다.
  • 5.X에 추가된 기본 커뮤니티 기능 참여 병합:
    • D8을 사용하는 영구 작업자
    • D8을 사용한 디슈가링
    • Android 매니페스트에서 'uses-permissions' 태그 병합
    • Android 리소스 처리의 멀티플렉스 작업자

선택적 도구 모음

Google의 개발자 만족도 설문조사에 따르면 규칙 작성자가 더 많은 도구 모음 개발에 대한 지원을 원하고 있습니다. 작성자는 Bazel 6.0을 통해 다른 플랫폼의 대체 구현과 함께 사용 가능한 경우 선택사항인 고성능 도구 모음을 사용하여 규칙을 작성할 수 있습니다.

Bazel-JetBrains* IntelliJ IDEA 지원

JetBrains는 Bazel과 협력하여 Bazel IntelliJ IDEA 플러그인을 공동 유지 관리함으로써 커뮤니티 관리 기능을 높이고 기능 요청 및 개발을 위한 용량을 제공하는 것을 목표로 하고 있습니다.

  • IntelliJ 플러그인 v. 2022.2는 최신 JetBrains 플러그인 출시를 지원합니다.
  • 원격 개발과의 호환성 향상
  • Scala 지원과 같은 진행 중인 기능을 위한 커뮤니티 중심 개발도 추가로 진행됩니다.

이 개발에 관한 자세한 내용은 Bazel-JetBrains 블로그 공지사항을 참고하세요.

향후 개발

향후 Bazel팀은 2023년 이후에도 개발을 시작하거나 다음 기능의 우선순위를 정할 것으로 예상됩니다.

Bazel의 Android 빌드 규칙 개선

Android 앱 개발 환경에 계속 투자하여 빌드, 테스트, 배포를 통한 워크플로에 집중합니다.

  • R8로 이전 및 지원
  • Starlark 언어로의 번역을 포함한 Android 규칙 업데이트
  • App Bundle 지원
  • 최신 NDK 버전 지원
  • 테스트 코드 범위

OSS 라이선스 규정 준수 도구

개발자는 포함된 패키지의 가용성과 보안을 보장하기 위해 강력한 라이선스 규정 준수 검사기를 요청했습니다. 이 프로젝트에서는 특정 소프트웨어 구성요소와 관련된 규정 준수 및 라이선스 위험을 식별하고 완화할 수 있는 일련의 규칙과 도구를 제공합니다. 대상 기능은 다음과 같습니다.

  • 지정된 대상에서 사용하는 패키지를 감사하는 기능
  • 조직별 라이선스 규정 준수 확인을 구축할 수 있습니다.

GitHub에서 진행 중인 rules_license 구현을 참조하세요.

Bzlmod: 외부 종속 항목 관리 시스템

Bzlmod를 출시하면 전이 종속 항목의 확장성과 안정성이 향상됩니다. 앞으로 3년 동안 Bzlmod는 기본 Bazel 작업공간 종속 항목 관리 하위 시스템인 WORKSPACE를 대체하는 것을 목표로 합니다. 타겟팅된 기능은 다음과 같습니다.

  • 밀폐 빌드 지원
  • 버전이 지정된 참조 규칙을 로컬 사본에 고정하는 공급업체/오프라인 모드
  • Bazel Central Registry는 정기적인 커뮤니티 기여 및 주요 Bazel 규칙 및 프로젝트 채택을 포함합니다.
  • Bzlmod가 Bazel 프로젝트를 빌드하는 기본 도구가 됨

서명된 빌드

Bazel은 Google 키로 서명된 Windows 및 Mac용 신뢰할 수 있는 바이너리를 제공합니다. 이 기능을 사용하면 멀티 플랫폼 개발자/dev-ops에서 Bazel 바이너리의 소스를 식별하고 검증되지 않은 악성 바이너리로부터 시스템을 보호할 수 있습니다.

표준화된 플랫폼 API

새로운 Platforms API는 여러 언어를 사용하는 다중 플랫폼 빌드의 아키텍처 구성을 표준화합니다. 이 기능을 통해 개발자는 큰 빌드에서 비용이 많이 드는 개발 시간 오류와 복잡성을 줄일 수 있습니다.

빌드 분석 측정항목

Bazel 원격 분석은 개발자가 자체 빌드 성능을 최적화할 수 있도록 분석 단계 시간 측정항목을 제공합니다.

'바이트 없이 빌드'를 사용한 원격 실행

바이트가 없는 빌드는 Bazel이 필요한 아티팩트만 다운로드하도록 허용하여 성능을 최적화하므로 네트워크 대역폭에서의 빌드 병목 현상을 방지합니다. 원격 빌드에 추가된 기능은 다음과 같습니다.

  • 비동기 다운로드를 사용하여 로컬 및 원격 작업이 종속 출력을 다운로드하는 즉시 시작할 수 있도록 합니다.
  • 심볼릭 링크 지원 추가
  • 빌드가 완료되면 원격 작업에서 중간 출력 검색

*Copyright © 2022 JetBrains s.r.o. JetBrains 및 IntelliJ는 JetBrains s.r.o의 등록 상표입니다.