From Fedora Project Wiki

作者: Tom 'spot' Callaway 及其他
版本号 0.06
初始版本: 2007-03-12
最后修订: 2010-11-13

审核目的

给 Fedora 项目添加一个新的软件包之前该软件包必须接受来自官方的审核。审核的目的在于确保这个软件包符合 Fedora 项目的基本质量要求。审核通过并不意味着这个软件包非常好,但是能保证它本身符合我们对它的最低质量要求。

审核适用于提交新软件包,和软件包更名,曾经被废弃的旧软件包想要重新回归软件仓库,和从早期 Fedora Core 软件源合并。

审核流程

审核过程有两种角色,一种是贡献人员一种是审核者。本文档将会详细说明这两者。

贡献人员

贡献人员就是想要提交新软件包的人,又可以称之为提交者。如果想要成为一名贡献人员,您必须按照 成为 Fedora 软件包仓库维护人员 的步骤来做。

作为一名贡献人员,您需要做好一个符合 软件包命名规定打包规定 的软件包。有许多软件无法进入 Fedora,因此您需要查看 禁止的项目

如果您对您的 spec 文件很满意,那么可以开始审核流程,步骤如下:

  1. 在互联网上放置好您的 spec 文件和 SRPM。
  2. 这里 提交审核请求支持单。截图见右
    File:PackageReviewProcess review.png
  3. 如果您尚未在 Fedora 中维护任何软件包,这时候您需要标记 bug 的 Blocks 为 FE-NEEDSPONSOR(177841)。详情请阅读 How to get sponsored into the packager group
  4. 等待某人审核您的软件包。At this point in the process, the fedora-review flag is blank, meaning that no reviewer is assigned.
    Review Swaps
    If nobody comments on your review request, you might want to mail to a mailing list (for example, devel) asking for a "review swap". This is an offer to do a review of someone else's package in exchange for them reviewing your package. This is usually one-for-one, or can be some other private arrangement depending on the difficulty of the respective packages.
  5. There may be comments from people that are not formally reviewing the package, they may add NotReady to the Whiteboard field, indication that the review request is not yet ready, because of some issues they report. After you have addressed them, please post the URLs to the updated SPEC and SRPM file and remove it from the Whiteboard. It is expected that you will respond to commentary, including updating your submission to address it; if you do not, your ticket will be closed.
  6. A reviewer takes on the task of reviewing your package. They will set the fedora-review flag to ?
  7. The reviewer will review your package. You should fix any blockers that the reviewer identifies. Once the reviewer is happy with the package, the fedora-review flag will be set to +, indicating that the package has passed review.
  8. At this point, you need to make an SCM admin request for your newly approved package.
  9. When this is complete, you can import your package into the SCM.
  10. Checkout the package using "fedpkg clone <package-name>" do a final check of spec file tags, etc.
  11. 使用 "fedpkg build" 命令请求构建。
  12. 为其它分支重复之前的操作。
  13. 请求为所有分支的更新,如果需要,请使用 "fedpkg update" 或其它 Bodhi 允许的方式。
  14. 如果可能,添加您的软件包至 Upstream Release Monitoring
  15. 您还要保证审核支持单最终被关闭。我们欢迎您自行关闭,或者如果您对某个 Fedora 版本构建,请您让 Bodhi 最终来关闭支持单。请注意关闭支持单的理由为 NEXTRELEASE

后期的软件包变动不再需要执行该流程。

审核者

审核者就是审核软件包的人。

fedora-review 工具
fedora-review 是一个十分有用的自动化审核工具。只需要 yum install fedora-review 然后阅读 man 手册来了解用法即可。注意,这并不意味着全部,您仍然需要透彻了解打包规定
除了审核者的意见
软件包审核请求允许他人留下意见或其它内容。特别是有已经熟知 打包规定 的人正在寻求审核帮助的时候会留下请求的意见。

审核者应该是 packager 组 的组员。唯一例外是如果这个审核请求是某人的第一个软件包的话,那么审核者必须是该人的 担保人。了解某位贡献人员是否是被担保身份,请自行查阅 packager 组

  1. 搜索一个需要审核者的审核请求:http://fedoraproject.org/PackageReviewStatus/ (fedora-review 标识 为空的 bug 被分配给(assigned)nobody@fedoraproject.org)
  2. 如果您在开始正式审核之前发现有问题需要解决,请在请求留下意见并且设置白板为 NotReady 状态。这会帮助其他可用的审核者注意到该审核正处于未准备好状态。
  3. 如果开始正式审核,请设置 fedora-review 标识为 ? 并分配该请求为您本人。
    退出审核
    如果您因为某些原因需要退出审核,请重置 fedora-review 标识为空 并且 重新分配为默认的组件属主,即 nobody@fedoraproject.org
  4. 审核过程 ...
    • 检查 审核规定 中列出的 MUST 条目。
    • 检查 审核规定 中列出的 SHOULD 条目。
    • FedoraReview 工具(也就是 fedora-review 软件包)可以帮助您自动完成该过程。
  5. 请在每个审核中包含您的意见,为更好阅读,请您留下文字最好不要带附件。
  6. 审核结果:
    • ACCEPT - 如果您认为该软件包很好,请设置fedora-review 标识为 +
      Time to sponsor?
      If the Reviewer is also acting as Sponsor for the Contributor, then this is the time to sponsor the Contributor in the account system
    • FAIL, LEGAL - 如果该软件包存在法律风险(已知的内容或版权问题,侵害,商标纠纷),请关闭该审核请求并设置为 WONTFIX,且您需要留下意见(比如我们不发行 mp3 组件等等)。您还需要设置 fedora-review 标识为 -,并设置审核 block FE-Legal。
    • FAIL, OTHER - 如果该软件包存在其它问题,且此时并无简单的解决方案,则请您关闭该审核为 WONTFIX 并留下适当的意见(比如我们不发行涉黄内容,或者是,嗨,这不是一个 spec 文件。更生动一点,嗨,这不是麦当劳的菜单么之类的内容)。设置 fedora-review 标识为 -
    • NEEDSWORK - Anything that isn't explicitly failed should be left open while the submitter and reviewer work together to fix any potential issues. Mark the bug as NEEDINFO while waiting for the reviewer to respond to improvement requests; this makes it easier for reviewers to find open reviews which require their input.
  7. 一旦一个软件包被标记为 fedora-review + (或 -),那么审核者的工作就已完成。不过您还是可以帮助新手直到他们的软件包成功进入 Fedora。

fedora-review 标识定义

fedora-review (BLANK) 需要审核
fedora-review ? 正在审核
fedora-review - 由于法律或其它信息,审核失败
fedora-review + 审核通过

特殊的 blocker 支持单

少量支持单会在 "Blocks" 处有记录以表明特殊耳朵状态:

FE-NEEDSPONSOR 审核提交人需要保证人。注意审核过程只能有一位担保人。
FE-DEADREVIEW 由于提交者自行离开本次审核被关闭。用户可以在这里面找到一些有用的信息。
FE-Legal 该软件包被社区法律团队认定存在法律风险。

白板(Whiteboard)

To save time for reviewers, the page at http://fedoraproject.org/PackageReviewStatus/NEW.html will hide certain tickets which are not reviewable. The Whiteboard field can be used to mark a ticket with various additional bits of status which will cause it to be hidden or displayed differently.

NotReady 软件包尚未开始审核。您可以新建一个审核支持单标记其为 NotReady,并继续协助直到可以被审核者审核。
BuildFails 软件包无法被构建。
AwaitingSubmitter 审核卡住了,需要提交人更多信息。
Trivial 软件包比较琐碎。请见下。

"Trivial" 状态打算表明该软件包,as an aid to new reviewers, are especially uncomplicated and easy to review. A ticket should not be marked as being trivial unless:

  • The package is known to build and a link to a scratch build is included.
  • The ticket explains any rpmlint output which is present.
  • The spec contains nothing which is unnecessary in modern Fedora (such as BuildRoot:, a %clean section or %defattr).
  • The spec is free from excessive or complicated macro usage.
  • The spec uses only the least complicated scriptlets which are taken directly from the Packaging:ScriptletSnippets page.
  • The package contains no daemons.
  • The package is not especially security sensitive.
  • The code has undergone a thorough inspection for licensing issues. Anomalies which would be found by licensecheck should be explained.

In short, this should be reserved only for those tickets which should be easily approachable by someone doing their first package review.

跟踪进度

软件包审核进度查询工具 提供多个与审核相关的报告和简单的审核搜索功能,比如软件包名,维护人,提交人等等。