2012-03-09 48 views
13

我從CPAN下載了一些模塊並添加了額外的功能。我可以在CPAN上發佈最新的模塊嗎?如果是的話,我應該怎麼做?它有可能嗎?我應該聯繫編寫原始模塊的人嗎?有人可以幫助程序更新這個特定的模塊嗎?如何更新CPAN上的其他人的模塊?

+6

您對哪個模塊感興趣?誰是作者? – 2012-03-09 20:43:49

回答

20

除非您是共同維護者,否則您將無法將模塊上載並編入索引名稱。因爲現在有兩個(或更多)略有不同的版本,所以將其上傳爲不同的名稱對社區來說效率不高。

  • 聯繫作者
  • 提交補丁的RT queue的模塊(或者指定其文檔的問題跟蹤)
  • 如果是在Github上,用叉子叉項目,進行更改,並提交一個拉請求

如果作者沒有反應(這意味着沒有響應,而不是一個否定的迴應),我們有辦法pass on maintainership of abandoned modules。我們非常緩慢地採取這個過程,因爲我們想給原始作者或當前維護者一個機會做出迴應。有些人可能會在工作,度假等方面陷入困境。但是,大多數情況都非常好。


您可以上傳任何你想要暫停,但如果你是不是某種維護者,暫停不會索引它。它仍然會顯示在您的CPAN帳戶中,人們仍然可以通過CPAN網站下載它,但CPAN客戶端不會看到它(因爲它們按照索引工作)。一些搜索網站會將其顯示爲「未經授權的發佈」。

+0

最近發生了一個事件,有人上傳了名爲「Test」的空發行版,導致一堆仍在使用Test.pm的模塊開始通過失敗的冒煙測試。即使您不是註冊作者,也可以上傳模塊,但不會編入索引。默認情況下,CPAN工具(cpan,cpanm等)不會選取未索引的版本。但它仍然作爲未授權版本存在,並且可以下載並安裝。正如我們在這種情況下看到的那樣,造成了相當的混亂。最近有一個RT(現在已經關閉)在真正的Test分佈下討論這個問題。 – DavidO 2012-03-09 19:20:57

+0

還在[email protected]上討論了「測試」事件。發生了什麼事情是一些冒煙測試者在他們的吸菸者中安裝了「未經授權的版本」,並且由於它沒有包含名爲「plan()」的函數,突然有人上傳包含Test.pm的模塊在其測試套件中開始失敗'使用'行。 – DavidO 2012-03-09 19:26:04

+1

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

15

如果你盲目地上傳一個你添加了功能的模塊,它和它所基於的模塊名字相同(有時會發生並且經常會造成混亂),這將是無益的。但是,您確實有可能有所幫助的選項:

首先,您可以聯繫模塊的作者或維護者,通過電子郵件發送您希望添加的內容的差異或補丁。一定要提供相關文件,並說明你的理由。

這可能是模塊作者將接受該補丁並將其應用於模塊本身的更新。或者,可以通過防止蠕動的特徵,作者/維護者拒絕升級的功能,並導致您進入第二種選擇。

第二個選項是獲取您自己的PAUSE帳戶,以及子類或其他擴展模塊。但一定要給它自己的新模塊名稱,完整的文檔,並可能在文檔中說明這是xyz模塊的擴展,並具有以下附加功能......如果您正在擴展Math :: BigInt,則可能會叫它Math :: BigInt :: Frobcinate(只是一個例子)。

當您嘗試聯繫模塊作者時,請耐心等待。有時需要一段時間讓事情順利進行。

+0

我建議您在發送作者dist之前尋找與發行版相關的存儲庫。 – 2012-03-16 19:58:18

+0

這是一個很好的建議。此外,模塊的POD通常會包含作者如何支持該模塊的信息:RT系統,郵件列表,git存儲庫,單個電子郵件或上述的某些組合都很常見。 – DavidO 2012-03-16 22:39:44