跳到内容

贡献

发现了一个错误或有改进 Ansible Molecule 的想法?想写一些文档或在论坛上分享您的专业知识?有很多方法可以参与并贡献,了解如何参与。

准则

  • 我们对 Molecule 的各种不同类型的改进感兴趣;如果您想从事一些主要工作,请随时提出 问题,以确保高效协作并避免重复工作。
  • 从您想要进行工作的基础创建一个主题分支。
  • 确保您已为您的更改添加了测试。
  • 虽然不是必需的,但最好使用 git commit --signoff 签署提交,并同意使用 --signoff 构成对 DCO 1.1 条款的同意。
  • 运行所有测试,以确保没有其他意外损坏。
  • 按照下面的格式化部分重新格式化代码。
  • 提交拉取请求。

与我们交流

与 Ansible 社区联系!

加入 Ansible 论坛提出问题、获得帮助并与社区互动。

  • 获取帮助:获取帮助或帮助他人。如果您开始新的讨论,请添加适当的标签,例如使用 moleculemolecule6devtools 标签。
  • 社交空间:与同道中人见面并互动。
  • 新闻与公告:跟踪项目范围内的公告,包括社交活动。

要获取社区的发布公告和重要更改,请参阅 Bullhorn 时事通讯

您可以在 Ansible 通信指南中找到更多信息。

可能的安全漏洞应通过电子邮件报告给 security@ansible.com

行为准则

请参阅我们的行为准则文档。

拉取请求和治理

  • 如果您的 PR 卡住了,请 加入我们的 IRC 或添加到 工作组议程中。
  • 代码样式是 CI 强制执行的,其他一切都与主题无关。
  • 所有 PR 必须由另一个人审查。这是由 GitHub 强制执行的。较大的更改需要 +2。

测试

Molecule 拥有一套广泛的单元测试和功能测试。 Molecule 使用 Tox 因子来生成 python x Ansible x 单元/功能测试的矩阵。此时需要手动设置。

依赖项

当驱动程序的二进制文件不存在时,测试将被跳过。

安装测试框架 Tox

$ python3 -m pip install tox

运行测试套件

运行所有测试,包括 linting 和覆盖率报告。这应该在合并或提交拉取请求之前运行。

$ tox

列出可用场景

列出所有可用场景。这对于针对功能和单元测试的特定 Python 和 Ansible 版本很有用。

$ tox -av

单元

运行所有带有覆盖率的单元测试。

$ tox -e py

运行特定 Python 版本的所有单元测试。

$ tox -e py311

Linting

Linting 由多个 linter 组合执行。

运行所有 linter(有些会进行更改以使代码符合样式规则)。

$ tox -e lint

文档

使用 mkdocs 生成文档。

$ tox -e docs

更新依赖项

需要手动更新依赖项,位置在:

  • .config/requirements.in
  • .pre-commit-config.yaml(2 个位置)

鸣谢

基于 John Dewey (@retr0h) 和其他 贡献者的出色工作。活跃成员列表可以在 Molecule 工作组中查看。