2014-09-10 41 views
0

的外部文件我建立一个包装上的Python 2.7.6 32位Windows 32构建蟒蛇轮,其中包括SVN:对詹金斯

唯一确定的一个包的一些组件的源是SVN“分享”。这家公司的惯例是使用svn:externals将它包含到你的项目中。

建立这个包的正常途径是:

python setup.py bdist_wheel 

全部显示正常我的工作站上(这里我检查了在TortoiseSVN的代码),但是当我在詹金斯运行相同的过程中bdist_wheel过程做不包括通过svn:externals获取的任何.py文件。

阅读完文档后,这似乎是因为一个功能,该功能根据SVN跟踪哪些文件来识别哪些脚本是软件包的一部分。看起来,由于詹金斯检查文件的结果,bdist_wheel看到我使用SVN并假定它知道如何确定哪些文件被跟踪,但得到的答案是错误的。

我需要的是一种方法来试图猜测我关心哪些文件停止bdist_wheel命令(其实我是想在项目中的每个.py文件被收录,不管它是如何被带入)

我试着用MANIFEST.in文件指定我需要的文件,但没有奏效。

recursive-include externals *.py 

在这个例子中,“外部材料”是在我的源代码树中的顶级目录包含了初始化 .py文件和一堆SVN的:external'd目录。只有init文件可以在内置的whl文件中看到。

很不幸,这使得.py文件的行为,如果他们的数据,在日志中我可以看到这一点:

copying build\lib\externals\security\credentials.py -> build\bdist.win32\wheel\foopackage-0.0.4.data\..\externals\security 

这显然不是一个真正的解决方案!

Pip,Virtualenv和所有相关工具都是最新的稳定版本。

回答

0

事实证明,这个问题是由Jenkins对自己的仓库使用非常古老的SVN标准(1.4)引起的。切换到1.7可以纠正这种行为。