2009-09-23 85 views
2

我一直在使用zc.buildout越來越多,我遇到了一些我有解決方案的食譜的問題。如何爲Cheeseshop(pypi)上託管的軟件包作出貢獻?

這些包裝一般分爲幾類:

  1. 包裝沒有明顯鏈接到一個項目現場
  2. 包的鏈接來釋放像github上或谷歌代碼

設置#託管服務2比#1更好,但並不好,因爲在這兩種情況下,我都必須等待開發人員應用這些更改,然後才能使用更新的軟件包構建。

我到目前爲止所做的一切基本上是分包,給它一個不同的名稱並將其上傳到pypi,但這造成了冗餘,我認爲只會加重問題的嚴重性。

一個可能的解決方案是使用個人服務器包索引,我會上傳代碼的更新版本,直到開發人員更新他/她的包。這是可行的,但它增加了額外的工作,我寧願避免。

有沒有更好的方法來做到這一點?

謝謝

回答

3

您的「上傳我的個性化叉」解決方案聽起來像一個可怕的想法。你應該嘗試http://pypi.python.org/pypi/collective.recipe.patch,它可以讓你自動補丁雞蛋。嘗試setting up a local PyPi-compatible index。我想你也可以在find-links =的目錄(不只是一個http:// url)包含你的個人版本的「幾乎足夠好」的軟件包。您也可以嘗試猴子修補有缺陷的軟件包,或利用Zope組件模型來覆蓋新軟件包中的必要位。通常,真正的作者被列在軟件包的源代碼中,即使他們決定不把它們的名字放在PyPi上。

我一直在試圖減少我使用的軟件包的自定義版本的數量。通常我通過將src/some.project鏈接到該項目代碼的簽出來開發雞蛋來定製包。每次編輯這些軟件包時,我都不必重新制作新的蛋。

很多用於構建的Python包都在Plone的svn集合中。獲取對該存儲庫的提交訪問相對容易。

+0

http://pypi.python.org/pypi/collective.recipe.patch 是一個很好的解決方案,因爲我可以生成一個補丁,然後將其發送給開發人員並繼續進行開發。 – 2009-09-23 22:50:34