Next: , Previous: , Up: Руководство по упаковке   [Contents][Index]


22.8.7 Пакеты Emacs

Для пакетов emacs желательно использовать систему сборки emacs (see emacs-build-system), ради однородности и полезностей от её фаз сборки, таких, как автоматическое создание файла автозагрузки и байтовая компиляция исходного кода. Поскольку не существует стандартизированного способа запуска набора тестов для пакетов Emacs, тесты по умолчанию отключены. Если у пакета есть набор тестов, его следует включить, дав аргументу #:tests? значение #true. По умолчанию команда для запуска теста—make check, но может быть использована любая команда , указанная в аргументе #:test-command. Аргумент #:test-command ожидает получить список, содержащий команду и ее аргументы, для ее вызова во время фазы check.

Elisp-зависимости пакетов emacs обычно указываются как propagated-inputs, если они необходимы во время работы программы. Что касается других пакетов, зависимости сборки или тестирования должны быть указаны как native-inputs.

Пакеты emacs иногда зависят от директорий с ресурсами, которые должны быть установлены вместе с файлами Elisp. Для этого можно использовать аргумент #:include, указывая список регулярных выражений, которые должны совпадать. Хорошей практикой при использовании аргумента #:include является расширение, а не изменение его значения по умолчанию, которое доступно через переменную %default-include. Например, дополнительные пакеты для yasnippet обычно содержат директорию snippets, которую можно скопировать в директорию установки, используя:

#:include (cons "^snippets/" %default-include)

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