从标记创建python sdists

tags2sdists的Python项目详细描述


标签2列表

tags2sdists将python sdists从标记创建到可以用作 公司内部的pypi(python包索引)。

基本操作

tags2sdists查看两个目录:

  • 带有签出的源目录(“checkoutdir”)。每次结账(SVN中继 checkout,git/hg clone)根据该版本检查标记 控制系统。
  • 一个目标目录(“sdistdir”),其中每个包目录由 它的名字像PACKAGENAME-1.2.tar.gz一样。

这两个目录通过检查 在版本控制系统中可用,但在目标系统中缺少 目录。如果缺少,则生成“sdist”(.tar.gz源发行版) 并放在目标目录中。

使用量

tags2sdists提供tags2sdists命令:

Usage: tags2sdists CHECKOUTDIR SDISTDIR
    CHECKOUTDIR: directory with checkouts
    SDISTDIR: directory with sdist package directories

Options:
  -h, --help     show this help message and exit
  -v, --verbose  Show debug output
  -q, --quiet    Show minimal output

设置

安装tags2sdists本身就像pip install tags2sdistseasy_install tags2sdists或将其包含在常规的构建中 态度。

接下来需要checkoutdir和sdistdir目录。

checkoutdir:您需要一个签出目录。所以用手做是 好的。但是当您使用svn时,带有svn:externals的目录可能是 最方便。对于其他一切(以及svn),我都会使用checkoutmanager。做一个 配置文件(checkoutmanager.cfg)如下:

[internalprojects]
vcs = git
basedir = /srv/packages/var/checkouts/
checkouts =
    git@github.com:lizardsystem/nensskel.git
    git@github.com:lizardsystem/lizard-ui.git
    git@github.com:lizardsystem/tags2sdists.git

设置一个运行checkoutmanager --configfile=YOURCONFIGFILE的cron作业,它将更新基本目录中的签出 已配置。(在同一个cronjob中,随后启动tags2sdists

sdistdir:只要在某个地方有一个目录就行了。你会得到一个 目录结构在那里。

用tags2sdists生成的结构是 如果让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 =
    ...

学分

标签列表的变更日志

1.2(2015-05-26)

  • 补偿较新的setuptools版本。

1.1(2013-07-12)

  • 寻找丢失标签的新方法:我们保留旧标签 不需要的/错误的/重命名的。
  • 从丢失列表中删除名为“dev”的标记 标签。

1.0(2013-01-15)

  • 修正了temp dir cleanup:在某些情况下,它留下了 空目录。

0.7.1(2011-12-08)

  • 在0.7的临时目录清理之后切换回正确的目录。

0.7(2011-12-08)

  • 添加了更多与0.6的角案例相关的日志记录。
  • 运行后清除temp dir。

0.6(2011-12-07)

  • 补偿包被重命名的角落情况。

0.5(2011-10-17)

  • 修复签出目录中的错误setup.py。一个错误会 在中生成名为Traceback\ (most\ recent\ call\ last):的目录 sdist目录…

0.4(2011-10-12)

  • 在内部,命令行上传递的目录是 绝对的。因为有很多os.chdir()在运行,所以很有必要。

0.3(2011-10-12)
  • 添加了文档。
  • 将脚本从make_sdists重命名为tags2sdists。

0.2(2011-10-11)

  • 添加了结合sdist tarball创建和目标的脚本 目录解析并生成所有必要的tarball。
  • 添加了一个sdist tarball的创建(通过zest.releaser)。

0.1(2011-10-10)

  • 添加了对目标目录的sdists解析。
  • 由Nensskel创建的初始库骨架。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用Java学习Eclipse可视化编辑器Swing   eclipse如何找到运行Java程序所需的时间?   JAVA用于在Tomcat 8上运行Jena API的lang.UnsupportedClassVersionError   java在Main中调用字符串方法   javascript“子进程”。exec无法运行Java函数   java如何使用Gmail API获取电子邮件正文内容   java为什么客户端看不到服务器发送的第一条消息?   java无法在安卓 WebView中滚动到顶部   从服务器运行web服务时,java代码中的日期为空   从子任务返回后执行后台任务时发生java错误   java无法一致地处理弹出窗口   java(Android)通过蓝牙向µ控制器发送字节   java无法在emulator中启动AVD?安卓工作室   Android Java应用程序正在冻结,没有返回错误消息   java如何使用TestNg记录测试历史?