Lộ trình của Bazel

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à cung cấp dịch vụ hỗ trợ trong khi 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 thông báo và mời cộng đồng nguồn mở của mình tham gia. Lộ trình này mô tả các sáng kiến hiện tại và dự đoán về tương lai của quá trình phát triển Bazel, giúp bạn nắm được các ưu tiên hiện tại và dự án đang triển khai.

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

Để được thông báo về các tính năng mới (bao gồm cả thông tin 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 sẽ có Bazel 6.0 – phiên bản hỗ trợ dài hạn (LTS) mới. Bazel 6.0 dự định sẽ có các tính năng mới mạnh mẽ và được cộng đồng yêu cầu để quản lý 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 giải quyết các phần phụ thuộc bắc cầu, cho phép các dự án mở rộng quy mô trong khi vẫn nhanh chóng và tiết kiệm tài nguyên. Được giới thiệu dưới dạng thử nghiệm trong Bazel 5.0, Bzlmod sẽ được cung cấp rộng rãi và đưa ra giải pháp cho vấn đề về phần phụ thuộc kim cương.

Để biết thêm thông tin về quá trình phát triển này, hãy xem thông tin cập nhật về 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ó các công cụ được cải thiện và các đóng góp về tính năng của cộng đồng được hợp nhất. Dự đoán việc áp dụng thêm và cơ sở mã ngày càng tăng, nhóm Bazel sẽ ưu tiên tích hợp các công cụ tạo Android với các quy tắc Android của Bazel.

  • Cập nhật D8 lên phiên bản 3.3.28 và đặt làm dexer mặc định.
  • Hợp nhất với các đóng góp về tính năng chính của cộng đồng được thêm vào phiên bản 5.X, bao gồm cả tính năng hỗ trợ cho:
    • Worker liên tục với D8
    • Đơn giản hoá bằng D8
    • Hợp nhất các thẻ "uses-permissions" trong tệp kê khai Android
    • Worker đa hợp 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 về Mức độ hài lòng của nhà phát triển cho thấy rằng tác giả quy tắc muốn được hỗ trợ để phát triển thêm chuỗi công cụ. Bazel 6.0 sẽ cho phép tác giả viết quy tắc bằng chuỗi công cụ hiệu suất cao không bắt buộc khi có sẵn với cách 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 để cùng duy trì trình bổ trợ Bazel IntelliJ IDEA, hỗ trợ mục tiêu tăng cường quyền quản lý cộng đồng và mở rộng năng lực cho các yêu cầu và quá trình phát triển 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 quá trình phát triển từ xa
  • Thúc đẩy quá trình phát triển dựa trên cộng đồng cho các tính năng đang triển khai, chẳng hạn như 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 Bazel-JetBrains.

Quá trình phát triển trong tương lai

Trong tương lai, nhóm Bazel đã bắt đầu phát triển hoặc dự kiến sẽ ưu tiên các tính năng sau đây trong năm 2023 và sau đó.

Cải thiện các quy tắc tạo 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 làm việc thông qua quá trình tạo, kiểm thử và triển khai.

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

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

Nhà phát triển yêu cầu một trình kiểm tra tuân thủ giấy phép mạnh mẽ để đảm bảo tính khả dụng và bảo mật của các gói được đưa vào. 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 các 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 tạo các quy trình kiểm tra tuân thủ giấy phép dành riêng cho tổ chức.

Xem quá trình triển khai rules_license đang diễn ra 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 mở rộng và độ tin cậy của các phần phụ thuộc bắc cầu. Trong 3 năm tới, Bzlmod hướng đến việc thay thế WORKSPACE làm hệ thống con quản lý phần phụ thuộc mặc định của không gian làm việc Bazel. Các tính năng mục tiêu bao gồm:

  • Hỗ trợ các bản dựng khép kín
  • Ghim phiên bản tham chiếu được phiên bản của nhà cung cấp/chế độ ngoại tuyến vào bản sao cục bộ
  • Sổ đăng ký trung tâm của Bazel bao gồm việc cộng đồng đóng góp và áp dụng thường xuyên các quy tắc và dự án chính của Bazel
  • Bzlmod trở thành công cụ mặc định để tạo 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á của Google. Tính năng này cho phép nhà phát triển/nhà phát triển hoạt động trên nhiều nền tảng xác định nguồn của 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 tiêu chuẩn hoá

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

Chỉ số phân tích bản dựng

Dữ liệu đo từ xa của Bazel sẽ cung cấp các chỉ số về 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 "Bản dựng không có byte"

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, ngăn các bản dựng bị nghẽn băng thông mạng. Các tính năng được thêm vào cho bản dựng từ xa bao gồm:

  • Sử dụng tính năng tải không đồng bộ để cho phép các thao tác cục bộ và từ xa bắt đầu ngay khi tải các đầu ra phụ thuộc xuống
  • Thêm tính năng hỗ trợ Symlink
  • Truy xuất đầu ra trung gian từ các thao tác từ xa sau khi bản dựng hoàn tất

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