(sync en) |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
{{autolang}} | {{autolang}} | ||
{{Anchor|ReviewProcess}} | {{Anchor|ReviewProcess}} | ||
== 审核目的 == | == 审核目的 == | ||
为了向 Fedora 项目添加一个新的软件包,该软件包必须接受来自官方的审核。审核的目的在于确保这个软件包符合 Fedora 项目的基本质量要求。审核通过并不意味着这个软件包非常好,但是能保证它本身符合我们对它的最低质量要求。 | |||
审核适用于提交的新软件包,和[[Package_Renaming_Process#Re-review_required|软件包更名]],以及曾经被废弃的旧软件包想要重新回归软件仓库,和从早期 Fedora Core 软件源合并的软件包。 | |||
注意,一些新软件包可能不需要进行审核。有关条件列表,请参阅[[Packaging:ReviewGuidelines#Package_Review_Process]]。如果软件包已豁免,则贡献者可以直接跳至步骤 8:在软件包数据库中提交 [[PackageDB_admin_requests|请求]]。但是请注意,为了完成审核过程,仍然需要提交一个 bugzilla 票据;为此,请使用[[rhbug:1376885|这个 bug]],并按照其中的说明操作。 | |||
== 审核流程 == | == 审核流程 == | ||
审核过程有两种角色,贡献人员 和 审核者。本文档将会详细说明这两者。 | |||
=== 贡献人员 === | === 贡献人员 === | ||
Line 23: | Line 19: | ||
贡献人员就是想要提交新软件包的人,又可以称之为提交者。如果想要成为一名贡献人员,您必须按照 [[Join the package collection maintainers/zh-cn|成为 Fedora 软件包仓库维护人员]] 的步骤来做。 | 贡献人员就是想要提交新软件包的人,又可以称之为提交者。如果想要成为一名贡献人员,您必须按照 [[Join the package collection maintainers/zh-cn|成为 Fedora 软件包仓库维护人员]] 的步骤来做。 | ||
作为一名贡献人员,您需要做好一个符合 [[Packaging:NamingGuidelines|软件包命名规定]] 和 [[Packaging:Guidelines|打包规定]] 的软件包。有许多软件无法进入 | 作为一名贡献人员,您需要做好一个符合 [[Packaging:NamingGuidelines|软件包命名规定]] 和 [[Packaging:Guidelines|打包规定]] 的软件包。有许多软件无法进入 Fedora,因此您需要检查软件包,确保其不包含 [[Forbidden items|禁止的项目]]。 | ||
如果您对您的 spec 文件很满意,那么可以开始审核流程,步骤如下: | 如果您对您的 spec 文件很满意,那么可以开始审核流程,步骤如下: | ||
<ol> | <ol> | ||
<li> | <li> 上传您的 spec 文件和 SRPM 包,确保其可以被直接下载(建议为 HTTP(s),请不要使用需注册下载的网盘或指定下载方法的页面)。如果您没有地方上传您的 spec 和 SRPM,请使用 Copr: [https://copr.fedorainfracloud.org/]。 | ||
<li> | <li> 填写并提交一个 [https://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora&format=fedora-review 审核请求支持单]。[[:Image:PackageReviewProcess_review.png|截图见右]]。 | ||
[[Image:PackageReviewProcess_review.png|right|x400px]] | [[Image:PackageReviewProcess_review.png|right|x400px]] | ||
<li> 如果您尚未在 Fedora | <li> 如果您尚未在 Fedora 中维护任何软件包,您需要标记您的审核请求的 Blocks 为 FE-NEEDSPONSOR(177841)并由您的保证人提供保证。详情请阅读 [[How to get sponsored into the packager group]]。 | ||
<li> | <li> 等待某人审核您的软件包。在此过程中,'''fedora-review flag''' 标志是空白的,这意味着未分配审阅者。 | ||
{{admon/tip|Review Swaps| | {{admon/tip|Review Swaps| 如果没有人对您的审核请求发表评论,您可能需要向 maillist 发送一个(例如{{fplist|devel}})要求 “审核互换” 的提议。这个提议,以审查别人的包,换取他们审查你的包。这通常是一对一的,或者在私下沟通安排,这取决于软件的打包难度。}} | ||
<li> | <li> 可能有来自非正式审查人的意见,他们可以将 NotReady 添加到 Whiteboard 字段,来指示审查请求尚未准备好。解决报告的问题后,请发布更新的 SPEC 和 SRPM 文件 URL,并将 NotReady 从白板中删除。您需要对评论做出回应,包括更新您的提交内容以解决问题;如果您没有,您的审查请求将被关闭。 | ||
<li> | <li> 审核者负责审核您的包。他们会将 '''fedora-review flag''' 设为 '''?'''。 | ||
<li> | <li> 审核人员将会审查您的包。您应该修复审核人标出的任何不规范的部分。一旦审核者对包满意,'''fedora-review''' 标志将被设为 '''+''',表示包已通过审核。 | ||
<li> | <li> 此时,您需要为新批准的包创建 [[PackageDB_admin_requests|SCM admin request]]。如果您没有获得保证,将无法完成此步骤。 | ||
<li> | <li> 当此过程完毕时,您可以 [[Join_the_package_collection_maintainers#Import.2C_commit.2C_and_build_your_package|导入您的包]] 至 SCM。 | ||
<li> | <li> 使用 "fedpkg clone <package-name>" 命令签出打包脚本,进行最终检查。 | ||
<li> 使用 "fedpkg build" 命令请求构建。 | <li> 使用 "fedpkg build" 命令请求构建。 | ||
<li> 为其它分支重复之前的操作。 | <li> 为其它分支重复之前的操作。 | ||
<li> 请求为所有分支的更新,如果需要,请使用 "fedpkg update" 或其它 [[Bodhi]] 允许的方式。 | <li> 请求为所有分支的更新,如果需要,请使用 "fedpkg update" 或其它 [[Bodhi]] 允许的方式。 | ||
<li> 如果可能,添加您的软件包至 [[Upstream_release_monitoring|Upstream Release Monitoring]]。 | <li> 如果可能,添加您的软件包至 [[Upstream_release_monitoring|Upstream Release Monitoring]]。 | ||
<li> | <li> 您还要保证审核支持单最终被关闭。在为请求的分支构建成功后,您可以自行关闭审核;或者如果您为某个 Fedora 版本构建了一个包,您可以要求 Bodhi 在完成构建后最终来关闭支持单。如果您自己关闭支持单,请使用 '''NEXTRELEASE''' 作为理由。 | ||
</ol> | </ol> | ||
后期的软件包变动不再需要执行该审核流程,并且不应在 Bodhi 中创建的后续更新中引用审核凭证。 | |||
=== 审核者 === | === 审核者 === | ||
审核者就是审核软件包的人。 | 审核者就是审核软件包的人。 | ||
{{admon/note|fedora-review 工具| | {{admon/note|fedora-review 工具| | ||
fedora-review 是一个十分有用的自动化审核工具。只需要 <code> | fedora-review 是一个十分有用的自动化审核工具。只需要 <code>dnf install fedora-review</code> 然后阅读 man 手册了解用法即可。注意,这并不意味着全部,您仍然需要透彻了解[[Packaging:Guidelines|打包规定]]。}} | ||
审核者应该是 [https://admin.fedoraproject.org/accounts/group/members/packager/* packager 组] | {{admon/note|其他人的意见| | ||
软件包审核请求也鼓励其他人发表评论或其它内容。特别是有已经熟知 [[Packaging:Guidelines|打包规定]] 的人正在寻求审核帮助的时候会留下相关请求的建议。}} | |||
审核者应该是 [https://admin.fedoraproject.org/accounts/group/members/packager/* packager 组] 的成员。(如果贡献者还没有被担保,审查仍然可以继续完成,但他们需要找到担保人为其进行担保。)唯一例外是如果这个审核请求是某人的第一个软件包的话,那么审核者必须是该人的 [https://admin.fedoraproject.org/accounts/group/members/packager/*/sponsor 担保人]。了解某位贡献人员是否是担保人,请查阅 [https://admin.fedoraproject.org/accounts/group/members/packager/* packager 组]。 | |||
<ol> | <ol> | ||
<li> 搜索一个需要审核者的审核请求:http://fedoraproject.org/PackageReviewStatus/ ('''fedora-review 标识''' | <li> 搜索一个需要审核者的审核请求:http://fedoraproject.org/PackageReviewStatus/ ('''fedora-review 标识''' 为空,或 bug 被分配给 nobody@fedoraproject.org) | ||
<li> | <li> 如果您在开始正式审核之前发现有问题需要解决,请留下问题的评论并设置 Whiteboard 为 NotReady 状态。这会提醒其他审核者,该审核正处于未准备好的状态。 | ||
<li> | <li> 如果您想要开始正式审核,请设置 '''fedora-review''' 标识为 '''?''' 并分配该请求为您本人。 | ||
{{admon/note|退出审核|如果您因为某些原因需要退出审核,请重置 <code>fedora-review</code> 标识为空 '''并且''' | {{admon/note|退出审核|如果您因为某些原因需要退出审核,请重置 <code>fedora-review</code> 标识为空 '''并且''' 重新分配 bug 的默认属主,即 '''nobody@fedoraproject.org'''}} | ||
<li> 审核过程 ... | <li> 审核过程 ... | ||
<ul> | <ul> | ||
<li> 检查 [[Packaging:ReviewGuidelines|审核规定]] 中列出的 MUST 条目。 | <li> 检查 [[Packaging:ReviewGuidelines|审核规定]] 中列出的 MUST 条目。 | ||
<li> 检查 [[Packaging:ReviewGuidelines|审核规定]] 中列出的 SHOULD 条目。 | <li> 检查 [[Packaging:ReviewGuidelines|审核规定]] 中列出的 SHOULD 条目。 | ||
<li>[https://fedorahosted.org/FedoraReview/ FedoraReview] 工具( | <li> [https://fedorahosted.org/FedoraReview/ FedoraReview] 工具 (即 fedora-review 软件包) 可以帮助您自动完成该过程。 | ||
</ul> | </ul> | ||
</li> | </li> | ||
<li> 请在每个审核中包含您的意见,为更好阅读,请您留下文字最好不要带附件。 | <li> 请在每个审核中包含您的意见,为更好阅读,请您留下文字最好不要带附件。 | ||
<li> 审核结果: | <li> 审核结果: | ||
<ul> | <ul> | ||
<li> '''ACCEPT''' - 如果您认为该软件包很好,请设置'''fedora-review''' 标识为 '''+''' | <li> '''ACCEPT''' - 如果您认为该软件包很好,请设置 '''fedora-review''' 标识为 '''+''' | ||
{{admon/question|Time to sponsor?| | {{admon/question|Time to sponsor?|如果审核者想要成为贡献者的赞助者,则可以在 [https://admin.fedoraproject.org/accounts/ 账户系统] 中赞助贡献者}} | ||
<li> '''FAIL, LEGAL''' - 如果该软件包存在法律风险(已知的内容或版权问题,侵害,商标纠纷),请关闭该审核请求并设置为 | <li> '''FAIL, LEGAL''' - 如果该软件包存在法律风险 (已知的内容或版权问题,侵害,商标纠纷),请关闭该审核请求并设置为 WONTFIX,并留下您的意见 (比如我们不发行 mp3 组件等等)。您还需要设置 '''fedora-review''' 标识为 '''-''',并设置审核 block FE-Legal。 | ||
<li> '''FAIL, OTHER''' - 如果该软件包存在其它问题,且此时并无简单的解决方案,则请您关闭该审核为 WONTFIX 并留下适当的意见(比如我们不发行涉黄内容,或者是,嗨,这不是一个 spec 文件。更生动一点,嗨,这不是麦当劳的菜单么之类的内容)。设置 '''fedora-review''' 标识为 '''-'''。 | <li> '''FAIL, OTHER''' - 如果该软件包存在其它问题,且此时并无简单的解决方案,则请您关闭该审核为 WONTFIX 并留下适当的意见 (比如我们不发行涉黄内容,或者是,嗨,这不是一个 spec 文件。更生动一点,嗨,这不是麦当劳的菜单么之类的内容)。设置 '''fedora-review''' 标识为 '''-'''。 | ||
<li> '''NEEDSWORK''' - | <li> '''NEEDSWORK''' - 该审核请求需要进一步的完善,提交者和审核者需要协同工作以解决任何潜在的问题。将错误标记为 NEEDINFO,同时等待审核者对问题发表改进建议。 | ||
</ul> | </ul> | ||
<li> 一旦一个软件包被标记为 '''fedora-review +''' (或 '''-''') | <li> 一旦一个软件包被标记为 '''fedora-review +''' (或 '''-'''),那么审核者的工作就已完成。您可以继续帮助新手完成 import/build/update 过程,直到他们的软件包成功进入 Fedora,并确保贡献者关闭包审查请求。 | ||
</ol> | </ol> | ||
Line 89: | Line 88: | ||
|fedora-review||?||正在审核 | |fedora-review||?||正在审核 | ||
|- | |- | ||
|fedora-review||-|| | |fedora-review||-||由于法律或其它问题,审核失败 | ||
|- | |- | ||
|fedora-review||+||审核通过 | |fedora-review||+||审核通过 | ||
Line 95: | Line 94: | ||
== 特殊的 blocker 支持单 == | == 特殊的 blocker 支持单 == | ||
少量支持单会设置 "Blocks" 字段,以表明特殊的状态: | |||
{| border="1" | {| border="1" | ||
|- | |- | ||
Line 105: | Line 104: | ||
|} | |} | ||
== 白板(Whiteboard) == | == 白板 (Whiteboard) == | ||
为了节省审核者的时间,http://fedoraproject.org/PackageReviewStatus/NEW.html 将自动隐藏不适合审核的请求。Whiteboard 字段被用于标记请求的各种状态,并根据状态显示或隐藏请求。 | |||
{| border="1" | {| border="1" | ||
Line 114: | Line 113: | ||
|BuildFails||软件包无法被构建。 | |BuildFails||软件包无法被构建。 | ||
|- | |- | ||
|AwaitingSubmitter|| | |AwaitingSubmitter||审核停止,需要提交人提供更多信息。 | ||
|- | |- | ||
|Trivial|| | |Trivial||软件包比较容易审查。请见下文。 | ||
|} | |} | ||
"Trivial" | "Trivial" 状态表明包不复杂,容易审查。包审查请求不应被标记为 trivial,除非符合以下情况: | ||
* | * 该软件包可以正常构建,并包括一个临时构建的链接。 | ||
* | * 包请求没有任何 rpmlint 错误输出。 | ||
* | * Spec 不包含现代 Fedora 中不必要的内容(例如 BuildRoot:,%clean,或 %defattr)。 | ||
* | * Spec 未使用过多或复杂的宏。 | ||
* | * Spec 仅使用直接从 [[Packaging:Scriptlets]] 页面获取的简单脚本。 | ||
* | * 软件包不包含守护程序。 | ||
* | * 软件包对安全的影响不是特别大。 | ||
* | * 代码已经对许可问题进行了彻底检查。应解释许可证检查发现的异常问题。 | ||
简而言之,这种状态应该只用于标记那些非常容易审查的软件包请求,以使第一次审查包的审查者快速熟悉审查流程。 | |||
== 跟踪进度 == | == 跟踪进度 == | ||
[http://fedoraproject.org/PackageReviewStatus 软件包审核进度查询工具] 提供多个与审核相关的报告和简单的审核搜索功能,比如软件包名,维护人,提交人等等。 | [http://fedoraproject.org/PackageReviewStatus 软件包审核进度查询工具] 提供多个与审核相关的报告和简单的审核搜索功能,比如软件包名,维护人,提交人等等。 | ||
== 著作权 == | |||
该文档最初由 [TomCallaway|Tom 'spot' Callaway]] 于 2007 年创作,并已被许多其他贡献者修改。 | |||
[[Category:Package Maintainers]] | [[Category:Package Maintainers]] |
Latest revision as of 08:35, 11 February 2017
审核目的
为了向 Fedora 项目添加一个新的软件包,该软件包必须接受来自官方的审核。审核的目的在于确保这个软件包符合 Fedora 项目的基本质量要求。审核通过并不意味着这个软件包非常好,但是能保证它本身符合我们对它的最低质量要求。
审核适用于提交的新软件包,和软件包更名,以及曾经被废弃的旧软件包想要重新回归软件仓库,和从早期 Fedora Core 软件源合并的软件包。
注意,一些新软件包可能不需要进行审核。有关条件列表,请参阅Packaging:ReviewGuidelines#Package_Review_Process。如果软件包已豁免,则贡献者可以直接跳至步骤 8:在软件包数据库中提交 请求。但是请注意,为了完成审核过程,仍然需要提交一个 bugzilla 票据;为此,请使用这个 bug,并按照其中的说明操作。
审核流程
审核过程有两种角色,贡献人员 和 审核者。本文档将会详细说明这两者。
贡献人员
贡献人员就是想要提交新软件包的人,又可以称之为提交者。如果想要成为一名贡献人员,您必须按照 成为 Fedora 软件包仓库维护人员 的步骤来做。
作为一名贡献人员,您需要做好一个符合 软件包命名规定 和 打包规定 的软件包。有许多软件无法进入 Fedora,因此您需要检查软件包,确保其不包含 禁止的项目。
如果您对您的 spec 文件很满意,那么可以开始审核流程,步骤如下:
- 上传您的 spec 文件和 SRPM 包,确保其可以被直接下载(建议为 HTTP(s),请不要使用需注册下载的网盘或指定下载方法的页面)。如果您没有地方上传您的 spec 和 SRPM,请使用 Copr: [1]。
- 填写并提交一个 审核请求支持单。截图见右。
- 如果您尚未在 Fedora 中维护任何软件包,您需要标记您的审核请求的 Blocks 为 FE-NEEDSPONSOR(177841)并由您的保证人提供保证。详情请阅读 How to get sponsored into the packager group。
- 等待某人审核您的软件包。在此过程中,fedora-review flag 标志是空白的,这意味着未分配审阅者。
- 可能有来自非正式审查人的意见,他们可以将 NotReady 添加到 Whiteboard 字段,来指示审查请求尚未准备好。解决报告的问题后,请发布更新的 SPEC 和 SRPM 文件 URL,并将 NotReady 从白板中删除。您需要对评论做出回应,包括更新您的提交内容以解决问题;如果您没有,您的审查请求将被关闭。
- 审核者负责审核您的包。他们会将 fedora-review flag 设为 ?。
- 审核人员将会审查您的包。您应该修复审核人标出的任何不规范的部分。一旦审核者对包满意,fedora-review 标志将被设为 +,表示包已通过审核。
- 此时,您需要为新批准的包创建 SCM admin request。如果您没有获得保证,将无法完成此步骤。
- 当此过程完毕时,您可以 导入您的包 至 SCM。
- 使用 "fedpkg clone <package-name>" 命令签出打包脚本,进行最终检查。
- 使用 "fedpkg build" 命令请求构建。
- 为其它分支重复之前的操作。
- 请求为所有分支的更新,如果需要,请使用 "fedpkg update" 或其它 Bodhi 允许的方式。
- 如果可能,添加您的软件包至 Upstream Release Monitoring。
- 您还要保证审核支持单最终被关闭。在为请求的分支构建成功后,您可以自行关闭审核;或者如果您为某个 Fedora 版本构建了一个包,您可以要求 Bodhi 在完成构建后最终来关闭支持单。如果您自己关闭支持单,请使用 NEXTRELEASE 作为理由。
后期的软件包变动不再需要执行该审核流程,并且不应在 Bodhi 中创建的后续更新中引用审核凭证。
审核者
审核者就是审核软件包的人。
审核者应该是 packager 组 的成员。(如果贡献者还没有被担保,审查仍然可以继续完成,但他们需要找到担保人为其进行担保。)唯一例外是如果这个审核请求是某人的第一个软件包的话,那么审核者必须是该人的 担保人。了解某位贡献人员是否是担保人,请查阅 packager 组。
- 搜索一个需要审核者的审核请求:http://fedoraproject.org/PackageReviewStatus/ (fedora-review 标识 为空,或 bug 被分配给 nobody@fedoraproject.org)
- 如果您在开始正式审核之前发现有问题需要解决,请留下问题的评论并设置 Whiteboard 为 NotReady 状态。这会提醒其他审核者,该审核正处于未准备好的状态。
- 如果您想要开始正式审核,请设置 fedora-review 标识为 ? 并分配该请求为您本人。
- 审核过程 ...
- 检查 审核规定 中列出的 MUST 条目。
- 检查 审核规定 中列出的 SHOULD 条目。
- FedoraReview 工具 (即 fedora-review 软件包) 可以帮助您自动完成该过程。
- 请在每个审核中包含您的意见,为更好阅读,请您留下文字最好不要带附件。
- 审核结果:
- ACCEPT - 如果您认为该软件包很好,请设置 fedora-review 标识为 +
- FAIL, LEGAL - 如果该软件包存在法律风险 (已知的内容或版权问题,侵害,商标纠纷),请关闭该审核请求并设置为 WONTFIX,并留下您的意见 (比如我们不发行 mp3 组件等等)。您还需要设置 fedora-review 标识为 -,并设置审核 block FE-Legal。
- FAIL, OTHER - 如果该软件包存在其它问题,且此时并无简单的解决方案,则请您关闭该审核为 WONTFIX 并留下适当的意见 (比如我们不发行涉黄内容,或者是,嗨,这不是一个 spec 文件。更生动一点,嗨,这不是麦当劳的菜单么之类的内容)。设置 fedora-review 标识为 -。
- NEEDSWORK - 该审核请求需要进一步的完善,提交者和审核者需要协同工作以解决任何潜在的问题。将错误标记为 NEEDINFO,同时等待审核者对问题发表改进建议。
- 一旦一个软件包被标记为 fedora-review + (或 -),那么审核者的工作就已完成。您可以继续帮助新手完成 import/build/update 过程,直到他们的软件包成功进入 Fedora,并确保贡献者关闭包审查请求。
fedora-review 标识定义
fedora-review | (BLANK) | 需要审核 |
fedora-review | ? | 正在审核 |
fedora-review | - | 由于法律或其它问题,审核失败 |
fedora-review | + | 审核通过 |
特殊的 blocker 支持单
少量支持单会设置 "Blocks" 字段,以表明特殊的状态:
FE-NEEDSPONSOR | 审核提交人需要保证人。注意审核过程只能有一位担保人。 |
FE-DEADREVIEW | 由于提交者自行离开本次审核被关闭。用户可以在这里面找到一些有用的信息。 |
FE-Legal | 该软件包被社区法律团队认定存在法律风险。 |
白板 (Whiteboard)
为了节省审核者的时间,http://fedoraproject.org/PackageReviewStatus/NEW.html 将自动隐藏不适合审核的请求。Whiteboard 字段被用于标记请求的各种状态,并根据状态显示或隐藏请求。
NotReady | 软件包尚未开始审核。您可以新建一个审核支持单标记其为 NotReady,并继续协助直到可以被审核者审核。 |
BuildFails | 软件包无法被构建。 |
AwaitingSubmitter | 审核停止,需要提交人提供更多信息。 |
Trivial | 软件包比较容易审查。请见下文。 |
"Trivial" 状态表明包不复杂,容易审查。包审查请求不应被标记为 trivial,除非符合以下情况:
- 该软件包可以正常构建,并包括一个临时构建的链接。
- 包请求没有任何 rpmlint 错误输出。
- Spec 不包含现代 Fedora 中不必要的内容(例如 BuildRoot:,%clean,或 %defattr)。
- Spec 未使用过多或复杂的宏。
- Spec 仅使用直接从 Packaging:Scriptlets 页面获取的简单脚本。
- 软件包不包含守护程序。
- 软件包对安全的影响不是特别大。
- 代码已经对许可问题进行了彻底检查。应解释许可证检查发现的异常问题。
简而言之,这种状态应该只用于标记那些非常容易审查的软件包请求,以使第一次审查包的审查者快速熟悉审查流程。
跟踪进度
软件包审核进度查询工具 提供多个与审核相关的报告和简单的审核搜索功能,比如软件包名,维护人,提交人等等。
著作权
该文档最初由 [TomCallaway|Tom 'spot' Callaway]] 于 2007 年创作,并已被许多其他贡献者修改。