2012-03-09 2 views
13

Я загрузил некоторый модуль из CPAN и добавил к нему дополнительные функции. Могу ли я опубликовать новейший модуль в CPAN? Если да, как мне это сделать? Это вообще возможно? Должен ли я связаться с человеком, который написал оригинальный модуль? Может ли кто-нибудь помочь в процедуре обновления этого конкретного модуля?Как обновить чужой модуль на CPAN?

+6

Какой модуль вас интересует? Кто автор? –

ответ

20

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

  • Связаться с автором
  • Представьте ваши патчи к RT queue для модуля (или отслеживания проблем это указывает на его документы)
  • Если это на Github, форк проекта, внести изменения и представить запрос на растяжение

Если автор не отвечает (что означает отсутствие ответа, а не отрицательный отклик), у нас есть пути к pass on maintainership of abandoned modules. Мы принимаем этот процесс очень медленно, потому что хотим дать автору или текущему помощнику возможность ответить. Некоторые люди могут быть завалены на работе, в отпуске и т. Д. Однако большинство ситуаций получается очень хорошо.


Вы можете загрузить все, что вы хотите сделать паузу, но если вы не какое-то сопровождающий, PAUSE не будет индексироваться. Он по-прежнему будет отображаться в вашей учетной записи CPAN, и люди все равно смогут загрузить его через сайт CPAN, но клиенты CPAN не будут видеть его (поскольку они работают в соответствии с индексом). Некоторые поисковые сайты покажут это как «Несанкционированный выпуск».

+0

Был недавний инцидент, когда кто-то загрузил пустую раздачу под названием «Тест», которая вызвала кучу модулей, все еще использующих Test.pm, чтобы начать провал тестов на дым. Модуль можно загрузить, даже если вы не являетесь зарегистрированным автором, но не будете проиндексированы. По умолчанию инструменты CPAN (cpan, cpanm и т. Д.) Не будут получать неиндексированную версию. Но он по-прежнему существует как несанкционированная версия и может быть загружен и установлен. И, как мы видели в этом случае, создается довольно беспорядок. Недавняя RT (которая теперь закрыта) находится в реальном дистрибутиве Test, где обсуждаются это. – DavidO

+0

Инцидент «Тест» также обсуждался на [email protected] Случилось так, что некоторые дымовые тестеры установили «неавторизованную версию» у своих курильщиков, и поскольку в нем не было функции с именем «plan()», вдруг кто-то загрузил модуль, который включал Test.pm в свой тестовый набор, «использовать». – DavidO

+1

[cpan-testers thread] (http://www.nntp.perl.org/group/perl.cpan.testers.discuss/2012/03/msg2683.html) –

10

Я рекомендую вам связаться с автором.

Кроме того, вы можете загрузить свои модули в качестве патча через rt.cpan.org; должна быть ссылка с сайта модуля на CPAN. Обратитесь к CPAN FAQ: How do I report/fix a bug in a module/script?. Эта система отслеживания используется для таких запросов, как ваша, а не только для сообщений об ошибках.

15

Было бы бесполезно слепо загрузить модуль, в который вы добавили функциональность под тем же именем, что и модуль, на котором он основан (иногда это случается и часто создает беспорядок). Но у вас есть варианты, которые были бы полезны:

Во-первых, вы можете связаться с автором или сопровождающим модулем, отправив по электронной почте разницу или патч, показывающую, что вы хотели бы видеть добавленным. Обязательно поставьте соответствующую документацию, а также объясните свое обоснование.

Возможно, автор модуля примет патч и применит его к обновлению самого модуля. Или может быть, что в целях предотвращения ползучего featurism автор/сопровождающий отвергает обновленную функциональность, и это приводит вас к второму варианту.

Второй вариант - получить свою собственную учетную запись PAUSE, а также подкласс или иным образом расширить модуль. Но обязательно дайте ему собственное имя модуля, полную документацию и, возможно, объяснение в документации, что это расширение модуля xyz со следующими дополнительными функциями ... Если вы расширяете Math :: BigInt, вы можете назовите его Math :: BigInt :: Frobcinate (просто пример).

При попытке установить контакт с автором модуля, пожалуйста, проявите терпение. Иногда требуется некоторое время, чтобы позволить правильному курсу.

+0

Я бы порекомендовал искать репозиторий, связанный с дистрибутивом, прежде чем просто отправить автору сообщение. –

+0

Это хорошее предложение. Кроме того, часто POD модуля будет содержать информацию о том, как автор предпочитает поддерживать модуль: система RT, список рассылки, репозиторий git, отдельная электронная почта или какая-либо комбинация из вышеперечисленного являются общими. – DavidO

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