跳转到主要内容

buildout配置文件标准化器

项目描述

buildout_helpers

您是否处理了许多buildout?您是否在努力使它们保持最佳实践的最新状态?buildout注解的输出对您来说是否不足够?您是否在保持buildout可重复性方面遇到困难?此软件包提供辅助工具,帮助您解决这些以及更多问题!

功能

  • normalize_buildout

    该工具按字母顺序排序各个部分以及每个部分中的键,还对一些特殊的多行值,如eggs,进行排序。为开发者提供源部分按属性对齐,因此具有相似分支的多个源签出更容易识别,因为每个源签出的分支值都打印在同一列中。一些特殊的部分总是位于末尾或开头。

  • freeze

    此工具下载所有buildout配置并将其存储在本地。buildout文件被修改以链接到下载的资源。每个下载的资源都有一个包含信息的标题,允许freeze更新资源!

  • version_info

    此工具类似于buildout的annotate命令。但此工具只提供有关版本的信息。对于每个软件包,它显示buildout将使用的版本以及其他buildout文件所固定的版本。如果您扩展了buildout文件,以屏蔽来自buildout文件的较新版本,则版本将用红色打印。因此,如果您有一些版本固定并更新到Plone的新版补丁版本,您可以通过查找红色打印输出,这可以为您提供有关您自己的配置文件中过时的版本固定的提示。

normalize_buildout的详细功能

默认情况下,normalize_buildout会替换现有的配置文件。如果构建文件无法解析,则不会修改任何文件。它有一个命令行选项,可以在不更改文件的情况下仅通过退出码报告文件是否未规范化。这可以轻松集成到检查工具或CI工具中。

该脚本理解某些部分和键的特殊含义

  • buildout部分总是第一部分

  • 版本和来源部分总是最后一部分

  • recipe键总是第一部分

  • eggs和zcml值将被排序。

  • 来源条目的键将被排序,值将被缩进,以便分支设置都在同一列。

  • mr.developer选项被分组,并与其他构建选项分开

所有排序都是不区分大小写的。部分和键上面的注释与键或部分一起随机排列。您可以说明为什么需要固定特定版本的包,并且在规范化后,注释仍然在正确的版本指定符上方。

freeze的详细功能

Freeze将所有外部文件下载到external_buildouts目录。引用这些文件的构建文件将更新它们的extends值,以指向本地资源。

每个下载的资源都有一个特殊头。它警告您修改文件,并包含从哪里下载资源以及ETAG值。在重复调用时,我们将检查资源是否实际上已更改。因此,如果服务器响应304,则不会再次下载资源。这对于像quaive项目这样的重CI用户很重要。他们有时会从github那里受到限制。

version_info的详细功能

已经在通用功能部分中说明了所有内容。

安装

您可以使用pip或zc.buildout安装该软件包。

PIP

$ pip install buildout_helpers

Buildout

[buildout]

 ...
 [extras]
 recipe = zc.recipe.egg
 eggs =
     buildout_helpers

然后运行“bin/buildout”

对于与CI一起使用,我们建议使用requirements.txt文件与pip一起安装buildout_helpers、setuptools的指定版本和zc.buildout。

用法

normalize_buildout

您可以使用此命令执行三个常见操作。

  1. 检查配置文件是否已规范化(对于CI)

    $ normalize_buildout --check *.cfg etc/*.cfg versions/*.cfg

    这将返回空值,或者警告构建文件未规范化。对于CI,它将有一个假的返回码。

  2. 就地规范化配置文件

    $ normalize_buildout buildout.cfg

    这将规范化构建文件。

  3. 从stdin读取配置文件并将其打印到stdout,在vim中很有用

    :%!normalize_buildout -

    在失败时,此命令将打印出未修改的配置文件。

freeze

最初使用freeze下载外部资源。

$ freeze buildout.cfg

此命令使与buildout一起工作的新方法更容易处理。现在,您可以轻松地将公司范围内的默认构建文件放在中央服务器上。如果没有像freeze命令这样的辅助工具,您必须在两个坏选择之间做出选择

  • 直接引用配置文件。

    如果您以这种方式更新构建文件,以至于每个引用的项目都需要更新,您将立即破坏它们。如果没有定期触发构建的CI系统,您可能甚至不会在破坏生产中的新构建文件运行之前注意到这一点。

  • 将配置文件复制到项目中

    您知道会发生什么,您永远不会更新文件,突然您就有了N个最佳实践。

使用freeze和适当的CI系统,您可以获得两种选项的优点,而没有缺点。使用freeze来拥有本地副本。在您的CI系统中,有两个测试。一个是正常的,另一个是在运行buildout之前运行freeze的测试。这样,您可以测试当前配置是否有效,以及当前配置是否可以使用最新的更新构建文件工作!

version_info

该命令在项目更新期间很有帮助。如果您想将您的Plone站点更新到最新的Plone补丁版本,请从Plone引用最新的URL,例如 http://dist.plone.org/release/4.3.7/versions.cfg,然后运行version_info命令并查找用红色打印的版本信息。在这种情况下,您可能需要更新或删除自己的版本标记。

贡献

贡献者

变更日志

1.0.1 (2016-05-02)

  • 修复源存储库fs的bug [do3cc]

1.0.0 (2016-03-01)

  • 此软件包在生产环境中运行良好。不再有测试版本。 [do3cc]

  • 将normalizer的命令行参数从-c更改为-C。–check保持不变,应优先用于CI配置中。 [do3cc]

1.0.0b5 (2015-12-16)

  • 对normalize_buildout的稍好错误处理。 [do3cc]

  • 修复版本信息中的错误,未正确处理远程URL。 [do3cc]

  • 修复版本信息中的错误,扩展顺序相反。 [do3cc]

  • Normalize现在不区分大小写进行排序。 [do3cc]

1.0.0b4 (2015-12-14)

  • 上一个版本崩溃了,我不信任pypi上的1.0.0b3。 [do3cc]

1.0.0b3 (2015-12-14)

  • 现在normalize_buildouts在一次运行中接受多个配置文件。 [do3cc]

1.0.0b2 (2015-12-14)

  • 主要重构freeze命令。仍然难以阅读,需要更多关爱。 [do3cc]

1.0.0b1 (2015-12-14)

  • 添加freeze命令,下载所有外部buildout文件,带有允许相同freeze命令更新的标题。 [do3cc]

  • 添加显示哪个buildout文件标记了哪个版本的version_info命令。受@jensens脚本启发 [do3cc]

  • 将包重命名为buildout_helpers。命名空间包与pip和buildout存在冲突 [do3cc]

0.3.0 (2015-09-22)

  • 现在在buildout部分中,Mr.developer变量是分开的,并且在buildout部分的末尾 [do3cc]

  • 现在源部分在末尾 [do3cc]

  • 多行选项不需要4个空格的缩进,一个就足够了。现在此脚本可以正确识别它们 [do3cc]

0.2.0 (2015-09-11)

  • 支持管道。 [do3cc]

  • 删除不需要的依赖项。 [do3cc]

  • 修复导致bad buildout.cfgs的3个bug。 [do3cc]

0.1 (2015-09-10)

  • 初始发布。 [do3cc]

项目详情


下载文件

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

源代码分发

buildout_helpers-1.0.1.tar.gz (15.6 kB 查看哈希值)

源代码

由以下支持