为svn树中的项目创建sdists tarballs
项目描述
sdistmaker
从svn标签创建sdist tarballs,适用于公司内部svn仓库。将创建的sdist tarballs放入可以由apache服务的目录。
sdistmaker在版本1.2之前被称为tha.sdistmaker。
安装和基本使用
简单的easy_install sdistmaker就足够了。这为您提供了两个脚本
make_sdist,主要用于测试目的。传递给它一个svn标签url和一个目标目录,它将创建一个发布。
sdists_from_tags是主要的脚本。它在svn结构中搜索合适的标签并发布它们。
开始时,只需运行sdists_from_tags。它将创建一个var/private目录,并用(例如!)所有zest.releaser发布填充它。
这两个脚本都有一个--help选项,显示所有可用选项和使用说明。
配置
配置是通过一个python文件来完成的。最简单的方法是通过打印sdistmaker的自己的base defaults.py来开始,方法如下
$> sdists_from_tags --print-example-defaults
将输出保存为python文件(建议:defaults.py)。然后您可以将其修改成您喜欢的样子,并使用sdists_from_tags --defaults-file=defaults.py。默认文件是内联文档的,因此应该很容易修改。
在buildout中使用
您可以使用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生成的结构是easy_install和buildout的一个完美索引,如果你让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提供的索引两种方式。easy_install有一个-i选项来传递索引
$> easy_install -i http://packages.my.server/ zest.releaser
在buildout中,您可以这样设置
[buildout] index = http://packages.my.server/ parts = ...
报告错误
您可以在http://bitbucket.org/reinout/sdistmaker/issues/报告错误或功能请求
致谢
由Reinout van Rees编写。在The Health Agency开始,在Nelen & Schuurmans改进。
Wouter Vanden Hove修复了dev-and-revision-marker的修复。
待办事项
目前没有具体的事情。
sdistmaker的变更日志
1.4 (2010-03-19)
当setup.cfg包含dev-and-revisionmarkers时,不要崩溃。[WouterVH]
1.3 (2010-03-01)
添加了MANIFEST.in以获得mercurial的可靠发布。为1.2版本的混乱道歉,并感谢Maurits推出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_server。
0.2 (2009-11-09)
清理我们完成后的tempdir。并且在删除该目录之前进入该目录。
使用buildout的bin/python,以便我们在没有全局setuptools的服务器上运行时也能获得setuptools。这假设我们始终在buildout中运行:对我来说没问题。
0.1 (2009-11-06)
添加了sdist_from_tags脚本以创建所有tarball。
添加了make_sdist脚本以创建单个sdist。
由thaskel创建了初始库骨架。
项目详细信息
sdistmaker-1.4.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 4c80618e92b88bd867e5b2147e5752176fa41296094896603895c48da9f36499 |
|
MD5 | f4cd512ccfafad839a0b9b41b0aef117 |
|
BLAKE2b-256 | 68f6f416ede8b651e3add6b49661c451a4543e83318b301e0e9cb9fa1873782c |