Самоанализ файла сборки Bazel - PullRequest
0 голосов
/ 16 октября 2019

Существуют ли какие-либо инструменты для анализа коллекции файлов сборки Bazel для выполнения запросов к базе кода? Я имею в виду простой случай сбора всех определенных тегов, используемых в кодовой базе. Некоторая разновидность мета-запросов базального типа, которая позволит мне охватить соглашения и использование в репо значительным количеством файлов сборки.

Было бы даже неплохо иметь возможность сделать кросс-табуляцию cc_test и py_test правила против их коллективных тегов. В идеале, это был бы клиент Python для анализа файлов Bazel.

1 Ответ

1 голос
/ 17 октября 2019

bazel query предоставляет информацию о вашем целевом графе зависимостей с очень выразительным языком запросов. Он может выводить в различные форматы, такие как DOT, XML, Protobuf и текстовое представление самих расширенных файлов BUILD (если есть макросы) для последующей обработки. См .: Инструкции к Базел-запросу , Ссылка на Базел-запрос .

bazel cquery делает то же самое, что и query, но также выполняет этап анализа, который вычисляетинформация о конфигурациях (например, ЦП, уровни API) на целевом графике зависимостей. Это занимает немного больше времени, но дает вам более точное представление графика, который Bazel вводит в фазу выполнения. См .: Ссылка на запрос Bazel .

bazel aquery не имеет прямого отношения к самоанализу файла BUILD, поскольку представляет информацию о выполняемых действиях, которые представляют собой несколько уровней вычислений после анализа файла BUILD ианализ. См .: Справочник Bazel Aquery

query, cquery и aquery не работают с синтаксисом файлов BUILD. Если вы хотите работать с синтаксисом Starlark / AST, ознакомьтесь с инструментами buildozer и buildifier в репозитории bazelbuild / buildtools .

Если есть информация о вашем графике сборкикоторые не могут быть получены с помощью этих механизмов, пожалуйста, отправьте запрос на функцию в проекте Bazel GitHub.

...