Lộ trình của Bazel

Tổng quan

Chúc cộng đồng Bazel năm mới an khang thịnh vượng. Trong năm mới này, chúng tôi dự định sẽ cung cấp thông tin chi tiết về lộ trình phát triển năm 2023. Năm ngoái, chúng tôi đã công bố lộ trình năm 2022 cùng với các kế hoạch cho Bazel 6.0. Chúng tôi hy vọng rằ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. Khi dự án Bazel tiếp tục phát triển để đáp ứng nhu cầu của bạn, chúng tôi muốn chia sẻ thông tin cập nhật năm 2023.

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 đượ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 sẽ cung cấp bản hỗ trợ dài hạn (LTS) Bazel 7.0 long term support (LTS) cho bạn vào cuối năm 2023. Với Bazel 7.0, chúng tôi hướng đến việc cung cấp nhiều mục đang trong quá trình phát triển và tiếp tục cải thiệ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 tốt 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 là để phát triển Java/Kotlin và Android, giúp cải thiện hiệu suất và sử dụng bộ nhớ đệm hiệu quả.

Xây dựng ứng dụng Android bằng Bazel

Cập nhật Trình hợp nhất tệp kê khai và tài nguyên 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 thiện khả năng thực thi từ xa

Bazel 7.0 hỗ trợ thực thi không đồng bộ, giúp tăng tốc quá trình thực thi từ xa thông qua khả năng 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 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. Bazel 7.0 chứa một số điểm cải tiến 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
  • Hỗ trợ tệp khoá – cho phép xây 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 với các phần phụ thuộ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 vào bộ nhớ đệm các cấu phần phần mềm đã tải xuống mà còn lưu vào bộ nhớ đệm nội dung kho lưu trữ cuối cùng)
  • 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

Chỉ số phân tích bản dựng

Bazel 7.0 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ọ.

Bản dựng không có Bytes được bật theo mặc định

Bản dựng không có Bytes tối ưu hoá hiệu suất bằng cách tránh tải xuống các cấu phần phần mềm trung gian và ngăn bản dựng bị 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 xây dựng 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 của các bản dựng nhiều 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 một mục tiêu, không có sự khác biệt đáng kể.

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

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

Tạo dữ liệu Bảng kê khai thành phần phần mềm (SBOM) và các công cụ 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 SBOMs. Dữ liệu này xuất ra ở định dạng văn bản hoặc JSON và có thể dễ dàng định dạng để đáp ứng các thông số kỹ thuật SPDX hoặc CycloneDX. Ngoài ra, quy trình này cung cấp các quy tắc để khai báo giấy phép mà các mô-đun Bazel được cung cấp và các công cụ để xây dựng quy trình xung quanh các khai báo đó. Xem quá 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á Google. Tính năng này cho phép nhà phát triển/nhà phát triển-vận hành đ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 chưa được xác minh, có khả năng gây hại.

Di chuyển các quy tắc của Java, C++ và Python sang Starlark

Hoàn tất quá trình di chuyển các bộ quy tắc của 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 bộ quy tắc chứ không phải cơ sở mã tệp nhị phân Bazel, cho phép người dùng

  • Cập nhật và tuỳ chỉnh các quy tắc nếu cần
  • Cập nhật các quy tắc độc lập với Bazel

Hỗ trợ IntelliJ IDEA của Bazel-JetBrains*

Cập nhật trình bổ trợ IntelliJ gia tăng để hỗ trợ bản phát hành trình bổ trợ JetBrains mới nhất.

Lộ trình phát triển này 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 cho lộ trình phát triển này), hãy tham gia cộng đồng nhóm trên 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