Lộ trình của Bazel

Tổng quan

Chúc mừng năm mới cộng đồng Bazel. 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 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 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 diễn ra.

Bản phát hành Bazel 7.0

Chúng tôi dự định sẽ cung cấp cho bạn bản hỗ trợ dài hạn (LTS) Bazel 7.0 long term support (LTS) 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 thực hiệ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 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 xây 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 quá trình thực thi từ xa

Bazel 7.0 hỗ trợ thực thi không đồng bộ, tăng tốc quá trình 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 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. 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á — 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 cả nội dung kho lưu trữ cuối cùng)
  • 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ọ.

Xây dựng mà không bật Bytes theo mặc định

Xây dựng mà không bật Bytes 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 bản dựng bị tắc nghẽn băng thông mạng. Các tính năng đã thêm 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, dự kiến sẽ 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à giúp cộng đồng đóng góp hiệu quả hơn. 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, thử nghiệm, 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 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 ở đị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 của 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 dựa trên những 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à vận hành phát triển 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 chưa được xác minh và 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ân nhánh cơ sở mã 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ợ Bazel-JetBrains* IntelliJ IDEA

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

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ả nội dung cập nhật cho 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