跳转到主要内容

为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 (11.3 kB 查看散列)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面