брюки python - файл BUILD для каждого каталога - PullRequest
1 голос
/ 01 марта 2020

Я новичок в штанах и использую брюк для брюк python, чтобы узнать о штанах

В учебнике написано:

The rule of thumb is that each directory of .py files has a BUILD file with a python_library target

Я не могу понять, почему Мне нужен файл BUILD для каждого каталога? Предположим, что у меня есть библиотека с множеством каталогов и подкаталогов, почему у меня не может быть одного файла BUILD в главном каталоге библиотек, который sources всех соответствующих файлов библиотеки?

Сравнение штанов с setup.py из pip - я могу создать только один setup.py в главной папке и source всех файлов. Почему концепция брюк отличается?

Также я видел пример проекта брюк python - каждая папка в нем имеет файл BUILD и любой файл BUILD (который не является основным файлом BUILD), объявляющий его собственная библиотека, содержащая файлы того же уровня, что и файл BUILD. Это приводит к странным именам библиотек - это выглядит немного "хакерским"

Есть ли какой-нибудь другой инструмент для обертывания для PEX, кроме брюк?

1 Ответ

1 голос
/ 03 марта 2020

Этот шаблон также известен как правило 1:1:1 (для «1 каталога с 1 файлом BUILD и 1 целью.»), И он имеет свои преимущества. Подмодули

  • позволяют более широко использовать кэш сборки и более короткий цикл итерации. Модули
  • служат границами изоляции в многокомандных кодовых базах
  • позволяет кратко создавать файлы BUILD, пропуская аргументы типа name, sources в пользу python_library()
  • и более

Pants - это система построения масштаба предприятия, которая специализируется на больших монорепозициях, поэтому возможность работы над фрагментами кодовой базы является необходимостью. Подмодули выступают в качестве единиц работы.

С учетом сказанного, для единой кодовой базы разработчика вы - главный арбитр того, что работает для вас.

И да, Pex также может быть собран с Buck еще один "Blaze-like" из Facebook.

...