跳转到: 导航, 搜索

Puppet/编码规范

这些文档已过时,但为了历史原因和搜索访问而保留在此处。要查看最新文档,请参阅 https://docs.openstack.org/developer/puppet-openstack-guide/


编码前

注意:本文档仍在完善中,内容会不断演变。欢迎任何贡献;-)

  • 阅读此页面
  • 确保您要编写的代码尚未在进行中
  • 确保您熟悉 Puppet 语法、LintRspecBeaker
  • 如果您想创建一个新的模块,请阅读 Puppet/New_module

最佳实践

弃用

任何补丁必须向后兼容。

这意味着:

  • 不要破坏接口(至少在一个周期内弃用参数,并为我们的用户添加警告)
  • 不要更改默认参数(除非你有充分的理由,但你的提交信息必须解释它)

提交信息

请阅读 GitCommitMessages

一致性

我们有很多模块需要维护,请保持我们的代码一致。在添加新参数或新类之前,请查看其他模块是否已经实现了它们,并保持一致。另请参阅我们的通用库 OpenStackLib

配置文件默认值和参数

我们希望用户在不覆盖值的情况下,获得正在配置的服务默认值。许多传递到类和定义类型的参数直接转换为配置文件设置。当参数直接转换为配置文件值,并且该值是可选的时,它应设置为 $::os_service_default。这是一个特殊值,它将通过删除配置文件中的任何现有值来确保使用服务默认值。

空参数

当需要指定一个空(nil)参数时,使用 undef 是最佳选择。不要使用: " (非 Puppet 风格) 或 false (undef 如果作为布尔值测试,则为 false)。

测试

您的代码需要经过测试。Puppet OpenStack CI 将 验证,但如果您想节省时间,最好在发送补丁之前本地运行测试:

文档

  • 验证所有参数都已记录。它们是必需的,并且 lint 将检查它。
  • 如果可能,请更新 examples/*.pp,它们对我们的用户非常有用。
  • 在需要时注释您的代码(临时解决方法、TODO 等)。

请求评审

获取评审的不同方式:

  • 进入 IRC #puppet-openstack (freenode) 并礼貌地请求评审。如果您需要讨论已经评审过的代码,可以 ping 评审人员。
  • 将您的补丁添加到 Puppet OpenStack 会议议程(在公开讨论部分)。
  • 使用 邮件列表