Как я могу обновить чужой модуль на CPAN? - PullRequest
13 голосов
/ 09 марта 2012

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

Ответы [ 3 ]

20 голосов
/ 09 марта 2012

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

  • Свяжитесь с автором
  • Отправьте свои исправления на RT очередь для модуля (или средства отслеживания проблем, который он указывает в своих документах)
  • Если он на Github, разветвите проект, внесите изменения и отправьте запрос на извлечение

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


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

15 голосов
/ 09 марта 2012

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

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

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

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

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

10 голосов
/ 09 марта 2012

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

Кроме того, вы можете загрузить свои изменения модуля в виде патча через rt.cpan.org ;должна быть ссылка с сайта модуля на CPAN.См. FAQ по CPAN: Как мне сообщить / исправить ошибку в модуле / скрипте? Эта система отслеживания используется для таких запросов, как ваша, а не только для сообщения об ошибках.

...