Bazel 로드맵

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

개요

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

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

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

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

4분기 — Bazel 6.0 출시

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

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

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

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

이 개발에 대한 자세한 내용은 Bzlmod 커뮤니티 업데이트를 시청하거나 원본 설계 문서를 참고하세요.

Bazel을 사용한 Android 앱 빌드

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

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

선택적 도구 모음

개발자 만족도 설문조사에 따르면 규칙 작성자는 도구 모음 개발을 위한 추가 지원을 원하고 있습니다. 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는 전이 종속 항목의 확장성과 안정성을 개선합니다. Bzlmod는 향후 3년간 WORKSPACE를 기본 Bazel 워크스페이스 종속 항목 관리 하위 시스템으로 대체하는 것을 목표로 합니다. 타겟팅된 기능은 다음과 같습니다.

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

서명된 빌드

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

표준화된 플랫폼 API

새 Platforms API는 다국어 멀티플랫폼 빌드의 아키텍처 구성을 표준화합니다. 이 기능을 사용하면 개발자는 대규모 빌드에서 비용이 많이 드는 개발 시간 오류와 복잡성을 줄일 수 있습니다.

분석 측정항목 빌드

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

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

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

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

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