Sentry插件,用于更好地控制回归处理
项目描述
sentry-regressions
sentry-regressions 是一个Sentry插件,它允许通过非线性的回滚发布更好地控制回归处理。
特别是,此插件在确定事件是否为回归时考虑发布版本,而标准的Sentry则不考虑。如果您处理回滚发布,其中修复程序被回滚到比标记为解决该问题的发布更早的版本,则这一点尤其重要。
考虑以下示例
您发布 8.0
您发现一个简单的错误,并在 master 中修复它
您发布了包含该修复的 8.1
您将Sentry问题标记为“已解决在8.1中”
现在您从 master 回滚一个不同的、关键的修复程序到 8.0.x LTS分支
您发布了包含关键修复程序但不包含简单修复程序的 8.0.1
因此,按时间顺序,您创建了以下发布
8.0
8.1
8.0.1
如果现在在 8.0.1 中再次发生简单错误,标准Sentry会错误地将它标记为回归并重新打开该问题。但这不是回归,因为简单错误从未应该在 8.0.1 中修复,而应该在 8.1 中修复。但由于标准Sentry严格按照时间顺序发布日期,它将发布 8.0.1 认为比 8.1 “更高”。
此回归插件将在检测回归时考虑实际 发布版本,通过解析版本字符串并正确比较它们(包括数字的自然排序顺序)。
对于解析版本字符串,如果可用,插件将尝试使用 packaging 模块(通过 pkg_resources.parse_version())来根据 Python的PEP440 解析版本。
虽然这确实适用于Python包中使用的版本,但PEP 440中概述的版本规范在核心上是相当通用的,应该适用于许多其他编程语言的版本约定,除非你使用一个非常独特的版本方案。
安装
通过 pip 简单安装插件
pip install sentry-regressions
然后需要为每个项目单独启用插件
转到Sentry项目
设置
集成 -> 所有集成
为项目启用 RegressionPlugin
兼容性
测试过
Sentry 9.1
Sentry 8.22
开发
创建一个虚拟环境并激活它
git clone https://github.com/4teamwork/sentry-regressions.git
cd sentry-regressions
pip install -e .
链接
版权
此包的版权属于4teamwork。
sentry-regressions 根据 GNU 通用公共许可证,版本 2 许可。
变更日志
1.0.0 (2019-05-20)
初始实现。[lgraf]