为svn树中的项目生成sdists tarballs
sdistmaker的Python项目详细描述
SDIStmaker
从svn标记创建sdist tarballs,用于公司内部 SVN存储库。将sdist tarballs创建到一个目录中,然后可以为其提供服务 和阿帕奇。
在版本1.2之前,sdistmaker曾经被称为tha.sdistmaker。
安装和基本使用
一个简单的easy_install sdistmaker就足够了。这将为您提供两个脚本:
- make_sdist,主要用于测试目的。将svn标记url和 目标目录,它将释放。
- sdists_from_tags是主脚本。它在svn结构中搜索 合适的标签并发布。
首先,运行sdists_from_tags。它将创建一个var/private 目录并填入(例如!)所有的热情释放者释放。
两个脚本都有一个显示所有可用选项的--help选项和一个 使用说明。
配置
配置是通过python文件实现的。最简单的开始方法是 正在打印sdistmaker自己的基本默认值.py,方法是:
$> sdists_from_tags --print-example-defaults
将输出保存为python文件(建议:defaults.py)。那你可以 根据您的喜好调整它并与sdists_from_tags --defaults-file=defaults.py一起使用。默认文件是在一行中记录的,因此 应该很容易适应。
在建筑中使用
您可以在这样的构建中使用sdistmaker:
[buildout] parts = sdists [sdists] recipe = zc.recipe.egg eggs = sdistmaker scripts = sdists_from_tags # arguments = # defaults_file='${buildout:directory}/defaults.py',
defaults.py的创建方式与上面相同。
结合使用sdistmaker和真实的pypi
使用sdistmaker生成的结构是易于安装的完美索引 如果让apache托管它,就可以构建它。唯一的问题:你只能有一个 索引(注意:pip显然支持多个索引)。你可以解决这个问题 当找不到什么东西时,让apache将您重定向到pypi是个问题
下面是一个示例apache配置片段:
# Allow indexing Options +Indexes IndexOptions FancyIndexing VersionSort # Start of rewriterules to use our own var/private/* packages # when available and to redirect to pypi if not. RewriteEngine On # Use our robots.txt: RewriteRule ^/robots.txt - [L] # Use our apache's icons: RewriteRule ^/icons/.* - [L] # We want OUR index. Specified in a weird way as apache # searches in a weird way for index.htm index.html index.php etc. RewriteRule ^/index\..* - [L] # Use our var/private/PROJECTNAME if available, # redirect to pypi otherwise: RewriteCond /path/on/server/var/private/$1 !-f RewriteCond /path/on/server/var/private/$1 !-d RewriteRule ^/([^/]+)/?$ http://pypi.python.org/pypi/$1/ [P,L] # Use our var/private/PROJECTNAME/project-0.1.tar.gz if available, # redirect to pypi otherwise: RewriteCond /path/on/server/var/private/$1 !-d RewriteRule ^/([^/]+)/([^/]+)$ http://pypi.python.org/pypi/$1/$2 [P,L]
使用apache服务索引
您可以通过两种方式使用这样一个定制的apache服务索引。简易安装有 -i用于传递索引的选项:
$> easy_install -i http://packages.my.server/ zest.releaser
在buildout中,可以这样设置:
[buildout] index = http://packages.my.server/ parts = ...
报告错误
您可以在以下位置报告错误或功能请求 http://bitbucket.org/reinout/sdistmaker/issues/
待办事项
- 目前没有具体的消息。
sdistmaker的变更日志
1.4(2010-03-19)
- 当setup.cfg包含dev和revisionmarkers时,不要崩溃。[沃特文]
1.3(2010-03-01)
- 添加MANIFEST.in以获得mercurial的可靠版本对不起 搞乱了1.2版本,多亏了毛里兹推出了一个 1.2.2条。
1.2.2(2010-02-26)
- 修复了丢失todo.txt的中断版本。
1.2.1(2010-02-25)
- 小文档修复
1.2(2010-02-25)
- 已从tha.sdistmaker重命名为sdistmaker。
- 巨大的文档改进。
- 对脚本使用optparse,以便它们有更好的使用消息。 这大大改进了文档。
- 不再在长描述中显示来自USAGE.txt的doctest。 那只是不可读的文档。
- 丢失时将创建输出目录
1.1(2009-12-22)
- 文件更新。
1.0(2009-12-21)
- setup.py清除。
0.4(2009-11-09)
- 现在,正确地替换base和base_on_服务器。
0.2(2009-11-09)
- 在我们结束后清理tempdir重新完成然后离开 在杀死它之前。
- 使用buildout的bin/python,以便在 没有全局设置工具的服务器。假设我们总是 建筑内部:我很好。
0.1(2009-11-06)
- 添加了用于创建所有tarball的sdist_from_tags脚本。
- 添加了用于创建单个sdist的make_sdist脚本
- 由Thaskel创建的初始库骨架。