如何为Cheeseshop(pypi)上托管的软件包做出贡献?

时间:2009-09-23 20:55:41

标签: python collaboration buildout pypi

我越来越多地使用zc.buildout而且我遇到了一些我有解决方案的配方问题。

这些包通常分为几类:

  1. 与项目网站没有明显联系的包
  2. 包含指向免费托管服务(如github或Google代码)
  3. 的链接的包

    设置#2比#1更好,但不是更好,因为对于这两种情况,我必须等待开发人员应用这些更改才能使用更新的软件包构建。

    到目前为止,我一直在做的是基本上要求包,给它一个不同的名称并将其上传到pypi,但这会产生冗余,我认为只会加剧问题。

    一种可能的解决方案是使用个人服务器软件包索引,我将上传更新版本的代码,直到开发人员更新他/她的软件包。这是可行的,但它增加了额外的工作,我宁愿避免。

    有更好的方法吗?

    谢谢

1 个答案:

答案 0 :(得分: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集合中。获得对该存储库的提交访问权限相对容易。