Python 如何设置plone产品的开发

Python 如何设置plone产品的开发,python,plone,buildout,Python,Plone,Buildout,我想为已定义的Plone安装/版本开发一些产品,我无法更改这些产品(3.3.5) 组织我的源代码树的最佳方法是什么,这样我就不必将一个巨大的plone实例放入源代码管理中,而它无论如何都不会改变?我仍然想使用buildout进行本地检查,不过 你推荐什么 我在Windows上,更喜欢git而不是hg,但可以同时使用这两种工具…一般来说,这是通过mr.developer实现的。您可以使用这样的构建: [buildout] extends = https://raw.githubuserc

我想为已定义的Plone安装/版本开发一些产品,我无法更改这些产品(3.3.5)

组织我的源代码树的最佳方法是什么,这样我就不必将一个巨大的plone实例放入源代码管理中,而它无论如何都不会改变?我仍然想使用buildout进行本地检查,不过

你推荐什么


我在Windows上,更喜欢git而不是hg,但可以同时使用这两种工具…

一般来说,这是通过
mr.developer
实现的。您可以使用这样的构建:

[buildout]
extends = 
    https://raw.githubusercontent.com/plock/pins/master/plone-4-3
    https://raw.githubusercontent.com/plock/pins/master/dev
然后在
[buildout]
部分和
[sources]
部分将源代码添加到
自动签出
参数,格式如下所述:

比如:

[buildout]
auto-checkout = my.package

[sources]
my.package = git https://url.to/my.package
然后像往常一样,将包添加到
plone.recipe.zope2instance
部分的
eggs
参数中:

[instance]
recipe = plone.recipe.zope2instance
eggs =
    Pillow
    Plone
    my.package
有关工作示例,请参见Plone coredev构建:

不要忘记,
[buildout]
部分有一个
develope
参数,允许您指定“developeg”的文件系统路径(但它不执行签出):


我不太清楚你所说的组织源代码树是什么意思

无论如何,您都要查看:

  • 用于生成包结构

  • 开发者手册文档

  • 和社区提供的howto

  • 如果可以的话,还可以买一本Martin Aspeli的《专业Plone开发》一书


您选择的SCM与Plone无关。您可以自己做出选择。

只需在egg/产品的根目录中创建buildout.cfg文件,并从集合中扩展plonetest buildout:

[buildout]
extends =
    http://svn.plone.org/svn/collective/buildout/plonetest/plone-3.3.x.cfg

package-name = collective.mypackage
这样,您只需要向存储库添加两个文件(buildout.cfg和bootstrap.py)

有关完整示例,请参见


但是,如果您开发多个软件包,那么mr.developer可能是一个不错的选择。

我通常也会在[buildout]部分中添加always checkout=true,以便在运行buildout时自动更新我的签出。我还添加了“eggtractor”,这样您甚至不需要指定“develop=”变量。只需使用
extensions+=buildout.eggtractor
我查找了,发现
总是签出
确实(如我所希望的)指的是
自动签出
包。美好的
[buildout]
extends =
    http://svn.plone.org/svn/collective/buildout/plonetest/plone-3.3.x.cfg

package-name = collective.mypackage