Next: Модули Python, Previous: Сниппеты против Фаз, Up: Принципы опакечивания [Contents][Index]
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
в основном исходном файле пакета, а также
соответствие перечисленным в нем зависимостям и их версиям.