Lộ trình của Bazel

Báo cáo vấn đề Xem nguồn Nightly/3}

Tổng quan

Dự án Bazel liên tục phát triển để đáp ứng nhu cầu của bạn — phát triển các tính năng và hỗ trợ, đồng thời duy trì, tái cấu trúc và cải thiện hiệu suất của sản phẩm cốt lõi.

Với những thay đổi này, chúng tôi muốn cung cấp đầy đủ thông tin và sự tham gia cho cộng đồng nguồn mở. Lộ trình này mô tả các sáng kiến và dự đoán hiện tại về tương lai của việc phát triển Bazel, giúp bạn nắm rõ các ưu tiên hiện tại và các dự án đang thực hiện.

Lộ trình này nhắm đến mục tiêu tổng quan nhanh và bạn không nên coi đó là hành động đảm bảo. Các mức độ ưu tiên có thể thay đổi theo ý kiến phản hồi của nhà phát triển và khách hàng hoặc cơ hội mới trên thị trường.

Để nhận thông báo về các tính năng mới, bao gồm cả nội dung cập nhật về lộ trình này, hãy tham gia cộng đồng Nhóm Google.

Quý 4 — Bản phát hành Bazel 6.0

Quý 4 cung cấp Bazel 6.0 – phiên bản hỗ trợ dài hạn (LTS) mới. Bazel 6.0 dự định bao gồm các tính năng mới mạnh mẽ và được cộng đồng yêu cầu để quản lý các phần phụ thuộc, phát triển bằng Android và nhiều tính năng khác.

Bzlmod: hệ thống quản lý phần phụ thuộc bên ngoài

Bzlmod tự động phân giải các phần phụ thuộc bắc cầu, cho phép dự án mở rộng quy mô mà vẫn đảm bảo tốc độ và tiết kiệm tài nguyên. Ra mắt thử nghiệm trong Bazel 5.0, Bzlmod sẽ được phát hành rộng rãi và cung cấp giải pháp cho vấn đề về phần phụ thuộc kim cương.

  • Bzlmod chuyển từ "thử nghiệm" sang "thường có sẵn"
  • Hỗ trợ rules\_jvm\_external, cho phép người dùng tải các phần phụ thuộc Maven xuống cho các dự án Java
  • Hướng dẫn di chuyển Bzlmod cung cấp các công cụ, tập lệnh và tài liệu cho các nhóm muốn áp dụng Bzlmod
  • Kho lưu trữ trung tâm Bazel lưu trữ các quy tắc BUILD chính của Bazel (rules\_jvm\_external, rules\_go, rules\_python, rules\_nodejs) và các phần phụ thuộc khoá cần thiết cho Bzlmod

Để biết thêm thông tin về quá trình phát triển này, hãy xem bản cập nhật của cộng đồng Bzlmod hoặc đọc tài liệu thiết kế gốc.

Tạo ứng dụng Android bằng Bazel

Bazel 6.0 sẽ cải tiến các công cụ và tính năng hợp nhất cho tính năng trong cộng đồng. Dự kiến với việc áp dụng thêm và cơ sở mã ngày càng phát triển, đội ngũ Bazel sẽ ưu tiên tích hợp các công cụ xây dựng của Android với các quy tắc của Bazel Android.

  • Cập nhật D8 lên phiên bản 3.3.28 và đặt D8 làm dexer mặc định.
  • Hợp nhất với nội dung đóng góp cho tính năng chính của cộng đồng mà bạn đã thêm vào 5.X, bao gồm tính năng hỗ trợ cho:
    • D8 liên tục
    • Đơn giản hoá bằng D8
    • Hợp nhất các thẻ "uses-permissions" trong tệp kê khai Android
    • Trình chạy Multiplex trong quá trình xử lý tài nguyên Android

Chuỗi công cụ không bắt buộc

Khảo sát Mức độ hài lòng của nhà phát triển của chúng tôi cho thấy các tác giả quy tắc muốn được hỗ trợ để phát triển chuỗi công cụ hơn nữa. Bazel 6.0 sẽ cho phép tác giả viết quy tắc bằng một chuỗi công cụ không bắt buộc, có hiệu suất cao khi hoạt động cùng với phương thức triển khai dự phòng cho các nền tảng khác.

Hỗ trợ Bazel-JetBrains* IntelliJ IDEA

JetBrains đã hợp tác với Bazel để đồng duy trì trình bổ trợ Bazel IntelliJ IDEA, hỗ trợ mục tiêu tăng cường khả năng quản lý cộng đồng và giải phóng năng lực cho các yêu cầu phát triển và yêu cầu về tính năng.

  • Trình bổ trợ IntelliJ phiên bản 2022.2 hỗ trợ bản phát hành trình bổ trợ JetBrains mới nhất
  • Tăng khả năng tương thích với hoạt động phát triển từ xa
  • Đẩy mạnh việc phát triển dựa trên cộng đồng cho các tính năng đang được áp dụng, chẳng hạn như dịch vụ hỗ trợ Scala

Để biết thêm thông tin về quá trình phát triển này, hãy đọc thông báo trên blog của Bazel-JetBrains.

Phát triển trong tương lai

Sắp tới, đội ngũ Bazel đã bắt đầu phát triển hoặc dự định sẽ ưu tiên các tính năng sau trong năm 2023 và xa hơn nữa.

Cải thiện các quy tắc xây dựng Android của Bazel

Tiếp tục đầu tư vào trải nghiệm phát triển ứng dụng Android, tập trung vào quy trình xây dựng, kiểm thử và triển khai.

  • Di chuyển sang và hỗ trợ R8
  • Nội dung cập nhật các quy tắc của Android, bao gồm cả bản dịch sang ngôn ngữ Starlark
  • Hỗ trợ cho App Bundle
  • Hỗ trợ các phiên bản NDK gần đây
  • Kiểm thử mức độ sử dụng mã

Công cụ tuân thủ giấy phép OSS

Các nhà phát triển đã yêu cầu một công cụ kiểm tra tính tuân thủ giấy phép mạnh mẽ để đảm bảo tính sẵn có và tính bảo mật của các gói đi kèm. Dự án này cung cấp một bộ quy tắc và công cụ giúp xác định và giảm thiểu rủi ro về tuân thủ và giấy phép liên quan đến một thành phần phần mềm nhất định. Các tính năng mục tiêu bao gồm:

  • Khả năng kiểm tra các gói mà một mục tiêu nhất định sử dụng
  • Khả năng xây dựng quy trình kiểm tra việc tuân thủ giấy phép của từng tổ chức.

Xem quá trình triển khairules_License đang tiến hành trên GitHub.

Bzlmod: hệ thống quản lý phần phụ thuộc bên ngoài

Khi ra mắt, Bzlmod cải thiện khả năng có thể mở rộng và độ tin cậy của các phần phụ thuộc bắc cầu. Trong ba năm tới, Bzlmod hướng đến việc thay thế WORKSPACE thành hệ thống con quản lý phần phụ thuộc không gian làm việc mặc định của Bazel. Các tính năng được nhắm mục tiêu bao gồm:

  • Hỗ trợ các bản dựng khép kín
  • Ghim chế độ nhà cung cấp/chế độ ngoại tuyến sẽ tham chiếu các quy tắc tham chiếu vào bản sao cục bộ
  • Bazel Central Registry bao gồm sự đóng góp thường xuyên của cộng đồng và áp dụng các quy tắc và dự án chính của Bazel
  • Bzlmod trở thành công cụ mặc định để xây dựng các dự án Bazel

Bản dựng đã ký

Bazel sẽ cung cấp các tệp nhị phân đáng tin cậy cho Windows và Mac được ký bằng khoá Google. Tính năng này cho phép các nhà phát triển/nhà phát triển đa nền tảng xác định nguồn của các tệp nhị phân Bazel và bảo vệ hệ thống của họ khỏi các tệp nhị phân độc hại, chưa được xác minh.

API Nền tảng được chuẩn hoá

API Nền tảng mới sẽ chuẩn hoá cấu hình cấu trúc cho các bản dựng đa ngôn ngữ, đa nền tảng. Nhờ tính năng này, nhà phát triển có thể giảm thiểu các lỗi và độ phức tạp trong thời gian phát triển tốn kém trong các bản dựng lớn.

Xây dựng chỉ số phân tích

Dữ liệu đo từ xa của Bazel sẽ cung cấp các chỉ số thời gian trong giai đoạn phân tích, cho phép nhà phát triển tối ưu hoá hiệu suất bản dựng của riêng họ.

Thực thi từ xa bằng "Builds without the Bytes" (Bản dựng không có Bytes)

Bản dựng không có Byte sẽ tối ưu hoá hiệu suất bằng cách chỉ cho phép Bazel tải các cấu phần phần mềm cần thiết xuống, giúp các bản dựng không làm tắc nghẽn băng thông mạng. Các tính năng được thêm vào bản dựng từ xa bao gồm:

  • Sử dụng tính năng tải xuống không đồng bộ để cho phép các hành động cục bộ và từ xa bắt đầu ngay khi chúng tải xuống các đầu ra phụ thuộc
  • Thêm tính năng hỗ trợ Đường liên kết tượng trưng
  • Truy xuất đầu ra trung gian qua các thao tác từ xa sau khi quá trình tạo bản dựng hoàn tất

*Bản quyền © 2022 JetBrains s.r.o. JetBrains và IntelliJ là các nhãn hiệu đã đăng ký của JetBrains s.r.o.