Lộ trình Starlark

Báo cáo vấn đề Xem nguồn Hằng đêm · 7,3 · 7.2 · 7.1 · 7 · 6,5

Lần xác minh gần đây nhất: 21-04-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 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, viết, cập nhật, gỡ lỗi và kiểm thử mã.

Quý 2 năm 2020

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

  • P0. Ngăn các macro không có tên và đảm bảo tên là duy nhất cố định kiểu chuỗi. 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 có sẵn công khai.
  • P0. Đảm bảo các lệnh Buildozer đáng tin cậy về các lựa chọn và biến.
  • Ưu tiên 1. Giúp Buildifier xoá những nội dung trùng lặp 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ụ linter của Buildifier để đề xuất nội tuyến các biểu thức nhỏ.
  • Ưu tiên 2. Nghiên cứu các trường hợp sử dụng native.existing_rules và đề xuất lựa chọn thay thế.
  • Ưu tiên 2. Nghiên cứu các trường hợp sử dụng tệp mở đầu và đề xuất các giải pháp thay thế.

Hiệu suất:

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

Giảm nợ kỹ thuật:

  • P0. Thêm khả năng chuyển các biểu tượng gốc sang Starlark bên dưới @bazel_tools.
  • Ưu tiên 1. Xoá cờ đã lỗi thời (một số cờ trong số đó vẫn được sử dụng tại Google, vì vậy, chúng tôi cần hãy dọn dẹp cơ sở mã trước): 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 các cờ theo sau có thể được lật 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 của lib.syntax (dọn dẹp API, phân tách khỏi Bazel).
  • Ưu tiên 2. Giảm 50% độ trễ của bản dựng+kiểm thử của một bản chỉnh sửa bình thường đối với các gói Java của Bazel.

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ý, vấn đề phân loại, tạo bản phát hành).
  • Duy trì cơ sở hạ tầng tài liệu của Bazel: tập trung và chuẩn hoá CSS phong cách trên bazel-website, bazel-blog, tài liệu
  • Tài liệu về Bazel: thêm bài kiểm tra CI cho bản dựng trang web tài liệu e2e để ngăn chặn sự hồi quy.

Quý 1 năm 2020

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

  • 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 phụ thuộc 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 tính năng kiểm tra cho các tệp không dùng nữa .

Hiệu suất:

  • Giúp các chương trình 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 các cờ này).
  • Hoàn tất công việc dọn dẹp lib.syntax (phần phụ thuộc ngắt).
  • Tối ưu hoá Starlark: môi trường phẳng, biên dịch mã byte
  • Xoá toàn bộ quá trình chuyển đổi tuần tự khỏi giai đoạn phân tích (nếu có thể)
  • Lập kế hoạch để đơn giản hoá/tối ưu hoá lib.packages

Cộng đồng:

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