跳转到主要内容

由'sdistmaker'取代(之前:为svn树中的项目创建sdists tarballs)

项目描述

由sdistmaker取代

警告:tha.sdistmaker现在称为sdistmaker。1.1版本与此处的sdistmaker 1.2之间没有功能上的变化(除了更好的命令行选项和改进的文档)。

以下为旧文档。

tha.sdistmaker

从svn标签创建sdist tarballs,旨在用于公司内部的svn仓库。在您可以使用apache服务的目录中创建sdist tarballs。

Reinout van ReesThe 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 (8.6 kB 查看哈希值)

上传时间

由以下组织支持