托管项目
以下准则已提出用于托管项目,旨在防止 genkernel
灾难再次发生。
文档要求
所有托管项目都应该拥有完善的、最新的用户和开发者文档。该文档必须在首次发布之前提供,而不是留作“稍后(真的)会做的事情”。
我们的文档团队很乐意帮助用户文档的 GuideXML 化、翻译等工作,但他们需要各种东西来完成这些工作
- 基本的入门文档。
- 关于项目或工具的基本信息,例如
- 目标
- 设计规范
- 常见问题解答
- 告知任何更新,如果可能的话,尽可能提前 - 这是为了避免文档中出现过时的建议。
开发者文档通常最好由项目维护者负责。
可移植性
Gentoo 在大量的体系结构上运行。这是我们相对于其他发行版的一个巨大优势。因此,任何工具都应以可移植性为设计目标,即使你最初认为你的工具只与一个体系结构相关。正是这种假设导致 genkernel
在突然变得强制性时不得不完全重写。
实际上,这意味着以下内容
- 使用可移植的编程语言 - 任何 Gentoo 工具都不使用 Java 或 C#。Bash、C 和 Python 很不错,尤其是考虑到每个人都已安装了这些语言。
- 不要假设硬件或体系结构。这涵盖了各种内容,具体取决于工具 - 一些简单的示例包括
- 不要假设你是在 32 位小端系统上运行。
- 不要假设所有计算机都具有 VGA 文本控制台,或者实际上任何类型的图形功能。
- 不要假设所有计算机都使用 DOS 磁盘标签。
- 不要过分依赖各种工具的特定实现,除非已经达成协议,我们始终使用该工具的特定实现(例如,使用
GNU sed
扩展是安全的,但不使用GNU find
扩展)。
开放/自由
所有托管项目都应使用适当的开放/自由/自由许可。通常,对于软件来说,这将是 GPL v2,而对于文档来说,则是 Creative Commons 署名-相同方式共享许可(CC-BY-SA-*)的某个版本。然而,可以进行合理的例外 - 有时使用 LGPL 或 *BSD 许可更有意义,而对于特定于应用程序的项目,使用应用程序的许可更有意义(例如,gentoo-syntax
软件包对于 vim
使用 vim
许可)。