跳转到主要内容

确保您的依赖项与最低版本兼容

项目描述

pessimist

"optimist"这个名字已经被占用了吗?

根据您列出的要求和测试运行方式,尝试各种版本以确保最小版本准确无误。

用法

python -m pessimist [-c 'make test'] [--fast] [--extend=name[,name...]] [--requirements=requirements*.txt] /path/to/repo
  • -c -- 要运行的命令。如果您使用src/布局,可以使用cd src; python -m unittest或类似命令。
  • --fast -- 仅验证最小和最大版本
  • --extend -- 完全忽略列出的规范名称的指定符;旨在让您回到==之前,可能在未来改进为做类似的事情。还允许*作为名称,表示所有“变量”名称
  • --requirements -- 由逗号分隔的glob,代表“固定”需求。
  • --verbose -- 显示日志

固定和变量

  • 固定需求来自requirements*.txt。如果这些与多个版本匹配,则仅保留最新版本。
  • 变量需求来自您的setup.py/setup.cfg/etc,它们会进入元数据。这些是我们感兴趣尝试的。
  • 如果名称同时出现在两个集合中,则遵循变量逻辑。

策略

  1. 尝试所有东西的新版本。如果失败则退出。
  2. 对于每个依赖项独立地,尝试逐渐较旧的版本。
  3. 尝试所有东西的最旧版本。如果失败则退出。

我订阅了“requirements.txt应该是您在CI中想要使用的具体版本”的思想;setup.py/setup.cfg/pyproject.toml中的约束应该是大于等于可以工作的最小版本,并且小于下一个主要版本(在poetry术语中称为“兼容”)。

创建此项目的目标是有一个自动检查,以确保我们没有无意中破坏与旧版本的兼容性。您可以在需求文件上使用类似sed -e 's/>=/==/'的简单版本,但如果失败,找到新的最小版本仍然是这个自动化的一个研究项目。

许可证

悲观者版权属于Tim Hatch,并使用MIT许可证授权。我在此存储库中向您提供代码,属于开源许可证。这是一个个人仓库;您获得的我的代码的许可证来自我,而不是来自我的雇主。有关详细信息,请参阅LICENSE文件。

项目详情


下载文件

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

源代码发行版

pessimist-0.9.3.tar.gz (14.2 kB 查看哈希值)

上传时间: 源代码

构建发行版

pessimist-0.9.3-py3-none-any.whl (10.0 kB 查看哈希值)

上传时间: Python 3

由以下提供支持

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