Lộ trình Bazel

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

Tổng quan

Chúc mừng năm mới đến cộng đồng Bazel của chúng tôi. Năm mới, chúng tôi dự định cung cấp thông tin chi tiết về lộ trình năm 2023 của mình. Năm ngoái, chúng tôi đã công bố lộ trình áp dụng cho năm 2022 với các gói 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 về công cụ xây dựng của bạn. Vì dự án Bazel không ngừng phát triển để đáp ứng nhu cầu của bạn, nê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 cộng đồng nguồn mở luôn nắm bắt thông tin và có đầy đủ thông tin. Lộ trình này mô tả các sáng kiến và dự đoán hiện tại cho tương lai của việc phát triển Bazel, cho phép bạn thấy được những ưu tiên hiện tại và dự án đang thực hiện.

Bản phát hành Bazel 7.0

Chúng tôi dự định hỗ trợ Bazel 7.0 hỗ trợ dài hạn (LTS) cho bạn vào cuối năm 2023. Với Bazel 7.0, chúng tôi mong muốn phân phối nhiều mục đang được xử lý và tiếp tục nỗ lực cải thiện các tính năng mà người dùng của chúng tôi đã 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 đã 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á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 manifest và hợp nhất tài nguyên 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 việc thực thi từ xa

Bazel 7.0 hỗ trợ thực thi không đồng bộ, giúp tăng tốc việc thực thi từ xa thông qua việc tăng tính song song với cờ --công việc.

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 mở rộng dự án trong khi vẫn duy trì tốc độ nhanh và tiết kiệm tài nguyên. Bazel 7.0 có 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 tạo bản dựng khép 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ó phần phụ thuộc được tải xuống trước
  • Hoàn thành việc hỗ trợ bộ nhớ đệm lưu trữ (lưu vào bộ nhớ đệm không chỉ tải xuống cấu phần phần mềm mà còn tải nội dung cuối cùng của kho lưu trữ)
  • Cơ quan đăng ký trung tâm Bazel bao gồm việc cộng đồng thường xuyên đóng góp 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ố về giai đoạn phân tích, cho phép các 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 tối ưu hóa hiệu suất bằng cách tránh tải xuống cấu phần phần mềm trung gian và ngăn chặn các bản dựng gây nút thắt cổ chai trên băng thông mạng. Các tính năng đã thêm bao gồm:

  • Hỗ trợ loại bỏ bộ nhớ đệm từ xa bằng dịch vụ cho thuê để người dùng không gặp lỗi khi cấu phần phần mềm bị loại bỏ sớm

  • Giải quyết các lỗ hổng 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 kết quả trung gian từ các thao tác từ xa

Xây dự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 treo 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 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 những 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ể nào.

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

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

  • Di chuyển quy tắc gốc của Android sang Starlark: Đối với Bazel 7.0, các quy tắc của Android di chuyển sang Starlark để tách biệt quá trình phát triển của chính Bazel, cũng như hỗ trợ tốt hơn cho việc đóng góp của cộng đồng. Ngoài ra, chúng tôi đã thực hiện 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 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á R8 đã được cập nhật.
  • 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ập nhật của Cài đặt trên thiết bị di động.

Công cụ tạo dữ liệu Lập hóa đơ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 ra 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 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 xoay quanh những nội dung khai báo đó. Xem cách triển khai quy tắc_giấy phép đ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ùng với các khoá của Google. Tính năng này cho phép các nhà phát triển/hoạt động trên nhiều nền tảng xác định nguồn của các tệp nhị phân của Bazel và bảo vệ hệ thống của họ khỏi các tệp nhị phân có khả năng gây hại, 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ân tách bộ 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 các 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 gia tăng cho trình bổ trợ IntelliJ để hỗ trợ bản phát hành trình bổ trợ JetBrains mới nhất.

Tổng quan nhanh này có thể nhắm đến và không nên được coi là bảo đảm. Các mức độ ưu tiên có thể thay đổi theo 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 về 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