菜单

贡献

相关源文件

本文档概述了为 Dear ImGui 代码库贡献的流程和指南。它为新老贡献者提供了全面的指导,涵盖了从报告问题到提交代码更改的各个方面。有关将 Dear ImGui 集成到您的应用程序的信息,请参阅 集成指南

贡献流程概述

Dear ImGui 欢迎各种形式的贡献,包括错误报告、功能请求、文档改进和代码提交。该项目维护着特定的指南,以确保贡献是有益的,并且可以被维护者高效地审查。

来源: docs/CONTRIBUTING.md10-65 docs/CONTRIBUTING.md66-75

沟通渠道

了解在哪里以及如何与 Dear ImGui 项目沟通对于有效贡献至关重要。

问题 vs. 讨论

Dear ImGui 使用 GitHub 的“问题”和“讨论”功能进行不同类型的沟通。

渠道适合备注
问题错误报告、功能请求、关于现有功能的疑问用作集中的知识数据库
讨论设置问题、链接问题、字体加载问题用于故障排除的初始设置

经验法则是:如果 Dear ImGui 已经在您的应用程序中运行并且您以前使用过它,您可以打开一个问题。否则,请使用讨论来解决与设置相关的问题。

来源: docs/CONTRIBUTING.md26-38

如何报告问题

有效报告问题对于维护者理解和解决问题至关重要。该项目对问题报告有特定要求。

报告问题时

  1. 遵循模板,该模板在 GitHub 的问题表单中提供。
  2. 明确您的目标和期望。
  3. 包含代码示例 - 一个最小、完整且可验证的示例 (MCVE)。
  4. 附上截图或视频以阐明上下文。
  5. 为崩溃或断言提供调试器调用堆栈
  6. 确保您的项目启用了断言

来源: docs/CONTRIBUTING.md39-65

提交拉取请求

通过 Pull Request 贡献代码是改进 Dear ImGui 的宝贵方式。在提交 PR 时,请理解您也要求维护者审查您的代码并最终接管其维护。

PR 指南

  1. 添加功能时描述使用场景
  2. 修复警告或编译问题时包含编译器日志
  3. 附上截图或视频以展示功能。
  4. 遵循代码库的编码风格。:
    • 4 个空格缩进(无制表符)。
    • local_variable, FunctionName(), MemberName 命名约定。
    • // Text Comment, //CodeComment(); 注释风格。
    • C 风格的类型转换。
    • 最小化使用现代 C++ 特性(限制 C++11)。
  5. 为 Pull Request 创建一个专门的分支

来源: docs/CONTRIBUTING.md66-75

贡献者存储库结构

理解存储库结构对于有效贡献很重要。以下是存储库相对于贡献的组织方式。

来源: .github/pull_request_template.md1-7 docs/CONTRIBUTING.md1-9

在为 Dear ImGui 做贡献时,有一些重要的版权注意事项需要了解。

  1. 所有提交的代码将成为存储库的一部分,并根据 Dear ImGui license 分发。
  2. 通过提交代码,您同意:
    • 代码是您的作品,您有权贡献。
    • 您将代码的所有可转让权利授予项目维护者。
    • 这包括再许可、修改和分发的权利。
    • 您将版权转让给项目维护者。

重要提示:提交 PR 时,请勿修改文件中的任何版权声明。

来源: docs/CONTRIBUTING.md76-81

入门资源

为了有效地为 Dear ImGui 做贡献,请熟悉这些资源。

资源目的
Wiki代码片段、链接和资源
入门指南设置 Dear ImGui
FAQ (docs/FAQ.md)常见问题解答
FONTS.md字体相关信息
演示窗口功能的交互式演示
GitHub 问题/标签搜索类似的问题

一些具体的建议

  • 运行 ImGui::ShowDemoWindow() 来探索功能及其实现。
  • 使用 IDE 的搜索功能查找相关的符号和注释。
  • 搜索 GitHub 问题(包括已关闭的)以查找类似主题。
  • 使用标签系统浏览分类的问题。

来源: docs/CONTRIBUTING.md11-25

高质量贡献的最佳实践

为了增加您的贡献被接受的机会:

  1. 在提出解决方案之前,先理解问题空间
  2. 创建最小化的示例来演示问题或功能。
  3. 提交更改前进行充分测试
  4. 用清晰的注释记录您的代码
  5. 一致地遵循现有的代码风格
  6. 对反馈和审查意见保持响应

请记住,即使 PR 未立即合并,它仍然可以为展示需求和可能的解决方案提供价值。许多 PR 在找到最终形式之前会通过讨论进行演变。

来源: docs/CONTRIBUTING.md66-70

代码实体上下文中的贡献工作流程

以下图表显示了贡献流程与 Dear ImGui 代码库中特定代码实体的关系。

来源: docs/CONTRIBUTING.md39-65 docs/CONTRIBUTING.md66-75