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ở 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à 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.
Để đượ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ý 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 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.
- Bzlmod chuyển từ giai đoạn "thử nghiệm" sang "cung cấp rộng rãi"
- 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 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 của 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 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ụ xây dựng 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 cách sử dụ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 quản lý cộng đồng và mở ra khả năng cho 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 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.
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 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 quá trình xây dựng, 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 xây dựng 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 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 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 nhà cung cấp/chế độ ngoại tuyến tham chiếu các quy tắc được phiên bản hoá vào bản sao cục bộ
- Bazel Central Registry (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 để 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 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 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 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 xây 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 các bản dựng bị nghẽm 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 hành động 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ợ Symlinks
- Truy xuất các đầ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.