openSUSE:Factory dos and donts

跳转到:导航搜索


关于维护者应该做什么和不应该做什么的一些通用提示。


维护者应该...

...记住其他人也会处理这个软件包

这可能是最重要的规则:在软件包中所做的一切都应该易于被任何前来帮助的人理解。

这包括良好的文档,既在.changes文件中,也在.spec文件中的注释中,还包括指向相关资源的链接(对于补丁,使用 补丁标签)。

这也意味着应该避免神秘且快速的修复。

...及时且友好地回复提交请求

一个好的维护者会确保贡献者保持积极性。实现这一点的最好方法是及时(等待几天以上没有反馈会让人失去动力)且友好地回复提交请求。不要以生硬的方式拒绝请求,而是尝试清楚地解释您对提交的疑虑。构建服务的 审查功能可以在这方面提供帮助。

...在更改文件中记录每一次更改

每次您提交修复程序或更新到 Factory 时,都必须在.changes文件中记录所有更改。您可以使用osc vc来帮助您创建新的.changes条目的模板。

一个好的.changes条目不仅描述了更改,还解释了为什么需要这些更改。例如:“添加 pkgconfig(coolstuff) BuildRequires”纯粹是描述性的,而“添加 pkgconfig($coolstuff) BuildRequires 以启用 $cool 功能”可以快速概述更改的重要性。

此外,不要忘记引用由于更改而关闭的错误条目或功能请求。“修复 bnc#12345”或“关闭 fate#12345”可用于此目的。

...使用 %{optflags}

确保%{optflags}(或$RPM_OPT_FLAGS) 作为 CFLAGS/CXXFLAGS 传递给 C/C++ 编译器。使用%configure可能会有所帮助,但有时使用export CFLAGS="%{optflags}"在运行make之前是必要的。有时也需要进行补丁。

...查看 rpmlint 警告

在构建结束时,rpmlint 用于分析构建的软件包并警告常见的打包错误。报告位于构建日志的末尾,并在RPMLINT 报告行之后。修复这些警告通常可以改进软件包。

...遵循 FHS

将所有文件放在软件包中的正确位置。尊重 文件系统层次结构标准。通常,维护良好的上游项目会在您使用%make_install(或make install).

...使用一致的打包风格

A.spec文件可以用多种方式编写以达到相同的结果,因此采用特定的打包风格以降低贡献者的工作量会很好。

spec-cleaner 工具(可在 openSUSE:Tools 中找到)可以更新.spec文件以使用易于阅读的打包风格。例如,它每行只放置一个 BuildRequires 依赖项(尽管您可以放置任意数量的依赖项),因为这样可以更轻松地查看提交请求中的更改。

...阅读相应的文档

阅读与您的软件包相关的 打包指南

维护者不应该...

...包含捆绑的库

尽可能尝试使用系统库而不是捆绑的库。向上游报告错误,创建补丁。我们希望每个人都使用共享库,而不是携带自己的版本。

...在有任何未处理的提交请求时进行更改

如果您正在更新/修复软件包,请先简要查看您的提交请求队列。可能其他人已经完成了。如果只是破坏它并重新做一遍,他们会非常沮丧。

...保留补丁供自己使用

如果您必须修复某些内容并修补您正在打包的软件,请不要将补丁仅保留给自己。将其放入上游错误跟踪器中。与上游沟通。如果您这样做,当上游创建新版本时,您就不需要移植它,其他人也可以从您的补丁中受益。