由'sdistmaker'取代(之前:为svn树中的项目创建sdists tarballs)
项目描述
由sdistmaker取代
警告:tha.sdistmaker现在称为sdistmaker。1.1版本与此处的sdistmaker 1.2之间没有功能上的变化(除了更好的命令行选项和改进的文档)。
以下为旧文档。
tha.sdistmaker
从svn标签创建sdist tarballs,旨在用于公司内部的svn仓库。在您可以使用apache服务的目录中创建sdist tarballs。
由Reinout van Rees在The Health Agency编写。
更多详细信息请参阅src/tha/sdistmaker/USAGE.txt。
tha.sdistmaker的使用方法
tha.sdistmaker有两个主要用途
制作并存储单个标签的sdist tarball。
遍历所有标签并确保它们都有sdist tarball。
测试设置
放置tarballs的“Pypi”目录
>>> print pypidir PYPI
Monkeypatching以防止实际操作发生
>>> import commands >>> orig_getstatusoutput = commands.getstatusoutput >>> output_results = [''] >>> def mock_getstatusoutput(cmd): ... print "Command:", cmd ... return 0, output_results.pop(0) >>> commands.getstatusoutput = mock_getstatusoutput >>> commands.getstatusoutput('make tea') Command: make tea (0, '')>>> import shutil >>> orig_copy = shutil.copy >>> def mock_copy(src, dest): ... print "Mock copy %s -> %s" % (src, dest) ... open(dest, 'w').write('mock') >>> shutil.copy = mock_copy
制作单个标签的sdist tarball
>>> from tha.sdistmaker import maker >>> tag = 'http://example.org/repo/project/tags/0.1'
脚本会从标签执行svn checkout,并使用setuptools获取名称和版本,并创建sdist。然后将其复制到以项目命名的子目录中的pypi dir。
>>> output_results = ['', ... 'project', ... '0.1', ... '', ... ] >>> maker.main(tag=tag, destination=pypidir) Doing checkout of http://example.org/repo/project/tags/0.1 Command: svn co http://example.org/repo/project/tags/0.1 ... Detecting name and version Command: python setup.py --name Name: project Command: python setup.py --version Version: 0.1 Making sdist tarball Command: python setup.py sdist <BLANKLINE> Creating directory PYPI/project Copying tarball project-0.1.tar.gz Mock copy dist/project-0.1.tar.gz -> PYPI/project/project-0.1.tar.gz
为项目创建一个新目录
>>> import os >>> os.listdir(pypidir) ['project']
tarball就在那里
>>> sorted(os.listdir(os.path.join(pypidir, 'project'))) ['project-0.1.tar.gz']
新版本已放置在旁边,一切正常
>>> tag = 'http://example.org/repo/project/tags/0.2' >>> output_results = ['', ... 'project', ... '0.2', ... '', ... ] >>> maker.main(tag=tag, destination=pypidir) Doing checkout of http://example.org/repo/project/tags/0.2 Command: svn co http://example.org/repo/project/tags/0.2 ... Detecting name and version Command: python setup.py --name Name: project Command: python setup.py --version Version: 0.2 Making sdist tarball Command: python setup.py sdist <BLANKLINE> Copying tarball project-0.2.tar.gz Mock copy dist/project-0.2.tar.gz -> PYPI/project/project-0.2.tar.gz >>> os.listdir(pypidir) ['project'] >>> sorted(os.listdir(os.path.join(pypidir, 'project'))) ['project-0.1.tar.gz', 'project-0.2.tar.gz']
还有一个第二个项目
>>> tag = 'http://example.org/repo/another/tags/0.2' >>> output_results = ['', ... 'another', ... '0.2', ... '', ... ] >>> maker.main(tag=tag, destination=pypidir) Doing checkout of http://example.org/repo/another/tags/0.2 Command: svn co http://example.org/repo/another/tags/0.2 ... Detecting name and version Command: python setup.py --name Name: another Command: python setup.py --version Version: 0.2 Making sdist tarball Command: python setup.py sdist <BLANKLINE> Creating directory PYPI/another Copying tarball another-0.2.tar.gz Mock copy dist/another-0.2.tar.gz -> PYPI/another/another-0.2.tar.gz >>> sorted(os.listdir(pypidir)) ['another', 'project'] >>> sorted(os.listdir(os.path.join(pypidir, 'project'))) ['project-0.1.tar.gz', 'project-0.2.tar.gz'] >>> sorted(os.listdir(os.path.join(pypidir, 'another'))) ['another-0.2.tar.gz']
恢复原始文件
>>> commands.getstatusoutput = orig_getstatusoutput >>> shutil.copy = orig_copy
待办事项
可能有很多事情。
tha.sdistmaker 的变更日志
1.1 (2009-12-22)
更新文档。
1.0 (2009-12-21)
清理 setup.py。
0.4 (2009-11-09)
现在正确地替换 base 和 base_on_server。
0.2 (2009-11-09)
在完成后清理 tempdir。在删除目录之前先 cd 到该目录外。
使用 buildout 的 bin/python,以便在全局没有 setuptools 的服务器上运行时也能获得 setuptools。这假设我们总是在 buildout 中运行:对我来说没问题。
0.1 (2009-11-06)
添加了 sdist_from_tags 脚本,用于创建所有 tarball。
添加了 make_sdist 脚本,用于创建单个 sdist。
由 thaskel 创建的初始库骨架。
项目详情
tha.sdistmaker-1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0f72e9f7c4611e7e11af17c1c45795bc93a0e91c4275f6b8adae8083601e04b4 |
|
MD5 | f9a56a11b820cc939aeee825cf329757 |
|
BLAKE2b-256 | 25748ab012ef30dde1374ef13a69f08eec994ae287bb436feae9ab96c860bb26 |