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 mong muốn cung cấp thông tin và đưa cộng đồng nguồn mở của mình vào quá trình phát triển. 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 rõ cá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óm tắt về các mục tiêu và không nên được coi là sự đảm bảo. 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.
Để 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ự đị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ý 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 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 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 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 hình kim cương.
- Bzlmod chuyển từ trạng thái "thử nghiệm" sang "phát hành rộng rãi"
- Bao gồm tính năng hỗ trợ cho
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
BUILDcố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 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 rằng sẽ có nhiều người dùng hơn và cơ sở mã sẽ phát triển, 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 một cách triển khai dự phòng cho các nền tảng khác.
Hỗ trợ IntelliJ IDEA của Bazel-JetBrains*
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 khả năng quản lý cộng đồng và mở rộng năng lực cho các yêu cầu về tính năng và quá trình 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ợ 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ư tính năng 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à tính bảo mật của các gói được đưa vào. Dự án này cung cấp một tập hợp các 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 cách 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 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 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ộ
- Bazel Central Registry (Sổ đăng ký trung tâm 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 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 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.
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 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.
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ố 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 tính năng "Bản dựng không có byte"
Tính năng 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 chặn tình trạng 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 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 các đầu ra phụ thuộc xuống
- Thêm tính năng hỗ trợ 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 hoàn tất bản dựng
*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.