Как стать автором
Обновить

Сотрудник Red Hat представил сборочную систему Goals

Время на прочтение2 мин
Количество просмотров3.4K


Сотрудник компании Red Hat Ричард Джонс, создатель библиотеки libguestfs, представил инструмент Goals, цель которого — устранить недостатки в утилите make, разработанной Стюартом Фельдманом в 1976 году и предназначенной для автоматизации преобразования файлов из одной формы в другую.

При запуске эта программа читает Makefile с описанием проекта, интерпретирует его содержимое и в зависимости от него предпринимает нужные действия. Основу Makefile составляют правила (rules), которые описывают, каким образом можно преобразовать файл. Правила состоят из целей и зависимостей, где цель — желаемый результат, а зависимость — некие исходные данные (имя файла или имя действия), необходимые для достижения цели.

Как объясняет портал opennet, сейчас в работе make есть несколько недостатков. Например, утилита поддерживает только одну тактику решения зависимостей. Goals позволяет реализовать несколько тактик, включая проверку наличия URL, сравнение времени изменения с любым файлом, оценку сборки пакета в Koji, сравнение контрольных сумм, запуск тестовых наборов с выборочным пропуском тестов.

Также make не разделяет файлы и имена правил, что может привести к ошибке: если правило test, запускающее скрипты с тестами, уже есть, и при его наличии случайно будет создан файл с именем test, то тесты перестанут вызываться. Goals разделяет файлы и имена правил. Также Goals позволяет использовать сразу несколько параметров.

«Если использование одного параметра может быть полезным, то можно использовать и два, и больше параметров», — поясняет Джонс.

Goals решает также проблему взаимодействия с интерпретатором командной строки, или shell-интерпретатором — программой, которая принимает команды от пользователя и исполняет их. До выпуска Goals, как поясняет opennet, пользователю приходилось запускать отдельный shell-интерпретатор для каждой команды. Также существенной проблемой make была двойная трактовка символа $. В Goals вместо символа $ используется % ($ остаётся только для shell).

Также Goals делает возможной поддержку задания произвольных имён и параметров, позволяет запускать make в разных режимах. В будущем автор планирует добавить возможность определения значений параметров по умолчанию и поддержка анонимных функций.

Подробное описание особенностей Goals Джонс опубликовал в своём блоге.
Теги:
Хабы:
Всего голосов 8: ↑7 и ↓1+6
Комментарии4

Другие новости

Истории

Работа

Ближайшие события