2009-09-23 74 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