Lộ trình Starlark

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

Lần xác minh gần đây nhất: ngày 21 tháng 04 năm 2020 (nhật ký cập nhật)

Đầu mối liên hệ: laurentlb

Mục tiêu

Mục tiêu của chúng tôi là làm cho Bazel dễ mở rộng hơn. Người dùng phải có thể dễ dàng triển khai các quy tắc của riêng họ, đồng thời hỗ trợ các ngôn ngữ và công cụ mới. Chúng tôi muốn cải thiện trải nghiệm viết và duy trì các quy tắc đó.

Chúng tôi tập trung vào hai lĩnh vực:

  • Làm cho ngôn ngữ và API đơn giản, nhưng mạnh mẽ.
  • Cung cấp công cụ tốt hơn để đọc, ghi, cập nhật, gỡ lỗi và kiểm thử mã.

Quý 2 năm 2020

Xây dựng sức khoẻ và các phương pháp hay nhất:

  • P0 Macro chặn không có tên và đảm bảo tên là một chuỗi ký tự duy nhất. Công việc này tập trung vào cơ sở mã của Google, nhưng có thể ảnh hưởng đến những công cụ được cung cấp công khai.
  • P0 Làm cho các lệnh của Buildozer đáng tin cậy liên quan đến lựa chọn và biến.
  • Ưu tiên 1. Yêu cầu Trình tạo bản sao xoá các bản sao trong danh sách mà chúng tôi không sắp xếp do nhận xét.
  • Ưu tiên 1. Cập nhật công cụ xây dựng Linter để đề xuất các biểu thức bình thường.
  • P2 Các trường hợp sử dụng nghiên cứu cho native.existing_rule và đề xuất các lựa chọn thay thế.
  • P2 Các trường hợp sử dụng nghiên cứu cho tệp mở đầu và đề xuất các phương án thay thế.

Hiệu suất:

  • Ưu tiên 1. Tối ưu hoá trình phiên dịch Starlark bằng môi trường phẳng và chế độ biên dịch mã byte.

Giảm nợ kỹ thuật:

  • P0 Thêm khả năng chuyển các biểu tượng gốc vào Starlark bên dưới @bazel_tools.
  • Ưu tiên 1. Xoá các cờ đã lỗi thời (một số cờ vẫn được sử dụng tại Google, vì vậy trước tiên chúng ta cần dọn dẹp cơ sở mã): incompatible_always_check_depset_elements, incompatible_disable_deprecated_attr_params, incompatible_no_support_tools_in_action_inputs, incompatible_new_actions_api.
  • Ưu tiên 1. Đảm bảo bạn có thể lật các cờ sau đây trong Bazel 4.0: incompatible_disable_depset_items, incompatible_no_implicit_file_export, incompatible_run_shell_command_string, incompatible_restrict_string_escapes.
  • Ưu tiên 1. Hoàn tất công việc lib.syntax (loại bỏ API, tách khỏi Bazel).
  • P2 Giảm 50% độ trễ bản dựng + thử nghiệm của một nội dung chỉnh sửa không quan trọng đối với các gói Java của Bazel.

Thẻ Cộng đồng:

  • rules_python đang hoạt động và được cộng đồng duy trì tốt.
  • Hỗ trợ liên tục cho rules_jvm_external (không có yêu cầu kéo chưa xử lý, phân phối vấn đề, tạo bản phát hành).
  • Duy trì cơ sở hạ tầng tài liệu Bazel: tập trung và chuẩn hóa các kiểu CSS trên bazel-website, bazel-blog, tài liệu
  • Tài liệu Bazel: thêm thử nghiệm CI cho bản dựng trang web tài liệu e2e để ngăn chặn hồi quy.

Quý 1 năm 2020

Xây dựng sức khoẻ và các phương pháp hay nhất:

  • Cho phép các mục tiêu theo dõi ngăn xếp lệnh gọi macro của chúng để xuất qua bazel query
  • Triển khai --incompatible_no_implicit_file_export
  • Xoá các API depset không dùng nữa (#5817, #10313, #9017).
  • Thêm trình phân tích tệp chéo trong Buildifier, triển khai quy trình kiểm tra các hàm không còn được dùng nữa.

Hiệu suất:

  • Giúp các bài kiểm thử dựa trên Java của Bazel nhanh hơn gấp 2 lần.
  • Triển khai trình phân tích CPU Starlark.

Giảm nợ kỹ thuật:

  • Xoá 8 cờ không tương thích (sau khi lật).
  • Hoàn tất công việc dọn dẹp lib.syntax (phần phụ thuộc ngắt).
  • Tối ưu hóa Starlark: môi trường phẳng, biên dịch mã byte
  • Xoá tất cả chuỗi tuần tự khỏi giai đoạn phân tích, nếu có thể
  • Lên kế hoạch đơn giản hoá/tối ưu hoá lib.packages

Thẻ Cộng đồng:

  • Xuất bản Bảng thuật ngữ có chứa các định nghĩa cho tất cả các thuật ngữ dành riêng cho Bazel