Bazel 로드맵

문제 신고 소스 보기 Nightly · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

개요

Bazel 커뮤니티 여러분, 새해 복 많이 받으세요. 새해를 맞아 2023년 로드맵에 대한 세부정보를 제공할 예정입니다. 작년에 Google은 Bazel 6.0 계획과 함께 2022년 로드맵을 게시했습니다. 제공된 로드맵이 빌드 도구 요구사항을 파악하는 데 도움이 되었기를 바랍니다. Bazel 프로젝트는 사용자의 요구에 따라 계속해서 발전하고 있습니다. 2023년 업데이트를 공유합니다.

이번 변경사항을 통해 오픈소스 커뮤니티에 정보를 제공하고 참여를 유도하고자 합니다. 이 로드맵에서는 현재 이니셔티브와 향후 Bazel 개발에 대한 예측을 설명하여 현재 우선순위와 진행 중인 프로젝트를 파악할 수 있도록 합니다.

Bazel 7.0 출시

Google은 2023년 말에 Bazel 7.0 장기 지원 (LTS)을 제공할 계획입니다. Bazel 7.0에서는 진행 중인 많은 항목을 제공하고 사용자가 요청한 기능 개선을 계속 진행할 계획입니다.

교차 플랫폼 캐시 공유 개선

주로 Java/Kotlin 및 Android 개발을 위해 캐시된 아티팩트를 다양한 빌드 로컬 (Mac) 및 원격 (Linux) 빌드 플랫폼에서 공유할 수 있도록 지원하여 성능을 개선하고 캐시를 효율적으로 사용합니다.

Bazel을 사용한 Android 앱 빌드

Android 앱 개발자가 tools:node="merge"와 같은 최신 매니페스트 병합 기능을 사용할 수 있도록 매니페스트 및 리소스 병합 도구가 v30.1.3으로 업데이트되었습니다.

원격 실행 개선사항

Bazel 7.0은 비동기 실행을 지원하여 --jobs 플래그를 통한 동시 실행 증가를 통해 원격 실행 속도를 높입니다.

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

Bzlmod는 전이 종속 항목을 자동으로 확인하여 프로젝트를 확장하면서도 빠르고 리소스 효율적일 수 있도록 합니다. Bazel 7.0에는 다음을 비롯한 Bazel의 외부 종속 항목 관리 기능에 관한 여러 개선사항이 포함되어 있습니다.

  • Bazel의 외부 종속 항목 관리를 위해 기본적으로 Bzlmod가 사용 설정됨
  • 잠금 파일 지원: Bzlmod를 사용하여 격리된 빌드를 사용 설정합니다.
  • 공급업체/오프라인 모드 지원: 사용자가 사전 다운로드된 종속 항목으로 빌드를 실행할 수 있습니다.
  • 전체 저장소 캐시 지원 (아티팩트 다운로드뿐만 아니라 최종 저장소 콘텐츠도 캐싱)
  • Bazel Central Registry에는 정기적인 커뮤니티 참여와 주요 Bazel 규칙 및 프로젝트 채택이 포함됩니다.

분석 측정항목 빌드

Bazel 7.0은 분석 단계 시간 측정항목을 제공하므로 개발자가 자체 빌드 성능을 최적화할 수 있습니다.

기본적으로 바이트가 사용 설정되지 않은 빌드

바이트가 없는 빌드는 중간 아티팩트의 다운로드를 방지하고 빌드가 네트워크 대역폭에서 병목 현상을 일으키지 않도록 하여 성능을 최적화합니다. 추가된 기능은 다음과 같습니다.

  • 아티팩트가 조기에 제거될 때 사용자가 오류를 겪지 않도록 리스 서비스로 원격 캐시 제거 지원

  • 심볼릭 링크 지원의 기능 격차 해결

  • 원격 작업에서 중간 출력을 검색하는 옵션 제공

Skymeld로 생산성 높이기

Bazel 7.0에서는 멀티 타겟 빌드의 실행 시간을 단축하는 평가 모드인 Skymeld를 도입합니다. Skymeld는 분석 단계와 실행 단계 간의 장벽을 제거하여 특히 여러 최상위 타겟이 있는 빌드의 빌드 속도를 개선합니다. 단일 타겟 빌드의 경우 큰 차이가 없을 것으로 예상됩니다.

Bazel 생태계 및 도구

Bazel을 사용한 Android 앱 빌드

  • Android 네이티브 규칙을 Starlark로 이전: Bazel 7.0의 경우 Android 규칙이 Bazel 자체에서 개발을 분리하고 커뮤니티 참여를 더 효과적으로 지원하기 위해 Starlark로 이전됩니다. 또한 이러한 규칙을 핵심 Bazel 바이너리와 독립적으로 만들어 더 자주 출시할 수 있습니다.
  • Android 규칙을 Starlark로 이전
  • R8 지원: Android 앱 개발자가 R8 업데이트 최적화를 사용할 수 있습니다.
  • 모바일 설치: Android 앱 개발자가 업데이트된 버전의 모바일 설치를 통해 Android 앱 변경사항을 빠르게 개발, 테스트, 배포할 수 있습니다.

소프트웨어 재료명세서 데이터 생성 (SBOM) 및 OSS 라이선스 규정 준수 도구

Bazel을 사용하면 개발자가 SBOM을 생성하는 데 도움이 되는 데이터를 생성할 수 있습니다. 이 데이터는 텍스트 또는 JSON 형식으로 출력되며 SPDX 또는 CycloneDX 사양을 충족하도록 쉽게 형식을 지정할 수 있습니다. 또한 이 프로세스는 Bazel 모듈에 제공되는 라이선스를 선언하는 규칙과 이러한 선언을 중심으로 프로세스를 빌드하는 도구를 제공합니다. GitHub에서 진행 중인 rules_license 구현을 참고하세요.

서명된 빌드

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

Java, C++, Python 규칙을 Starlark로 이전

Java, C++, Python 규칙 집합을 Starlark로 완전히 이전했습니다. 이를 통해 Bazel 사용자는 Bazel 바이너리 코드베이스가 아닌 규칙 집합만 포크할 수 있으므로

  • 필요에 따라 규칙 업데이트 및 맞춤설정
  • Bazel과 별개로 규칙 업데이트

Bazel-JetBrains* IntelliJ IDEA 지원

최신 JetBrains 플러그인 출시를 지원하기 위한 점진적 IntelliJ 플러그인 업데이트

이 로드맵은 타겟을 스냅샷으로 보여주며 보장으로 간주해서는 안 됩니다. 우선순위는 개발자 및 고객 의견 또는 새로운 시장 기회에 따라 변경될 수 있습니다.

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

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