2016-10-02 3 views
6

Я загрузил свой stasis дистрибутив PAUSE, но его нет в index.Почему мой список CPAN не индексируется PAUSE?

Я думал, что это было потому, что он не содержит пакет, поэтому я добавил объявление пакета к стазу script в v0.04, как это:

#!/usr/bin/env perl 
package stasis; 
package main; 
... 

, но он все еще не был проиндексирован.

Есть ли какой-либо способ индексирования этого распространения, не связанный с созданием файла модуля шаблонов? (например, добавление lib/stasis.pm к распределению).

+1

Что говорит электронная почта от Pause? Может быть, переместить переменную $ VERSION в пакет? – choroba

+0

Я получаю только сообщение «upload» от PAUSE, но не «проиндексированное» электронное письмо. Интересное предложение о $ VERSION, я считаю, что make находит версию отлично, поскольку она вставляет ее в META.json. –

+2

Имена нижних регистров зарезервированы для прагм, и вы не должны претендовать на верхние пространства имен для себя !!! – ikegami

ответ

7

Я считаю, что CPAN не индексирует скрипты.

IMO ваш лучший вариант - создать модуль, который позволяет программно делать то, что делает ваш скрипт (и использовать сценарий).

Вы можете поставить поддельный модуль или заставить его думать, что ваш скрипт является модулем (я думаю, что перечисление его в provides работает), но я бы не стал, если бы был вами.

+2

Добавление предоставляет META.yml и META.json сделал трюк! –

+2

Скрипты CPAN обычно имеют свои кишки в модуле с именем 'App :: $ script_name'. [Пример] (http://search.cpan.org/perldoc?App::perlbrew) – ikegami

+0

@DavidFarrell, только если «сделал трюк», вы имеете в виду, что cpan теперь лежит, что есть модуль стазиса – ysth

2

Поскольку ваш оператор package не был указан в файле *.pm.

ИНДЕКС ПАУЗА open source. Немного сложно распаковать, но регулярное выражение для извлечения имени пакета в дистрибутиве находится в PAUSE::pmfile::packages_per_pmfile, что представляет собой метод и пакет, предназначенный только для обработки файлов *.pm.

Метод PAUSE::dist::_index_by_meta предоставляет альтернативный метод объявления пакета через ключевое слово provides в метафайле.

Смежные вопросы