- Buildout
-
zc.buildout Тип средство автоматизации сборки
Разработчик Jim Fulton и соавторы
Написана на Операционная система Последняя версия 1.5.2, 2.0.0a2 (11 октября 2010, 3 мая 2012 [1])
Лицензия Сайт buildout.org (англ.)
Buildout — средство автоматизации сборки для программного обеспечения с открытым исходным кодом, написанное на Python. Позволяет создавать, собирать и вводить в действие приложения из нескольких частей. Buildout помогает конфигурировать и в точности воспроизводить сборку программного обеспечения заданной конфигурации[2].
Buildout используют такие проекты как Django[3], Zope, Plone, Silva, Pylons и др.[2]
Термин «buildout» применяется также в отношении каталога, в котором развёрнута конфигурация некоторого приложения и содержится файл
buildout.cfg
, а сам скрипт buildout обычно находится вbin/buildout
.Содержание
Возможности
Основные возможности Buildout следующие:
- Создаёт изолированную среду исполнения приложений на Python (наподобие virtualenv).
- Применяет язык описания зависимостей, похожий по синтаксису на язык INI-файлов. Файлы конфигурации описывают egg-файлы (формат пакетов программного обеспечения на Python, вроде RPM), необходимые для сборки, и другие части (англ. part), например, библиотеки на других языках программирования, требующие компиляции.
- Использует рецепты (англ. recipe) для расширения функциональных возможностей сборки, выполняя их по очереди[4].
- Позволяет разрабатывать и вводить программное обеспечение в эксплуатацию, выпускать исходные коды приложения вместе с конфигурацией среды исполнения[5].
Конфигурация
Структура файла конфигурации может быть схематически представлена следующим образом[6]:
[buildout] parts = part1 part2 develop = src/my.package1 src/my.package2 find-links = http://dist.plone.org/thirdparty [part1] recipe = recipe.name1 # ... другие данные [part2] recipe = recipe.name2</nowiki> # ... другие данные
Встретив такой файл конфигурации, buildout будет по очереди рассматривать части, находить указанные в них рецепты, загружая по необходимости указанные в них пакеты с рецептами, запускать рецепты в соответствии с их точками входа (конфигурируются в
setup.py
пакета). Поиск ссылок на пакеты может быть расширен за счёт добавления списка URL вfind-links
. Опцияdevelop
даёт пути к пакетам, которые должны быть добавлены к набору библиотек в виде egg-файлов. Обычно это пакеты, находящиеся в разработке[6].Опция
extends
указывает на другой файл конфигурации, который берётся за основу. Тем самым можно разбить конфигурационные файлы buildout на несколько частей. При этом опции можно изменять, присваивая (=), добавляя (+=) или убирая некоторые значения[7]:[buildout] extends = mybase.cfg [part-one] key0 = rec0 key1 += rec1 rec2 key2 -= rec3
Файл
mybase.cfg
для этого примера может выглядеть так:[part-one] key0 = rec0 rec00 key1 = rec0 key2 = rec1 rec2 rec3
Результат:
[part-one] key0 = rec0 key1 = rec0 rec1 rec2 key2 = rec1 rec2
Имеются и другие возможности, например, подстановка опций из других частей, клонирование части.
Пример
Пример простого файла конфигурации
buildout.cfg
для Plone[8]:[buildout] parts = instance extends = http://dist.plone.org/release/4.1/versions.cfg [instance] recipe = plone.recipe.zope2instance eggs = Plone Pillow
Некоторые параметры командной строки
Режимы работы для скрипта buildout могут быть заданы параметрами командной строки:
-v
Увеличить детализацию сообщений. Может быть использован несколько раз. -q
Уменьшить детализацию сообщений. Может быть использован несколько раз. -U
Не читать файл настроек buildout конкретного пользователя. -o
Режим офлайн. Запрещает устанавливать соединения с другими хостами для доступа к частям, пакетам и т. п. -O
Режин онлайн (действует по умолчанию). -n
Проверять доступность свежих версий пакетов (действует по умолчанию). -N
Не проверять обновления пакетов. -c
Альтернативный файл конфигурации (по умолчанию: buildout.cfg) Из командной строки также можно задавать команды (например, buildout install) и значения ключей в формате
часть:опция=значение
[7].Примечания
- ↑ zc.buildout 1.5.2
- ↑ 1 2 Официальный веб-сайт Buildout
- ↑ Jacob Kaplan-Moss Developing Django apps with zc.buildout (2009). Архивировано из первоисточника 29 июля 2012.
- ↑ Buildout documentation, Buildout Recipes
- ↑ Ziade, 2008, pp. 167-168
- ↑ 1 2 Ziade, 2008, pp. 169
- ↑ 1 2 Buildout Quick Reference Card
- ↑ MinimalPlone4 на github
Ссылки
Литература
- Tarek Ziadé. Expert Python Programming. — Packt Publishing Ltd., 2008. — 372 с. — ISBN 978-1-847194-94-7, pp. 168–177
- Martin Aspeli. Professional Plone 4 Development. — Packt Publishing Ltd., 2011. — 516 с. — ISBN 9781849514422, pp. 38–44
- Alex Clark. Plone 3.3 Site Administration. — Packt Publishing Ltd., 2010. — 240 с. — ISBN 9781847197047
Системы автоматизации сборки Системы автоматизации сборки Make · Premake · CMake · SCons · Apache Ant · Apache Maven · NAnt · Buildout · MSBuild · Waf · Rake · Autotools Категории:- Программное обеспечение по алфавиту
- Автоматизация сборки
- Свободные инструменты для разработки программного обеспечения
- Кроссплатформенное программное обеспечение
- Свободное программное обеспечение, написанное на Python
Wikimedia Foundation. 2010.