缺陷跟踪系统-BugZilla
2012-11-18 15:01:20 阿炯

本站赞助商链接,请多关照。 Bugzilla 是一个开源的缺陷跟踪系统(Bug-Tracking System),它可以管理软件开发中缺陷的提交、修复、关闭等整个生命周期。采用Perl开发并在MPL授权协议下使用。

它让用户报告软件的臭虫而且把它们转给合适的开发者。开发者能使用bugzilla保持一个要做的事情的优先表,还有时间表和跟踪相关性。不是所有的"bugs"都是臭虫。一些数据库中的内容是作为增强的请求(RFE)。一个RFE是一个严重级别字段被设为"enhancement"的"臭虫".人们常说"bug",实际上意思是Bugzilla中的记录,所以RFEs经常被称作bug。根据客户的加强的请求来安排你的工作,Bugzilla会帮助你跟踪它们而且允许其它人看到你会作些什么。如果其它人看到了你的计划,他们就会避免重复你的工作而且可能帮助你解决或反馈给你。


Bugzilla is server software designed to help you manage software development.

Features
Optimized database structure for increased performance and scalability
Excellent security to protect confidentiality
Advanced query tool that can remember your searches
Integrated email capabilities
Editable user profiles and comprehensive email preferences
Comprehensive permissions system
Proven under fire as Mozilla's bug tracking system

Bugzilla 项目负责人 “回归”

2022年12月中旬消息,在沉寂了一段时间之后,Bugzilla 项目负责人 Dave Miller 宣布该项目再次得到更新。Bugzilla 最初是由开发者 Terry Weissman 于 1998 年为 Mozilla.org 项目设计开发的,一个基于 Web 的通用 bug 跟踪系统和测试工具;Dave Miller 于 2001 年 7 月成为项目负责人。如今 Bugzilla 已被 Mozilla 基金会、WebKit、Linux Kernel、FreeBSD、Apache、Red Hat、Eclipse 和 LibreOffice 等组织机构使用。

Miller 在博客中表示,多年来他并没有在 Bugzilla 上花费太多时间;但鉴于也没有任何人能够代替他,因此只有在其他开发人员陷入僵局时他才会介入做出决定。在过去的 10 年里,他曾两次尝试将项目的控制权移交给其他人;但每次这个被选中的人都找到了一份新工作,且没有时间同时处理 Bugzilla。而现在,Miller 的生活发生了一些变化,让他终于有更多时间花在 Bugzilla 上。“在过去的 5 或 6 个月里,我研究它的次数可能比过去 5 或 6 年的总和还多。”

在这一段时间里,Miller 已经解决了基础架构的一些问题。已经完成的事情清单包括:
将测试套件移至 GitHub Actions,以便它在每次提交时自动运行
更新 IRC 机器人,让它再次与 IRC 服务器对话(此前由于 SSL 版本过时而无法工作);也更新其中的邮件解析代码以处理新版本的 Bugzilla(最重要的是 bugzilla.mozilla .org,其通知邮件从这里发出)。
为安全提交设置一个私有的 Git 仓库,这样就可以在发布前对其进行阶段性测试,避免提前暴露。

发布计划方面,Miller 希望尽快发布一个新的 Bugzilla 多分支版本,预计时间在今年 12 月底或明年 1 月中旬。目前,Bugzilla 仍支持于 2013 年首次发布的 4.4 版本。理由是其支持政策表明,必须在继续迭代两个新的主要版本之后,再对 4.4 提供 4 个月的支持才可以结束其生命周期。“4.4 之后的下一个主要版本是 5.0;之后没有任何主要版本,这意味着 4 个月的倒计时还没有开始。”按照 Miller 的规划,4.4.14 将是 4.4 分支的最终版本。然后还有 5.0.4.1、将是下一个主要版本的 5.2、以及一个 “basically dead” 的 5.1 分支。5.2 版本发布以后,4.4 版本就可以开始 4 个月的生命周期结束倒计时。此外还有一个 5.9.1 分支 —— 代号 Harmony,目前处于开发者预览版,最终将发展成为 Bugzilla 6。

Miller 解释,5.0.4.1 的出现源于 Bugzilla 团队成员的一个失误:于 2019 年初发布的 5.05 和 5.06 版本包含大量架构更改,并且重新格式化了源代码中几乎所有的 Perl 代码,违反了项目支持政策。许多用户注意到了这一失误,从而选择了继续使用旧版本,未升级到不包含任何安全修复程序的 5.0.5 或 5.0.6。所以 5.0.4.1 将为这些人提供 5.0.4 的额外修复。而 5.2 是在 5.0.6 之后从 5.0 分支分叉出来的,它将包含 5.0.5 和 5.0.6 的那些模式和代码格式的变化。Miller 称,“5.0.5 一开始就应该被称为 5.2”。

值得一提的是,鉴于有其他同类软件可选择、Perl 语言流行性较低等原因,Bugzilla 的寻找贡献者之路并不简单。Hacker News 上一位开发者就表示,“Bugzilla 曾经是用 Tcl 编写的,后来用 Perl 进行了重写,因为他们认识到此举会更容易让人们为它作出贡献。出于同样的原因,同样的问题再次出现;今天,用 Perl 编写的事实已经变成了一种负担,就像在 2000 年左右它是一种优势一样。我喜欢 Bugzilla......但我实际上不能期望或直截了当地建议任何人部署或工作,考虑到这是一个用 Perl 编写的 foreign codebase,甚至我也不想自己做。”

Miller 希望能有一些志愿者在文档、合规性审计和修复 Bugzilla 本身的 bug 方面提供帮助,还呼吁那些使用 Bugzilla 的企业考虑提供一些有偿的开发时间。“如果你是一家使用 Bugzilla 的企业,并且有员工负责维护你的 Bugzilla 安装;在该员工愿意的前提下,请考虑正式赞助该员工每周至少几个小时的 Bugzilla 上游开发。”


最新版本:5.0
在此版本中,该程序错误跟踪工具新增了许多新的特性和优化,例如在注释中添加标签的能力,新的分组成员检查机制,优化的网络服务API等等。

WebServices API:Bugzilla 5.0增加了新的类REST端点,允许客户端使用标准的HTTP调用。已有的XML-RPC 和JSON-RPC已经被废弃并有可能在Bugzilla 7.0版本中移除。类REST接口所带来的重大优化是对API键的支持,这样客户端就不再需要使用cookie或用户凭证。
错误注释标签:新版本中可以使用标签筛选错误注释。这一功能在用标签关联会话、将某些具体的注释标识为重要注释或垃圾信息时非常实用。
成员资格检查:建立一种更加灵活的新机制用于确定查看错误的权限。之前的版本中,用户所属的分组需要包含错误所在的所有组才可以查看这个错 误,而5.0版本中默认的新的设置则允许属于错误所在的任一分组的用户查看该错误。这一新的机制虽然更加宽松,但有可能会不小心将错误暴露给不恰当的人。
缓存优化:Bugzilla可以连接到一个Memcached服务器,以降低数据库查询的执行数量,从而提升性能。

完整的变更列表可以参见发行说明

官方主页:http://www.bugzilla.org/