Где можно найти определение формата cpanfile?

Мы рассматриваем использование Minilla или Dist:: Milla для разработки perl. Объявление зависимостей выполняется через cpanfile. Я ожидал найти точное определение того, что и как можно объявить. Но

  • perldoc cpanfile: Показывает только основное использование. Раздел "СМ. ТАКЖЕ" не помогает.

  • perldoc Module:: CPANfile: тот же, что и cpanfile.

  • perldoc cpanfile-faq: нет объяснения точного синтаксиса или ссылки на него, только

Знакомый синтаксис DSL

Это новый тип файла, но формат и синтаксис не совсем новые. Метаданные, которые он может объявить, представляют собой подмножество "Prereqs" в CPAN Meta Spec.

Синтаксис сильно зависит от модуля:: Install. Module:: Install - это отличный способ легко объявить метаданные модуля, такие как имя, автор и зависимостей. Формат cpanfile - это просто для извлечения зависимостей в отдельный файл, что означает, что большинство разработчиков знакомый с синтаксисом.

Кто-нибудь знает, где найти точное описание синтаксиса/формата cpanfile?

Ответ 1

Я установил Module::CPANFile и perldoc cpanfile и perldoc cpanfile-faq.

В POD для cpanfile указано:

[the] cpanfile specification (this document) is based on Ruby's
Gemfile http://gembundler.com/man/gemfile.5.html specification.

Отключена ссылка на странице руководства cpanfile. Он должен указывать на: http://bundler.io/v1.3/man/gemfile.5.html

cpanfile предназначен для "обратной совместимости" с Module::Install Синтаксис DSL и "конвертируется в CPAN:: Meta:: Prereqs" и вдохновлен CPAN::Meta Spec v.2 и т.д.

Как я понимаю, cpanfile представляет собой нечто вроде мета-формата и вписывается в ряд подходов TIMTOWTDI (см. блог miyagawa, описывающий cpanfile), совместимый с Module::Install и в основном самодокументирующийся. Например, если вы запустите mymeta-cpanfile внутри каталога с файлами META, он построит для вас cpanfile; вы можете написать script, который описывает предварительные условия из CPAN::Meta::Prereqs, а затем $file->save('cpanfile'); для записи cpanfile.

Что касается Dist::Milla, в учебнике (см. POD, включенном в Dist::Milla). Миягава указывает, что "Если вы решили вручную построить [a] новый cpanfile, формат в основном совместим с Module::Install требованием DSL". В учебнике также приведен краткий пример.

Я думаю, что было бы справедливо спросить miyagawa, чтобы прояснить статус и варианты использования cpanfile спецификации/формата в документация для распространения. Это и еще несколько примеров ответят на такие вопросы, как ваша. Он в основном делал работу над этим уже - это просто не все в одном месте.