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à 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 mong muốn cung cấp thêm thông tin cho cộng đồng nguồn mở của mình. 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 phát triển của Bazel, giúp bạn nắm được những ưu tiên hiện tại và các dự án đang thực hiện.

Lộ trình này cung cấp thông tin tổng quan nhanh về các mục tiêu và không nên coi là yếu tố đảm bảo. Các mức độ ưu tiên có thể thay đổi theo 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.

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

Q4 — Bản phát hành Bazel 6.0

Quý 4 mang đến Bazel 6.0 – phiên bản hỗ trợ dài hạn (LTS) mới. Bazel 6.0 dự định bổ sung các tính năng mới mạnh mẽ và theo yêu cầu của cộng đồng để quản lý các phần phụ thuộc, phát triển bằng Android, v.v.

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 dự án mở rộng quy mô trong khi vẫn duy trì tốc độ nhanh và tiết kiệm tài nguyên. Được 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 của kim cương.

  • Bzlmod đi từ "thử nghiệm" sang "phát hành rộng rãi"
  • Có tính năng 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 của 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 chính của Bazel BUILD (rules\_jvm\_external, rules\_go, rules\_python, rules\_nodejs) và các phần phụ thuộc chính 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 thông tin cập nhật về cộng đồng Bzlmod hoặc đọc tài liệu thiết kế gốc.

Bản dựng ứng dụng Android bằng Bazel

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

Để biết thêm 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 đây 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 làm việc thông qua việc xây dựng, thử nghiệm và triển khai.

  • Di chuyển sang và hỗ trợ R8
  • Nội dung cập nhật đối với các quy tắc của Android, bao gồm cả bản dịch sang ngôn ngữ Starlark
  • Hỗ trợ 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 trình kiểm tra mạnh mẽ để kiểm tra tính tuân thủ của giấy phép 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 cũng như 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 được một mục tiêu nhất định sử dụng
  • Khả năng xây dựng các quy trình kiểm tra việc tuân thủ giấy phép dành riêng cho tổ chức.

Xem việc triển khai quy tắc_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 ba năm tới, Bzlmod đặt mục tiêu thay thế WORKSPACE làm hệ thống con quản lý phần phụ thuộc không gian làm việc Bazel mặc định. Các tính năng được nhắm mục tiêu bao gồm:

  • Hỗ trợ các bản dựng Hermetic
  • Ghim phiên bản của nhà cung cấp/chế độ ngoại tuyến tham chiếu đến bản sao cục bộ
  • Cơ quan Đăng ký Trung tâm Bazel bao gồm hoạt động đóng góp của cộng đồng thường xuyên 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 tệp nhị phân Bazel và bảo vệ hệ thống của họ khỏi tệp nhị phân độc hại, chưa được xác minh.

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

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

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

Công nghệ đo từ xa của Bazel sẽ cung cấp các chỉ số thời gian theo giai đoạn phân tích, giúp nhà phát triển tối ưu hoá hiệu suất của bản dựng.

Thực thi từ xa bằng "Bản dựng không có byte"

Các 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 bản dựng không bị tắc nghẽn về băng thông mạng. Các tính năng được thêm cho 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 sau khi chúng tải các kết quả đầu ra phụ thuộc xuống
  • Thêm tính năng hỗ trợ Symlinks
  • Truy xuất đầu ra trung gian từ các hành động 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à các nhãn hiệu đã đăng ký của JetBrains s.r.o.