Phát hành hệ thống xây dựng Bazel 1.0

giới thiệu phát hành các công cụ lắp ráp mở Bazel 1.0, được phát triển bởi các kỹ sư của Google và được sử dụng để lắp ráp hầu hết các dự án nội bộ của công ty. Phiên bản 1.0 đánh dấu sự chuyển đổi sang phiên bản phát hành ngữ nghĩa và cũng đáng chú ý vì đã đưa ra một số lượng lớn các thay đổi phá vỡ khả năng tương thích ngược. Mã số dự án phân phối bởi được cấp phép theo Apache 2.0.

Bazel xây dựng dự án bằng cách chạy các trình biên dịch và kiểm thử cần thiết. Hệ thống xây dựng được thiết kế từ đầu để xây dựng các dự án của Google một cách tối ưu, bao gồm các dự án rất lớn và dự án chứa mã bằng nhiều ngôn ngữ lập trình, yêu cầu thử nghiệm rộng rãi và được xây dựng cho nhiều nền tảng. Nó hỗ trợ xây dựng và thử nghiệm mã bằng Java, C++, Objective-C, Python, Rust, Go và nhiều ngôn ngữ khác, cũng như xây dựng các ứng dụng di động cho Android và iOS. Việc sử dụng các tệp hợp ngữ duy nhất cho các nền tảng và kiến ​​trúc khác nhau được hỗ trợ; ví dụ: một tệp hợp ngữ không có thay đổi có thể được sử dụng cho cả hệ thống máy chủ và thiết bị di động.

Trong số các tính năng đặc biệt của Bazel là tốc độ cao, độ tin cậy và khả năng lặp lại của quá trình lắp ráp. Để đạt được tốc độ xây dựng cao, Bazel tích cực sử dụng các kỹ thuật bộ nhớ đệm và song song hóa cho quá trình xây dựng. Các tệp BUILD phải xác định đầy đủ tất cả các phụ thuộc, trên cơ sở đó đưa ra quyết định xây dựng lại các thành phần sau khi thực hiện thay đổi (chỉ các tệp đã thay đổi mới được xây dựng lại) và song song hóa quá trình lắp ráp. Dụng cụ cũng đảm bảo việc lắp ráp có thể lặp lại, tức là kết quả của việc xây dựng dự án trên máy của nhà phát triển sẽ hoàn toàn giống với việc xây dựng trên hệ thống của bên thứ ba, chẳng hạn như máy chủ tích hợp liên tục.

Không giống như Make và Ninja, Bazel sử dụng cách tiếp cận cấp cao hơn để xây dựng các quy tắc lắp ráp, trong đó, thay vì xác định ràng buộc của các lệnh với các tệp đang được xây dựng, các khối tạo sẵn trừu tượng hơn được sử dụng, chẳng hạn như “xây dựng một tệp thực thi trong C++”, “xây dựng thư viện bằng C++” hoặc “chạy thử nghiệm C++”, cũng như xác định mục tiêu và nền tảng xây dựng. Trong tệp văn bản BUILD, các thành phần dự án được mô tả dưới dạng một loạt các thư viện, tệp thực thi và thử nghiệm mà không nêu chi tiết ở cấp độ tệp riêng lẻ và lệnh gọi trình biên dịch. Chức năng bổ sung được thực hiện thông qua cơ chế kết nối các tiện ích mở rộng.

Nguồn: opennet.ru

Thêm một lời nhận xét