指南¶
本文档描述了适用于 nova-core 和 nova-drm 的通用项目指南。
语言¶
Nova 项目使用 Rust 编程语言。 在这种情况下,适用于 Linux 项目的所有 Rust 规则,如 通用信息 中记录的那些规则,均适用。 此外,还适用以下规则。
除非技术上另有必要(例如,uAPI),否则任何驱动程序代码都用 Rust 编写。
除非技术上必要,否则必须避免不安全的 Rust 代码。 如果技术上必要,则应将不安全的代码隔离在单独的组件中,为其他驱动程序代码提供安全的 API 以供使用。
样式¶
适用于 Linux 项目的所有 Rust 规则,如 编码指南 中记录的那些规则,均适用。
有关提交清单,另请参见 Linux 提交清单附录的 Rust。
文档¶
就可扩展性、新贡献者的可访问性以及项目的可维护性而言,适当文档的可用性至关重要,特别是对于像 Nova 这样针对复杂硬件运行的驱动程序。
因此,项目非常鼓励添加任何类型的文档。
除此之外,还有一些最低要求。
每个非私有结构至少需要一个简短的文档注释,以解释该结构的语义意义,以及潜在的锁定和生命周期要求。 鼓励对非平凡的私有结构使用相同的最低文档。
uAPI 必须使用 kernel-doc 注释完全记录;此外,必须解释语义行为,包括潜在的特殊或极端情况。
连接一级驱动程序 (nova-core) 与二级驱动程序的 API 必须完全记录。 这包括文档注释、潜在的锁定和生命周期要求,以及适用的示例代码。
缩写必须在引入时进行解释;术语必须唯一地定义。
寄存器地址、布局、移位值和掩码必须正确定义;除非显而易见,否则必须记录语义意义。 这仅适用于作者能够获得相应信息的情况。
验收标准¶
补丁必须仅在经过邮件列表上的至少另一人审查后才能应用;这也适用于维护者。