Tổng quan
Dự án Bazel không ngừng 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 mong muốn cộng đồng nguồn mở của mình luôn nắm bắt được thông tin và tham gia vào quá trình này. 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 mức độ ưu tiên hiện tại và các dự án đang diễn ra.
Lộ trình này chỉ là thông tin tổng quan về các mục tiêu và không được coi là thông tin đảm bảo. Cá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á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ả 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ự kiến sẽ có các tính năng mới mạnh mẽ 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à 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 các dự án mở rộng quy mô trong khi vẫn duy trì tốc độ và hiệu quả sử dụng 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ề sự phụ thuộc theo hình kim cương.
- Bzlmod chuyển từ "thử nghiệm" sang "phát hành công khai"
- 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 những 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
cốt lõi của Bazel (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 về sự 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ế ban đầu.
Tạo ứng dụng Android bằng Bazel
Bazel 6.0 sẽ có các công cụ được cải tiến và các tính năng do cộng đồng đóng góp đượ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 việc tích hợp các công cụ tạo Android với các quy tắc 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 các đóng góp cho tính năng cộng đồng chính đượ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 có D8
- Đơn giản hoá bằng D8
- Hợp nhất thẻ "uses-permissions" trong tệp kê khai Android
- Nhân viên ghép kênh 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 các 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 các quy tắc bằng cách sử dụng một chuỗi công cụ hiệu suất cao (không bắt buộc) khi có sẵn một 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 sở hữu của cộng đồng và mở ra khả năng cho các yêu cầu về tính năng cũng như hoạt động phát triển.
- Trình bổ trợ IntelliJ phiên bản 2022.2 hỗ trợ bản phát hành trình bổ trợ mới nhất của JetBrains
- Tăng khả năng tương thích với hoạt động 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ề sự 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
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à những năm tiếp theo.
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 thông qua việc tạo, kiểm thử và triển khai.
- Di chuyển sang và hỗ trợ R8
- Các điểm cập nhật cho quy tắc Android, bao gồm cả việc 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
Các nhà phát triển yêu cầu một trình kiểm tra việc 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 các rủi ro về việc tuân thủ và cấp 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 việc tuân thủ giấy phép dành riêng cho tổ chức.
Xem quy 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 sẽ 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 được nhắm đến bao gồm:
- Hỗ trợ các bản dựng khép kín
- Nhà cung cấp/chế độ ngoại tuyến ghim các quy tắc tham chiếu có phiên bản vào một bản sao cục bộ
- Sổ đăng ký trung tâm Bazel bao gồm hoạt động đóng góp thường xuyên của cộng đồng và việc áp dụng các quy tắc cũng như dự án chính của Bazel
- Bzlmod trở thành công cụ mặc định để tạo 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á của Google. Tính năng này cho phép các nhà phát triển/nhà điều hà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.
Standardized Platforms API
Platforms API mới sẽ 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 tốn kém trong thời gian phát triển và độ phức tạp trong các bản dựng lớn.
Tạo chỉ số phân tích
Dữ liệu đo từ xa của Bazel sẽ cung cấp các chỉ số về thời gian của 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ó 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ị 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 thao tác cục bộ và từ xa bắt đầu ngay khi 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 các đầu ra trung gian từ các thao tác từ xa sau khi quá trình tạo 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.