跳转到主要内容

使用jarn.mkrelease自动化发布eggs

项目描述

这是一个与zc.buildout、mr.developer和jarn.mkrelease配合使用的内部EEA工具。它的目的是自动化一系列10个步骤,这些步骤是生成和上传egg到eggrepo所必需的。

这十个步骤包括

  1. 将version.txt升级到正确版本;从-dev到final

  2. 更新历史文件,记录发布日期;记录最终发布日期

  3. 在包目录中运行“mkrelease -d eea”

  4. (可选)运行“python setup.py sdist upload -r eea”

  5. 更新buildout中的versions.cfg文件:svn up eea-buildout/versions.cfg

  6. 更改eea-buildout/versions.cfg中包的版本

  7. 提交versions.cfg文件:svn commit versions.cfg

  8. 升级包版本文件;从final到+1-dev

  9. 更新历史文件。添加Unreleased部分

  10. 提交包的开发版本。

注意:eggmonkey是scm意识到的,所以它会根据需要切换到使用svn、git或hg,但只有git和svn是经过更好测试的scm选项。

要求

eea.eggmonkey需要python2.6+

安装

要使用它,您需要将eea.eggmonkey添加为zc.buildout的一个扩展,例如

[buildout]

extensions =
    mr.developer
    eea.eggmonkey

parts =
    monkey
    ...

此外,您需要添加一个新部分(如果尚未添加python26部分,则需要添加python26部分)

[monkey]
recipe = zc.recipe.egg
eggs = eea.eggmonkey
python = python26

[python26]
executable = /usr/bin/python2.6

使用方法

在您使用它之前,您至少需要运行一次bin/buildout(或bin/develop)。这允许eggmonkey了解源和自动检出中的包。

之后,您可以使用bin中的monkey脚本。通过运行以下命令了解其参数:

  • bin/monkey -h

典型用法如下

  • bin/monkey eea.indicators

您可以在命令行上指定多个包,它们都将被处理

  • bin/monkey eea.indicators eea.workflow eea.version

或者,如果您想发布buildout自动检出部分中指定的所有egg

  • bin/monkey -a

有一个特殊的选项可以解决将egg注册到eggrepos中的错误,并将运行一个“python sdist upload”操作,使用-u开关

  • bin/monkey -u eea.indicators

如果您正在手动上传,您可能需要指定不同的python路径,使用-p开关

  • bin/monkey -u eea.indicators -p ~/tools/bin/python

如果您需要指定mkrelease脚本的路径,可以将它作为脚本的参数给出,使用-m开关

  • bin/monkey eea.indicators -m /path/to/bin/mkrelease

如果您不想指定此路径,请将mkrelease脚本放置在PATH环境变量中(通常可以通过激活其virtualenv来实现)。

最后,如果您要将egg发布到不同的存储库,或者如果您已将eggrepo.eea.europa.eu别名为“eea”之外的其他名称,则可以使用-d开关手动指定

  • bin/monkey -d eeaeggs eea.indicators

如果您想禁止所有网络操作(例如,在测试期间),可以运行

  • bin/monkey -n eea.indicators

如果您想跳过versions.cfg更新(例如在不含versions.cfg的buildout中运行),可以运行

  • bin/monkey -B eea.indicators

如果您在正常操作中遇到错误,可以使用-R标志继续发布过程(在手动解决问题后)

  • bin/monkey -R 4 eea.indicators

使用配置文件提供默认值

您可以在以下格式中编写文件 ~/.eggmonkey

[*]
python = /path/to/python
mkrelease = /path/to/mkrelease
manual_upload = true
domain = eea

[eea.indicators]
domain = eea pypi

这是一个ConfigParser文件格式,其中每个部分都是一个包名,除了星号(*),它为所有包提供默认值。以下选项可以进行配置:python、mkrelease、manual_upload和domain。domain选项可以是空格分隔的包存储库别名列表,其中将上传包。

系统需求

需要libsvn-dev和libaprutil1-dev(在Debian系统上)以及apr-util_develop和subversion_develop(在Redhat系统上)

变更日志

4.5 - (2017-11-15)

  • 错误修复:不要清理fs存储库的src [avoinea 引用 #89449]

4.4 - (2017-09-11)

  • 变更:在未知buildout SCM上回退到GenericSCM [avoinea 引用 #87600]

  • 错误修复:修复了print_unreleased_packages的退出码 [avoinea 引用 #87909]

4.3 - (2017-04-24)

  • 变更:更新了包信息 [eduard-fironda]

4.2 - (2017-04-04)

  • 变更:在执行之前打印步骤编号,以便方便恢复 [tiberich]

  • 变更:在buildout.py中修复了pep8问题 [tiberich]

4.1 - (2017-01-17)

  • 错误修复:修复了print_pypi_plone_unreleased_eggs [avoinea]

4.0 - (2016-11-14)

  • 变更:在monkey.py和scm.py中修复了pep8问题 [tiberich]

  • 错误修复:“git pull”不再需要“-u”标志 [tiberich #73195]

  • 功能:允许恢复损坏的发布过程。使用-R<步骤编号>,例如bin/monkey -R4 eea.something,在步骤4中断并中止发布过程后恢复发布过程 [tiberich #73195]

3.9 - (2016-08-03)

  • 变更:在pypi发布检查中包含sparql-client [avoinea]

3.8 - (2015-12-07)

  • 变更:在setup.py中添加了系统依赖项 [voineali 引用 #27406]

3.7 - (2015-11-23)

  • 错误修复:修复了pypi上的发布检查 [voineali]

3.6 - (2015-11-16)

  • 变更:禁用plone.org上的发布检查 [voineali]

3.5 - (2015-10-05)

  • 错误修复:使用eventlet防止连接挂起 [lucas 引用 #29063]

3.4 - (2015-06-03)

  • 错误修复:修复了旧版本检查 [ghicaale 引用 #25722]

3.3 - (2015-06-02)

  • 错误修复:修复了错误导入 [ghicaale 引用 #25722]

3.2 - (2015-02-03)

  • 功能:更新版本规范以遵循PEP440版本规范 [olimpiurob 引用 #22612]

3.1 - (2014-09-19)

  • 功能:现在所有错误报告现在都包括存储库的路径。[ghicaale 引用 #20520]

3.0 - (2014-02-13)

  • 变更:回到egg 2.8中引入的行为,因为2.9在尝试添加文件时会出现错误 [ichimdav]

2.9 - (2014-02-13)

  • 变更:更好的修复了在get_scm中使用提交时的错误 [ichimdav]

2.8 - (2014-02-13)

  • 错误修复:修复了通过传递a标志提交版本提升时的get_scm提交 [ichimdav]

2.7 - (2014-02-03)

  • 功能:使用pypi JSON API检查包是否在pypi上发布 [voineali]

2.6 - (2014-01-22)

  • 错误修复:移除了错误添加的引用块 [ichim-david 引用 #18064]

  • 错误修复:修复了添加MANIFEST.in以符合scm.py模块中API更改的问题 [olimpiurob]

2.5 - (2013-12-10)

  • 功能:添加-B选项。如果提供它,将跳过versions.cfg更新 [batradav]

2.4 - (2013-09-26)

  • 错误修复:修复了控制消息以在python 2.6和2.7上工作 [ghicaale 引用 #16729]

2.3 - (2013-09-06)

  • 功能:添加了get_scm引发ValueError的详细信息 [szabozo0]

2.2 - (2013-08-09)

  • 错误修复:错误地添加了删除的行 [tiberich]

2.1 - (2013-05-16)

  • 功能:添加了检查pypi上但不在plone.org上发布的包的脚本 [voineali]

  • 错误修复:将check_latest脚本更改为使用.installed.cfg文件来获取egg信息,避免在buildout内部混乱,并依赖于似乎不太正常工作的zc.buildout.unloadextension [tiberich #14390]

2.0 - (2013-03-06)

  • 错误修复:在发布包之前提交version.txt和history.txt [tiberich #13987]

1.9 - (2013-02-08)

  • 错误修复:如果使用不兼容的zc.buildout版本,则不会失败。这用于清理源文件夹 [tiberich]

1.8 - (2013-01-28)

  • 错误修复:添加了有关包元数据中所需字段的信息 [tiberich]

1.7 - (2013-01-15)

  • 错误修复:从文件的第一字符中删除BOM [tiberich]

  • 错误修复:如果安装collective.dist失败,则不会中止 [tiberich]

1.6 - (2012-11-22)

  • 错误修复:当存储库源以斜杠结束时,修复了/src清理 [ghicaale 引用 #9527]

1.5 - (2012-11-22)

  • 错误修复:在没有在版本部分之间留下空行时改进了历史解析 [tiberich 引用 #10000]

1.4 - (2012-11-20)

  • 错误修复:在生成的MANIFEST.in中添加了换行符 [tiberich 引用 #5493]

1.3 - (2012-08-29)

  • 错误修复:在发布新egg时推送到GitHub上的标签 [voineali修复#5486]

1.2 - (2012-08-07)

  • 变更:将手动上传设置为默认操作,避免与eea eggrepo服务器的问题。[tiberich #5356]

1.1 - (2012-08-07)

  • 特性:添加了实用脚本,可以简单地使包处于-dev版本。这对于开发eggmonkey本身很有用。[tiberich #5356]

  • 错误修复:修复了默认域的处理[tiberich #5356]

  • 错误修复:修复了处理git仓库提交的处理[tiberich #5356]

1.0 - (2012-07-13)

  • 特性:改进了未发布egg的更改日志输出,使我们能快速了解每个未发布egg中有什么。[demarant引用#5224]

  • 变更:使用不同的版本策略来增加版本。现在我们从0.0.9跳到0.1.0,而不是0.0.10[tiberich #5293]

0.40 - (2012-06-12)

  • 错误修复:如果不忽略错误并且存在错误,则退出eggmonkey[tiberich]

0.39 - (2012-05-21)

  • 错误修复:修复了print_unreleased_packages的入口点[tiberich]

  • 错误修复:修复了HISTORY.txt文件的标记[cio babog引用#5231]

0.38 - (2012-05-21)

  • 错误修复:如果存在,则不要覆盖manifest文件[tiberich]

0.37 - (2012-05-21)

  • 错误修复:当遇到以修订号(格式为rNNN)开始的history条目行时不要失败[tiberich #3978]

  • 特性:使用zest.pocompile将po文件编译为mo文件[tiberich #5120]

0.36 - (2012-04-20)

  • 错误修复:修复scms[tiberich #4154]

0.35 - (2012-04-20)

  • 错误修复:修复scms[tiberich #4154]

0.34 - (2012-04-19)

  • 错误修复:修复scms[tiberich #4154]

0.33 - (2012-04-19)

  • 错误修复:修复了scms错误处理路径[tiberich #4154]

0.32 - (2012-04-19)

  • 错误修复:如果pypi或plone.org上有未发布的包,print_pypi_plone_unreleased_eggs sys以正确的退出代码(1)退出[tiberich]

  • 特性:也支持mercurial和git[tiberich #4154]

0.31 - (2012-01-04)

  • 特性:添加了print_pypi_plone_unreleased_eggs控制台脚本,该脚本将打印未在pypi或plone.org上发布的包[tiberich]

0.30 - (2011-10-07)

  • 特性:添加了print_unreleased_packages控制台脚本,该脚本将打印历史记录脏乱的包[tiberich]

  • 清理:pyflakes警告[ichimdav #4141]

  • 清理:pylint违规[ichimdav #4140]

  • 变更:在执行手动上传操作时使用--quiet标志[tiberich]

  • 错误修复:在因错误退出时打印步骤和说明[tiberich]

0.29 - (2010-12-10)

  • 错误修复:处理没有当前包条目的个人配置文件时修复了一个错误[tiberich]

  • 错误修复:修复了在离线模式下运行时打印消息的问题[tiberich]

  • 特性:允许处理具有发布版本修订号的版本号的history文件[tiberich]

0.28 - (2010-11-25)

  • 错误修复:即使在--no-network模式下运行,也始终安装collective.dist[tiberich]

0.27 - (2010-11-22)

  • 特性:允许在~/.eggmonkey中进行自定义配置[tiberich]

  • 变更:在运行mkrelease和easy_install时使用-q(安静)标志[tiberich #3858]

0.26 - (2010-11-19)

  • 错误修复:修复了使用-u开关发布egg中的错误[tiberich]

0.25 - (2010-11-16)

  • 特性:使用collective.dist检查包元数据的有效性[tiberich #3851]

  • 特性:现在可以指定多个存储库来注册和上传egg[tiberich #3850]

  • 变更:使用异常引发退出程序[tiberich]

0.24 - (2010-11-11)

  • 错误修复:改进了历史文件空行检测[tiberich #3807]

  • 错误修复:只有在允许网络操作时才执行svn up[tiberich #3807]

0.23 - (2010-11-10)

  • 变更:改进了将版本更改为-dev时的svn提交信息[tiberich #3807]

0.22 - (2010-11-10)

  • 变更:添加了版本增加的测试[tiberich #3807]

  • 错误修复:改进了版本增加的算法,现在我们也查看-svn版本[tiberich #3807]

  • 错误修复:改进了版本验证的算法[tiberich #3807]

  • 错误修复:测试mkrelease路径是否与python路径相同,以警告用户错误[tiberich #3807]

  • 错误修复:将svn update移到包健全检查的顶部[tiberich #3807]

  • 错误修复:在setup.py文件中查找数字版本,如果存在,则失败[tiberich #3807]

  • 错误修复:测试HISTORY.txt中的版本是否与version.txt中的版本相同[tiberich #3807]

0.21 - (2010-10-29)

  • 错误修复:在处理包之前运行svn up[tiberich #3806]

0.20 - (2010-10-28)

  • 特性:添加了--python配置选项,用于与手动上传一起使用[tiberich]

  • 变更:重构了消息打印[tiberich]

0.19 - (2010-10-20)

  • 如果缺失,则添加MANIFEST.in文件

0.18 - (2010-09-30)

  • 修改了sdist命令,使其生成zip文件而不是.tar.gz文件 [tiberich #3642]

0.17 - (2010-09-30)

  • 当步骤有参数时,删除y/n/q提示 [tiberich #3642]

0.16 - (2010-09-30)

  • 检查包名的有效性,并说明eggmonkey需要在buildout文件夹中运行 [tiberich #3642]

0.15 - (2010-09-28)

  • 错误修复:修复手动上传步骤的调试信息打印问题 [tiberich #3642]

0.14 - (2010-09-28)

  • 功能:处理setup.cfg导致手动上传提供svn版本的情况 [tiberich #3642]

  • 功能:打印运行中的命令的蓝色信息 [tiberich #3642]

0.13 - (2010-09-28)

  • 功能:检查从解析文件获取的版本是否有效 [tiberich #3642]

0.12 - (2010-09-28)

  • 错误修复:在开始处理包时检查包是否为-dev版本 [tiberich #3642]

0.11 - (2010-09-20)

  • 使用彩色输出使eggmonkey信息更容易区分

  • 在开始之前检查versions.cfg是否存在

  • 当使用-u标志时,在执行mkrelease时从用户那里获取输入,如果出错

  • 改进更改版本到开发时的提交信息

0.10 - (2010-09-17)

  • 为mkrelease脚本和包路径添加健全性检查

0.9 - (2010-09-16)

  • 更新readme文件,包含python2.6要求的详细信息

0.8 - (2010-09-16)

  • 修复处理历史文件中的错误

0.7 - (2010-09-16)

  • 修复增加versions.cfg的小错误

0.6 - (2010-09-16)

  • 使用shell进行手动上传操作

0.5 - (2010-09-16)

  • 更改手动上传的执行方式

0.4 - (2010-09-16)

  • 修复setup上传命令的执行

0.3 - (2010-09-16)

  • 修复monkey模块中setup.py的错误名称

0.2 - (2010-09-16)

  • mkrelease因eggrepo上不存在register命令而失败,现在我们处理这种情况 [tiberich]

0.1 - (2010-09-16)

  • 初始化提交 [tiberich]

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源分布

eea.eggmonkey-4.5.zip (40.9 kB 查看哈希值)

上传时间

由以下赞助

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