如何提交一个程序漏洞
此指引介绍了如何在维基媒体的错误追踪系统(更多信息参见Phabricator )中写一个好的漏洞报告或功能请求(一个任务/Task)。任务写得越好,越有可能会有人尽快处理问题。 任务需要用英语写。如果你不会英语,试着去用机器翻译,比如Google翻译。内地的朋友可以试试百度翻译。
提交要领
- 精确
- 明确:说明如何重现问题,说明步骤,以便其他人重现bug,或理解请求。
- 每个任务中只提一个问题
- 包含任何相关链接及示例
在你发布前
您可以重现此问题吗?
在软件的最新版中尝试重现问题,检查它是否已经被修复了。如果是在维基百科中的一个bug你可以在最新版的test2.wikipedia.org中试试看。
有人已提交了此问题吗?
使用维基媒体的错误追踪系统的搜索框查看您的bug是否已被提报,或者您要请求的新功能是否已经有人请求。您也可以在高级搜索页面执行更多高级搜索。
如果您不确定是否有人报告了bug,您应该报告bug。出现一个重复的bug总比没人报告bug更好。
可能是小工具/用户脚本问题吗?
一些需要修复的问题源于一些的用户脚本和小工具的使用。 這裡有一個附有步驟的指南 以指引你定位出代碼,這些步驟可以解決您的問題,使得你不會浪費時間進行報告。
报告新bug或功能请求
如果您在最新版中发现了没有提报过的bug,那么:
- 前往phabricator.wikimedia.org
- 如果您还没有登录(或注册),您可能需要登录(或者注册)您的账号(参见“创建您的账户 ”)。
- 单击右上角的书签按钮,然后选择“创建任务(Create Task)”(或“报告安全问题(Report Security issues)”到报告安全问题 )。
- 至少填写下列内容:
- 标题:一句话解释问题(而不是您建议的解决方法)。
- 好的:
"Selecting gender is not functional."
- 差的:
"Software crashes."
- 好的:
- 分配给:您應忽略此字段:开发人员将会在他们计划工作于这个任务时设置它。
- 描述:问题的完整说明,应尽可能详细。可以包含: If that is insufficient you will be asked for additional information along with guidance on how to obtain it. 這個區域應該包括:
- 对于bugs:
- 重现步骤:能重现所述问题的最简且方便参照的步骤。需包含所有特殊设置步骤。
- 示例:
Go to https://en.wikipedia.org with Internet Explorer version 10.0;
Make sure you are logged in;
Select "My Preferences" menu;
Go to "Gender" and select female gender from box list;
Click "Save" button.
- 示例:
- 实际结果:在进行上述步骤后,软件出现的问题。
- 示例:
"There is no female gender in front of my user name."
- 示例:
- 期望结果:程序正常时应实现的效果。
- 例子:
"My gender is shown in front of my user name."
- 例子:
- 重现步骤:能重现所述问题的最简且方便参照的步骤。需包含所有特殊设置步骤。
- 对于功能请求:
- 描述您想要实现的目标,以及原因。 解释您希望该功能将解决的问题(实际的潜在问题)以及具体示例; 但不要求特定的解决方案,因为可能有其他/更好的解决方案。 一个用户故事是传达这一点的有效方式。
- 例子:
"As a new editor, I would like to be acknowledged for my contribution to the project, so that I feel welcomed and valued"
- 例子:
- 描述您想要实现的目标,以及原因。 解释您希望该功能将解决的问题(实际的潜在问题)以及具体示例; 但不要求特定的解决方案,因为可能有其他/更好的解决方案。 一个用户故事是传达这一点的有效方式。
- 也请您提供任何其他可能有用的信息,例如:
- 网页浏览器、皮肤或者您发现了漏洞的计算机系统;
- 到您遇到错误的一个或多个页面的链接或比较页;
- 该问题的出现是每次、偶尔、仅在某些页面或仅在特殊条件下。
- 对于bugs:
- 要附上日志文件或者屏幕截图 (但请您确保上传的文件不包括任何机密信息),點擊「Description」欄位工具列中的「Upload File」按鈕(帶有雲朵和箭頭)。
- 选择您发现错误的标签(项目):
- 開發人員找工作是為條目去努力。為了確定合適的項目,使用在右上方的搜索功能來找到其描述。
- 例如:
MediaWiki-General-or-Unknown
用于wiki软件自身,或Wikimedia-Site-Requests
用于维基媒体网站上的配置更改(参见Selecting projects )。
- 订阅者:假如你知道某些特定用户,并且这些用户在你提出漏洞后会很乐意得到通知。 否则,请忽略它。
- 标题:一句话解释问题(而不是您建议的解决方法)。
检查报告是否完整,然后按下“Create Task(创建任务)”按钮。这样错误报告就会保存到数据库。 这使得对报告感兴趣的人可以查看它并可能会对其进行操作 。
任务的优先级是取决于那些开发者是否有计划去处理漏洞(参见设置优先级)。
感谢您协助提升MediaWiki软件以及维基媒体项目!
報告一個 JavaScript 錯誤
很多的功能,如插件、用户脚本以及其他MediaWiki上的部分依赖于JavaScript.
当您遭遇一个可能与JavaScript有关的错误时,尽您最大努力去确认错误消息,并将其复制在错误报告中。
提供所有你所擁有的信息是特別重要的,因為即使是系統管理員對錯誤日誌也沒有任何存取權。
如果问题存在于用户脚本或小工具本身的代码中,那么Phabricator可能不是将处理相关问题的地方。[1]有人可能会将您引导至脚本讨论页(如果识别出什么问题脚本的话)。
报告连接问题
如果您打开维基媒体网站时完全存在困难(包括网络连接缓慢等),请参照https://wikitech-static.wikimedia.org/wiki/Reporting_a_connectivity_issue。
报告登录问题
如果您在登录您的账户时存在问题,请查阅手册:如何调试/登录问题。
备注
参见
- 如何有效的报告 bug 作者 Simon Tatham
- 怎样让开发者社群解决您的问题,作者User:MSchottlender-WMF,2017年7月
- Wikimedia Phabricator: and Phabricator 礼节
- 缺陷管理/缺陷管理生命周期
- 撰写一个有效的权限报告或功能诉求
- 如何创建一个有效的缺陷报告 (过期)
- 英语维基百科:错误报告和功能请求