Lộ trình của Bazel

Báo cáo sự cố Xem nguồn

Tổng quan

Chúc mừng năm mới đến với cộng đồng Bazel của chúng ta. Khi bước sang năm mới, chúng tôi dự định sẽ cung cấp thông tin chi tiết về lộ trình năm 2023. Năm ngoái, chúng tôi đã công bố lộ trình cho năm 2022 với các kế hoạch triển khai Bazel 6.0. Chúng tôi hy vọng rằng lộ trình này đã đáp ứng được nhu cầu của quý vị về công cụ xây dựng. Vì dự án Bazel tiếp tục phát triển để đáp ứng nhu cầu của bạn, nên chúng tôi muốn chia sẻ nội dung cập nhật năm 2023.

Với những thay đổi này, chúng tôi muốn cung cấp đầy đủ thông tin và sự tham gia cho cộng đồng nguồn mở. 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 của việc 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 thực hiện.

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) Bazel 7.0 cho bạn vào cuối năm 2023. Với Bazel 7.0, chúng tôi mong muốn cung cấp nhiều tính năng đang được hoàn thiệ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ấu phần phần mềm đã lưu vào bộ nhớ đệm trên các nền tảng tạo bản dựng cục bộ (Mac) và từ xa (Linux) chủ yếu để phát triển Java/Kotlin và Android. Điều này giúp nâng cao hiệu suất và sử dụng bộ nhớ đệm hiệu quả.

Tạo ứng dụng Android bằng Bazel

Tệp kê khai và tài nguyên hợp nhất 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 quy trình thực thi từ xa

Bazel 7.0 hỗ trợ thực thi không đồng bộ, tăng tốc độ thực thi từ xa thông qua tăng cường tính song song với 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 dự án mở rộng quy mô mà vẫn đảm bảo tốc độ và tiết kiệm tài nguyên. Bazel 7.0 có một số tính năng nâng cao cho 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
  • Khoá hỗ trợ tệp — bật tính năng tạo 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 bản dựng có các phần phụ thuộc đã tải xuống trước
  • Hỗ trợ đầy đủ cho bộ nhớ đệm của kho lưu trữ (lưu vào bộ nhớ đệm không chỉ tải các cấu phần phần mềm xuống mà còn tải cả nội dung kho lưu trữ cuối cùng)
  • Bazel Central Registry bao gồm sự đóng góp thường xuyên của cộng đồng và áp dụng các quy tắc và dự án quan trọng của Bazel

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

Bazel 7.0 cung cấp các chỉ số 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 bản dựng của riêng họ.

Bản dựng không bật Byte theo mặc định

Bản dựng không có Byte sẽ 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 gây tắc nghẽn băng thông mạng. Các tính năng được thêm vào bao gồm:

Tăng năng suất với Skymeld

Bazel 7.0 giới thiệu Skymeld – một chế độ đánh giá giúp giảm thời gian chạy trên tường của các bản dựng đa mục tiêu. Skymeld loại bỏ rào cản giữa giai đoạn phân tích và thực thi để cải thiện tốc độ xây 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 chỉ có một mục tiêu, dự kiến sẽ không có sự khác biệt đáng kể.

Công cụ và hệ sinh thái Bazel

Tạo ứ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 của Android sẽ di chuyển sang Starlark để tách riêng việc phát triển khỏi chính Bazel và để hỗ trợ hiệu quả hơn tính năng đóng góp của cộng đồng. Ngoài ra, chúng tôi đã làm cho các quy tắc này độc lập với tệp nhị phân Bazel chính, cho phép chúng tôi phát hành thường xuyên hơn.
  • Di chuyển các quy tắc Android sang Starlark
  • Hỗ trợ R8: Cho phép nhà phát triển ứng dụng Android sử dụng tính năng tối ưu hoá đã cập nhật R8.
  • Cài đặt trên thiết bị di động: Cho phép nhà phát triển ứng dụng Android phát triển, thử nghiệm, triển khai nhanh chóng bất kỳ thay đổi nào trong ứng dụng Android thông qua phiên bản cập nhật của Cài đặt trên thiết bị di động.

Công cụ tạo dữ liệu Bảng kê khai thành phần (SBOM) cho phần mềm và các công cụ tuân thủ giấy phép OSS

Nhờ Bazel, các nhà phát triển có thể tạo dữ liệu để hỗ trợ việc tạo SBOM. Dữ liệu này sẽ 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 thông số kỹ thuật của 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 các mô-đun Bazel được cung cấp và các công cụ để xây dựng quy trình liên quan đến những nội dung khai báo đó. Xem quá trình triển khairules_License đang tiến hành 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á 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 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 có thể chưa được xác minh.

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 Java, C++ và Python sang Starlark. Nỗ lực này cho phép người dùng Bazel chỉ phân nhánh các tập quy tắc chứ không phân bổ 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 các quy tắc một cách độc lập với Bazel

Hỗ trợ Bazel-JetBrains* IntelliJ IDEA

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 nhắm đến mục tiêu tổng quan nhanh và không nên dùng để đảm bảo. 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ơ 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 đối với lộ trình này, hãy tham gia cộng đồng Nhóm Google.

*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