检查级联构建中的标记版本和覆盖版本
项目描述
plone.versioncheck
功能
在遍历级联的 extends 时检查buildouts ``[versions]`` 部分
命令行脚本收集继承的版本限制,记住版本限制的来源。
它显示结果,以便人类可以检查限制和覆盖是否正确。
输出带有颜色;这有助于识别有更新版本可用的包。
按需生成JSON格式的机器可读输出。
检查Python包索引(PyPI)的新版本。
检测是否存在更新的主要版本、次要版本或错误修复版本(或预发布版本)。
Buildout扩展 记录当前的版本状态和 需求
版本状态和需求被写入文件,
- 文件中的版本将被命令行工具消耗,
检测孤立版本限制,
它显示哪个包作为依赖项拉入了另一个包。
它与语义和仅与语法正确的版本号配合工作得最好!
使用方法
使用buildout安装
添加一个部分来安装它作为脚本,并将其添加为buildodut的扩展
[buildout] ... extensions = plone.versioncheck parts = ... ploneversioncheck ... ... [ploneversioncheck] recipe = zc.recipe.egg eggs = plone.versioncheck ...
正常运行buildout。
现在在buildout目录中生成了一个文件 .plone.versioncheck.tracked.json。
此文件将由 bin/versioncheck 使用以确定最终使用了哪些包。
再次运行buildout以重新生成此文件。
命令行
usage: versioncheck [-h] [-p] [-n] [-N] [-r] [-d] [-i] [-e EXCLUDE_CFG] [-m] [--no-cache] [-b] [-o [OUTPUT]] [--no-colors] [--debug-limit DEBUG_LIMIT] [buildout] Fetch information about pinned versions and its overrides in simple and complex/cascaded buildouts. positional arguments: buildout path to buildout.cfg or other *.cfg file optional arguments: -h, --help show this help message and exit -p, --pypi check PyPI for newer versions -n, --newer display only packages with newer version than active -N, --newer-orphaned display orphaned packages only when newer versions available -r, --required-by show information about requirements (only if tracking file is available) -d, --show-release-dates show information about release dates (only for package lookup from PyPI) -i, --ignore-tracking ignore tracking file (if present) -e EXCLUDE_CFG, --exclude-cfg EXCLUDE_CFG exclude in listing when cfg-filename pattern matches (fnmatch) the given expression -m, --machine show as machine readable output (json) --no-cache do not use a cache for PyPI -b, --browser show as html for webbrowser -o [OUTPUT], --output [OUTPUT] safe output to output-file --no-colors do not show colors --debug-limit DEBUG_LIMIT Limit the number of PyPI versions fetched for debugging States and color codes: [A]ctive (white) [D]evelop (green) [O]rphaned (magenta) [I]nherited (older or same versions are gray, newer are yellow) [U]pdate of final release on PyPI available (cyan) [P]rerelease update on PyPI available (blue) [X] unpinned (red) [r] Requirement (gray) [a] Annotation (gray) Color of package name helps to indicate overall state of a package.
创建的文件
如果使用 --pypi 选项使用了脚本,将创建一个目录 .plone.versioncheck.cache。它包含了对PyPI或外部buildout配置文件的请求的缓存。要清除缓存,请删除目录。缓存库使用PyPI响应的过期标题,因此即使使用缓存,它也会开始获取新的记录。
如果使用了扩展,将创建一个文件 .plone.versioncheck.tracked.json。它包含上次buildout运行的信息。
输出说明
状态和颜色的图例
- [D]evelopment Egg
开发Egg通常处于活动状态。描述显示位置。颜色:绿色
- [A]ctive Pin
固定版本。包已使用且最近,一切似乎正常。颜色:白色
- [I]nherited Pin
未使用的限制。如果比活动版本旧,限制颜色为灰色;如果比活动版本新,则为黄色。
- [O]rphaned
如果跟踪,则显示在给定的配置中是否使用了该包。对此信息要小心!即在一个开发buildout文件中,使用的包与在实时或持续集成buildout中使用的包不同!颜色:洋红色
- [X] Unpinnend
跟踪,但在 [versions] 部分中未找到任何限制。颜色:红色
- [U]pdate final release
在PyPI上有一个更新的最终版本可用(主要版本、次要版本或错误修复)。描述显示在哪个级别。颜色:青色
- [P]rerelease update
在PyPI上有一个更新的预发布版本可用(主要版本、次要版本或错误修复)。描述显示在哪个级别。只有当没有最终发布更新可用时。颜色:蓝色
- [r] Required by
如果跟踪并提供了 --required-by 选项,则显示需要此包的包。对于当前活动/使用版本有效。请注意,这基于声明的需求,未涵盖缺少或隐含的需求。
- [a] Annotation
可以注释选择某个版本的原因。这些信息是从一个部分中解析出来的,部分名为 [versionannotations]。在这个部分中,键是软件包的名称,值是要显示的文本注释。值可以使用缩进来跨越多行(如常规操作)。
版本顺序
版本的顺序是 buildout 解析顺序(在 extends 链/树中是如何被解析的)。之后,显示 PyPI 的发布版本(主版本、次版本、预版本,然后是预发布版本)。
例如,给定每个 my.pkg 的一个版本已被声明
buildout.cfg 中 my.pkg=3.0.3
buildout.cfg 扩展 foo.cfg,并设置 my.pkg=3.0.1
buildout.cfg 扩展 bar.cfg,并设置 my.pkg=2.0
foo cfg 扩展 baz.cfg,并设置 my.pkg=3.1
在 PyPI 中找到了更新的版本
主版本 my.pkg=4.0
次版本 my.pkg=3.2
主版本 预发布 my.pkg=5.1b2
输出看起来是这样的
my.pkg 3.0.3............... A buildout.cfg 2.0 ................ I bar.cfg 3.0.1 .............. I foo.cfg 3.1 ................ I baz.cfg 4.0 ................ U Major 3.2 ................ U Minor 5.1b2............... P Majorpre
示例
这里没有颜色,在 buildout.coredev 上运行
$ ./bin/versioncheck -p buildout.cfg accesscontrol 3.0.12 .... A versions.cfg 2.13.13 ... I http://dist.plone.org/versions/zope-2-13-23-versions.cfg acquisition 4.2.2 ..... A versions.cfg 2.13.9 .... I http://dist.plone.org/versions/zope-2-13-23-versions.cfg alabaster 0.7.7 ..... X unpinned archetypes.multilingual 3.0.1 ..... A versions.cfg archetypes.referencebrowserwidget 2.5.6 ..... A versions.cfg archetypes.schemaextender 2.1.5 ..... A versions.cfg argcomplete 1.0.0 ..... A tests.cfg argh 0.26.1 .... A tests.cfg argparse (unset) ... A versions.cfg 1.1 ....... I http://dist.plone.org/versions/zopetoolkit-1-0-8-ztk-versions.cfg Can not check legacy version number. U Error autopep8 1.2.1 ..... A tests.cfg [... skipped a bunch ...] coverage 3.7.1 ..... A tests.cfg 3.5.2 ..... I http://dist.plone.org/versions/zopetoolkit-1-0-8-ztk-versions.cfg 4.0.3 ..... U Major 4.1b1 ..... P Majorpre cssmin 0.2.0 ..... A versions.cfg cssselect 0.9.1 ..... A versions.cfg datetime 3.0.3 ..... A versions.cfg 2.12.8 .... I http://dist.plone.org/versions/zope-2-13-23-versions.cfg 4.0.1 ..... U Major decorator 4.0.6 ..... A versions.cfg [... skipped a bunch ...] plone.app.textfield 1.2.6 ..... A versions.cfg plone.app.theming 1.2.17.dev0 D /home/workspacejensens/coredev5/src/plone.app.theming/src 1.2.16 .... I versions.cfg plone.app.tiles 2.1.0 ..... A versions.cfg 2.2.0 ..... U Minor [... skipped a bunch ...]
源代码和贡献
如果您想帮助开发(改进、更新、修复错误等)plone.versioncheck,这是一个很好的想法!
请遵循贡献指南。
plone.versioncheck 的维护者是 Jens Klein 和 Plone 贡献者。我们感谢任何贡献,如果需要在 PyPI 上发布版本,请联系我们其中的任何人(最好是打开一个问题)。
开发
系统中必须存在指向 Python >=2.7.x 的 python、virtualenv 和 pip,并可在系统路径中找到。克隆项目。然后
$ bootstrap.sh
对于非 Unix 系统,请阅读 bootstrap.py 的内容,并手动执行适用于您操作系统的步骤。
许可证
该项目在 GPLv2 许可下发布。
变更日志
1.8.1 (2023-05-08)
错误修复
在更多位置捕获空版本并忽略无效版本。当软件包被显式取消锁定时需要此操作,例如 Zope =。 [maurits]
1.8.0 (2023-04-15)
忽略无效版本。当检查具有 PyPI 上无效版本的软件包时,对于 setuptools 66 及更高版本需要此操作。修复了问题 52。[maurits]
1.7.0 (2019-03-08)
特性:为 cfg 文件提供排除模式匹配。[jensens]
使用纯黑色作为代码风格。[jensens]
在 Python 3.7 上进行测试。[jensens]
修复 PyPI URL 并在出现问题时添加 URL 的输出。[jensens]
1.6.10 (2018-08-20)
修复了 find_relative 中的另一个错误。[jensens]
1.6.9 (2018-08-20)
修复了上次发布中引入的 find_relative 中的错误。[jensens]
1.6.8 (2018-08-14)
错误修复
更好地处理以相对路径为入口的情况,例如 project/foo/dev.cfg。[jensens]
如果文件不扩展任何其他文件,则返回语句只返回一个参数,而调用者期望两个参数。[gforcada]
1.6.7 (2018-03-26)
错误修复
修复:不要信任 setuptools 内部结构。现在可以与新版本的 setuptools 一起使用。[jensens]
1.6.6 (2018-01-26)
修复:具有相同名称的继承扩展现在会显示为相同的。现在,如果可能,显示相对于基于目录的扩展,否则显示完整路径。[jensens]
修复:相对 URL 中的扩展已经损坏。[jensens]
1.6.5 (2017-07-03)
错误修复
相对路径现在应该可以正常工作,已在子目录中进行了测试。[loechel]
1.6.4 (2017-05-08)
修复:默认版本部分名称 versions 未被尊重。[jensens]
1.6.3 (2017-05-05)
修复 #17:缺少需求。[jensens]
优化:减少在获取发布日期时对PyPI的负载。[jensens]
特性:将HTML输出的包和版本字段改为链接,以便您可以打开每个包的PyPI页面。[loechel]
1.6.2 (2017-04-12)
修复:版本注解和buildout解析器的stdout消息中的回归。[loechel]
添加更多测试。[loechel]
1.6.1 (2017-04-07)
修复:#36 新的buildout解析器不与buildout.coredev兼容。[loechel]
1.6.0 (2017-04-07)
修复:格式化器中空状态导致的IndexError: string index out of range错误。[thet]
开发:为包添加基本测试。[loechel]
修复:将parser.py修改为使用zc.buildout中的函数来获取版本和版本注解部分名称。[loechel]
特性:添加从PyPI提取日期信息的功能,以分析包的年龄。[loechel]
特性:添加新的CLI选项以显示输出文件和发布日期。[loechel]
1.5.1 (2017-01-23)
修复版本比较。[loechel]
1.5.0 (2016-10-15)
开发:使用代码分析进行质量保证(并修复pep8等的问题)[jensens]
修复:清单(jinja文件缺失)。[jensens]
特性:实现#25:标注使用的版本。[jensens]
1.4 (2016-09-30)
特性:新选项‘-N’:隐藏无更新的孤立包,这降低了孤立包被有意使用时的噪音。[jensens]
1.3 (2016-05-19)
开发:添加.editorconfig文件以遵循Plone API维护代码约定[loechel]
特性:添加对Python 3的支持[loechel]
修复:各种文档错误。[jean]
1.2.1 (2016-01-26)
特性:缓存通过网络获取的buildout cfg文件。[jensens]
特性:现在缓存来自PyPI的响应。[jensens]
1.1.2 (2016-01-21)
修复:buildout extends chain的解析顺序错误。还记录了解析顺序,并在自己的buildodut中包含了一个小示例。[jensens]
修复:格式化器在required by之后打印了太多的换行符。[jensens]
修复:如果没有跟踪文件,则不会抱怨缺少跟踪文件。如果没有跟踪文件,则buildout根本不使用buildout扩展。[maurits]
修复#13:添加缺少的zc.buildout依赖项。[maurits]
1.1.1 (2016-01-20)
修复:如果没有跟踪文件,则孤儿检测失败。[jensens]
修复:如果没有跟踪文件,则引发异常。[jensens]
修复:未明确设置要求颜色的颜色。[jensens]
1.1 (2016-01-19)
增强:显示要求[jensens]
增强:机器可读输出(json)[jensens]
增强:将纯处理信息输出写入sys.stderr [jensens]
修复#5 - 要求setuptools>=12 [jensens]
修复#7 - 未找到从“lazy”1.0到1.2的可用更新。[jensens]
增强:重新考虑颜色并记录它们,修复#2和#3。[jensens]
增强:显示输出并显示跟踪信息[jensens]
特性:将buildout扩展添加为可选的track要求,如果它确实被使用的话[jensens]
1.0 (2016-01-13)
初始工作。[jensens]
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分布
构建分发
plone.versioncheck-1.8.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 95faecc2fe1f4e3786ea657aa4a05e7be0ca855862414d460c93fd6a67f9809a |
|
MD5 | 27339d9e2c85ace94377bb9a15082b0c |
|
BLAKE2b-256 | 2dbc6f5823544de7c38188f64892885e31233a7c22f5496db1ea9b558061d795 |
plone.versioncheck-1.8.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4a3200a47350650621150d0c7ec1404ca1094255a5fcb2a176153dabe36fd3cc |
|
MD5 | 00016f36fdbc124e3e31e13cc4000509 |
|
BLAKE2b-256 | b433b81b8d635f665755878f579ee8696f8045e2c18c5d324ce0e1774a730809 |