Lộ trình của Bazel

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

Tổng quan

Chúc mừng cộng đồng Bazel của chúng ta năm mới. Nhân dịp năm mới, chúng tôi dự định sẽ cung cấp thông tin chi tiết về lộ trì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 các kế hoạch Bazel 6.0. Chúng tôi hy vọng rằng lộ trình này đã cung cấp thông tin phù hợp với nhu cầu về công cụ xây dựng của bạn. 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 xin 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êm thông tin cho cộng đồng nguồn mở của mình. 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 phát triển của Bazel, giúp bạn nắm được những ư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) 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 sản phẩm đang trong quá trình hoàn thiện và tiếp tục cải tiến các tính năng mà người dùng vẫn mong đợi.

Chia sẻ bộ nhớ đệm hiệu quả hơn trên nhiều nền tảng

Cho phép chia sẻ 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 phục vụ cho việc phát triển Java/Kotlin và Android, nhờ đó cải thiện hiệu suất và sử dụng bộ nhớ đệm một cách hiệu quả.

Bản dựng ứng dụng Android bằng Bazel

Cập nhật Manifest & Resource Merger lên phiên bản 30.1.3 để các 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ợ 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 khả năng 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 giải quyết các phần phụ thuộc bắc cầu, cho phép dự án mở rộng quy mô trong khi vẫn duy trì tốc độ nhanh và tiết kiệm tài nguyên. Bazel 7.0 chứa 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:

  • Theo mặc định, Bzlmod được bật cho tính năng quản lý phần phụ thuộc bên ngoài trong Bazel
  • Khoá tính năng hỗ trợ tệp — bật bản dựng kín bằng Bzlmod
  • Hỗ trợ chế độ nhà cung cấp/chế độ 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 được tải xuống trước
  • Hỗ trợ đầy đủ bộ nhớ đệm cho kho lưu trữ (tính năng 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 cả nội dung cuối cùng trong kho lưu trữ)
  • Cơ quan đăng ký trung tâm Bazel bao gồm hoạt động đóng góp của cộng đồng thường xuyên và việc áp dụng các quy tắc và dự án chính của Bazel

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

Bazel 7.0 cung cấp chỉ số thời gian 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ọ.

Tạo bản dựng không bật Bytes

Các 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 bản dựng bị tắc nghẽn trê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ấu phần phần mềm bị loại sớm

  • Giải quyết các tính năng bị thiếu trong việc 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

Nâng cao 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 hoạ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 độ 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 bản dựng một mục tiêu duy nhất, dự kiến sẽ không có sự khác biệt đáng kể.

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 Android sang Starlark: Đối với Bazel 7.0, các quy tắc Android di chuyển sang Starlark để tách riêng hoạt động phát triển từ chính Bazel và cho phép cộng đồng đóng góp hiệu quả hơn. Ngoài ra, chúng tôi đã tạo những 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 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 mọi thay đổi đối với ứng dụng Android thông qua phiên bản cập nhật của tính năng Cài đặt trên thiết bị di động.

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

Nhờ Bazel, các nhà phát triển có thể tạo dữ liệu để 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 thông số kỹ thuật SPDX hoặc CycloneDX. Ngoài ra, quy trình này còn đưa ra các quy tắc để khai báo giấy phép theo mô-đun Bazel, cũng như các công cụ để xây dựng quy trình cho các nội dung khai báo đó. Xem quy trình triển khai quy tắc_cấp phép đ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 tệp nhị phân Bazel và bảo vệ hệ thống của họ khỏi tệp nhị phân có thể độc hại và 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 bộ quy tắc Java, C++ và Python sang Starlark. Nỗ lực này cho phép người dùng Bazel chỉ phát triển 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 các quy tắc độc lập với Bazel

Hỗ trợ Bazel-JetBrains* IntelliJ IDEA

Các bản cập nhật tăng dần của 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 cung cấp thông tin sơ lược về các mục tiêu và không nên được coi là yếu tố đả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ơ 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 đối với lộ trình này — hãy tham gia cộng đồng Nhóm Google.

*Bản quyền © 2022 JetBrains JetBrains và IntelliJ là các nhãn hiệu đã đăng ký của JetBrains s.r.o