Tổng quan
Chúc cộng đồng Bazel của chúng ta một năm mới an khang thịnh vượng. Trong năm mới, chúng tôi dự định sẽ cung cấp thông tin chi tiết về lộ trình của mình cho năm 2023. Năm ngoái, chúng tôi đã công bố lộ trình năm 2022 cùng với kế hoạch về Bazel 6.0. Chúng tôi hy vọng lộ trình này đã cung cấp thông tin về nhu cầu của bạn đối với công cụ xây dựng. Dự án Bazel tiếp tục phát triển để đáp ứng nhu cầu của bạn. Vì vậy, chúng tôi muốn chia sẻ thông tin cập nhật về dự án này trong năm 2023.
Thông qua những thay đổi này, chúng tôi muốn đảm bảo cộng đồng nguồn mở luôn được cập nhật thông tin và được 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 việc phát triển Bazel, giúp bạn nắm được các ưu tiên hiện tại và các dự án đang diễn ra.
Bản phát hành Bazel 7.0
Chúng tôi dự định cung cấp dịch vụ hỗ trợ dài hạn (LTS) cho Bazel 7.0 vào cuối năm 2023. Với Bazel 7.0, chúng tôi đặt mục tiêu cung cấp nhiều mục đang trong quá trình phát triển và tiếp tục cải tiến các tính năng mà người dùng yêu cầu.
Chia sẻ bộ nhớ đệm trên nhiều nền tảng hiệu quả hơn
Cho phép chia sẻ các cấu phần phần mềm được lưu vào bộ nhớ đệm trên nhiều nền tảng bản dựng cục bộ (Mac) và từ xa (Linux), chủ yếu dành cho việc phát triển Java/Kotlin và Android, nhờ đó mang lại hiệu suất tốt hơn và sử dụng bộ nhớ đệm hiệu quả.
Bản dựng ứng dụng Android bằng Bazel
Trình hợp nhất tệp kê khai và tài nguyên cập nhật lên phiên bản 30.1.3 để nhà phát triển ứng dụng Android có thể sử dụng các tính năng hợp nhất tệp kê khai mới hơn như tools:node="merge".
Cải tiến tính năng thực thi từ xa
Bazel 7.0 hỗ trợ việc thực thi không đồng bộ, tăng tốc độ thực thi từ xa thông qua việc tăng tính song song bằng cờ --jobs.
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 nhanh chóng và tiết kiệm tài nguyên. Bazel 7.0 chứa một số điểm cải tiến đối với chức năng quản lý phần phụ thuộc bên ngoài của Bazel, bao gồm:
- Bzlmod được bật theo mặc định để quản lý phần phụ thuộc bên ngoài trong Bazel
- Hỗ trợ tệp khoá — bật bản dựng kín bằng Bzlmod
- Hỗ trợ chế độ nhà cung cấp/ngoại tuyến – cho phép người dùng chạy các bản dựng có các phần phụ thuộc được tải xuống trước
- Hỗ trợ bộ nhớ đệm kho lưu trữ hoàn chỉnh (không chỉ lưu các cấu phần phần mềm tải xuống vào bộ nhớ đệm mà còn lưu cả nội dung kho lưu trữ cuối cùng)
- Cơ sở đăng ký trung tâm Bazel bao gồm các nội dung đóng góp thường xuyên của cộng đồng và việc áp dụng các quy tắc và dự án Bazel chính
Xây dựng chỉ số phân tích
Bazel 7.0 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ọ.
Bản dựng không bật Bytes theo mặc định
Các bản dựng không có Byte tối ưu hoá hiệu suất bằng cách tránh tải các cấu phần phần mềm trung gian xuống và 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 bao gồm:
Hỗ trợ loại bỏ bộ nhớ đệm từ xa bằng dịch vụ thuê để người dùng không gặp lỗi khi các cấu phần phần mềm bị loại bỏ sớm
Khắc phục các điểm thiếu hụt về tính năng trong tính năng hỗ trợ đường liên kết tượng trưng
Cung cấp các tuỳ chọn để truy xuất đầu ra trung gian từ các thao tác từ xa
Tăng năng suất bằng Skymeld
Bazel 7.0 giới thiệu Skymeld – một chế độ đánh giá giúp giảm thời gian thực thi của các bản dựng nhiều mục tiêu. Skymeld loại bỏ rào cản giữa các giai đoạn phân tích và thực thi để cải thiện tốc độ bản dựng, đặc biệt là đối với các bản dựng có nhiều mục tiêu cấp cao nhất. Tuy nhiên, đối với các bản dựng mục tiêu đơn, dự kiến sẽ không có sự khác biệt đáng kể nào.
Công cụ và hệ sinh thái Bazel
Bản dựng ứng dụng Android bằng Bazel
- Di chuyển các quy tắc gốc của Android sang Starlark: Đối với Bazel 7.0, các quy tắc Android sẽ di chuyển sang Starlark để tách biệt hoạt động phát triển khỏi chính Bazel và hỗ trợ tốt hơn cho các nội dung đóng góp của cộng đồng. Ngoài ra, chúng tôi đã tạo các quy tắc này độc lập với tệp nhị phân Bazel cốt lõi, cho phép chúng tôi phát hành thường xuyên hơn.
- Di chuyển quy tắc Android sang Starlark
- Hỗ trợ R8: Cho phép nhà phát triển ứng dụng Android sử dụng các tính năng tối ưu hoá đã cập nhật của R8.
- Cài đặt cho thiết bị di động: Cho phép nhà phát triển ứng dụng Android phát triển, kiểm thử, triển khai mọi thay đổi đối với ứng dụng Android một cách nhanh chóng thông qua phiên bản cập nhật của tính năng Cài đặt cho thiết bị di động.
Công cụ tạo dữ liệu Bảng kê khai thành phần phần mềm (SBOM) và tuân thủ giấy phép OSS
Với Bazel, nhà phát triển có thể tạo dữ liệu để giúp tạo SBOM. Dữ liệu này xuất ra ở định dạng văn bản hoặc JSON và có thể dễ dàng được định dạng để đáp ứng các quy cách SPDX hoặc CycloneDX. Ngoài ra, quy trình này còn cung cấp các quy tắc để khai báo giấy phép của các mô-đun Bazel và các công cụ để xây dựng quy trình xung quanh các nội dung khai báo đó. Xem quy trình triển khai rules_license đang diễn ra trên GitHub.
Bản dựng đã ký
Bazel 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óm 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 các tệp nhị phân chưa xác minh và có khả năng độc hại.
Di chuyển các quy tắc Java, C++ và Python sang Starlark
Hoàn tất việc di chuyển các quy tắc của Java, C++ và Python sang Starlark. Nhờ đó, người dùng Bazel chỉ có thể phân nhánh các quy tắc chứ không phải cơ sở mã nhị phân Bazel, cho phép người dùng
- Cập nhật và tuỳ chỉnh quy tắc nếu cần
- Cập nhật quy tắc độc lập với Bazel
Hỗ trợ IntelliJ IDEA Bazel-JetBrains*
Các bản cập nhật trình bổ trợ IntelliJ tăng dần để hỗ trợ bản phát hành trình bổ trợ JetBrains mới nhất.
Lộ trình này chỉ cung cấp thông tin nhanh về các mục tiêu và không được coi là đảm bảo. Các mứ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ả nội dung cập nhật cho lộ trình này), hãy tham gia cộng đồng Google Groups.
*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