Next: , Previous: , Up: Принципы опакечивания   [Contents][Index]


18.4.6 Пакеты 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 variable). Например, пакет расширения yasnippet обычно включает каталог snippets, который можно скопировать в каталог установки, используя:

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

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