# 贡献指南(Contributing Guide)
感谢你对 g2rain 的关注与贡献意愿! 为了让协作更顺畅、更高效,请在参与项目前阅读本指南。
希望寻找适合自己的参与方向?欢迎阅读开源共建招募,了解参与方向、入门任务和联系入口。
# 1. 我可以如何贡献?
无论你是刚接触 g2rain,还是已经深入使用,都有很多方式可以参与:
- 使用反馈:在实际项目中使用 g2rain,并反馈遇到的问题与需求。
- 文档改进:修正文档中的错别字、过期内容、示例不清晰等问题。
- Bug 修复:修复现有 Issue 中标记的 Bug,或你自己发现的问题。
- 新特性:为平台提出或实现新功能(建议先通过 Issue / RFC 讨论)。
- 示例与教程:补充 Demo、最佳实践、集成案例等。
- 生态扩展:基于 G2rain 开发新的业务模块、应用、主题或插件,在自己的仓库发布开源后,将地址分享给我们,便于收录链接并推广。具体方式见独立扩展与生态分享。
# 2. 提交 Issue 前请先检查
在创建 Issue 之前,请先:
- 搜索现有 Issue,避免重复提问。
- 尽量确认问题属于 g2rain 本身,而不是环境或依赖配置问题。
创建 Issue 时建议包含:
- 使用的仓库名称与版本(例如:
g2rain-main-shell@1.0.0)。 - 运行环境(Node 版本、浏览器、操作系统等)。
- 复现步骤(最好附上最小可复现示例)。
- 实际行为 vs 期望行为。
# 3. 提交 Pull Request(PR)流程
Fork 仓库 在 GitHub 上 Fork 目标仓库(例如
g2rain-main-shell),并 Clone 到本地。创建分支 从上游仓库最新的
develop创建工作分支。以下以g2rain-agent-runtime为例,请替换为你实际贡献的仓库和 GitHub 用户名:git clone https://github.com/YOUR_USERNAME/g2rain-agent-runtime.git cd g2rain-agent-runtime git remote add upstream https://github.com/g2rain/g2rain-agent-runtime.git git fetch upstream git switch -c fix/issue-123 upstream/develop新功能可使用
feature/xxx,文档修改可使用docs/xxx。一个分支聚焦一个问题;如果目标仓库没有develop,先通过 Issue 联系维护者确认接入分支。按目标仓库执行验证 本中央仓库仅维护文档,没有应用构建、启动或测试命令。文档变更需检查 Markdown 链接,并执行
git diff --check。子项目的依赖安装、构建和测试请遵循目标仓库 README 与 AGENTS.md,不要默认所有项目都使用 npm。保持提交粒度清晰
- 一个 PR 尽量专注于一个问题或一个特性。
- Commit 信息建议遵循简单的约定式(如
fix: xxx、feat: yyy、docs: update zzz)。
编写或更新测试/示例(如果适用)
- 为新功能添加必要的测试或示例。
- 确保现有测试都能通过。
提交 PR 将工作分支推送到自己的 Fork:
git add path/to/changed-file git commit -m "fix: 修复问题的简要说明" git push -u origin fix/issue-123在 GitHub 点击 Compare & pull request,确认目标为
g2rain/目标仓库的develop分支,来源为 你的 Fork 的工作分支。代码改动提交到对应组件仓库;平台文档与治理改动提交到g2rain/g2rain。PR 描述请包含:
- 问题与关联 Issue:发生条件、期望结果和实际结果,可写
Refs #123。 - 改动内容:实现方式、影响的模块与接口,以及兼容性影响。
- 验证结果:实际执行的命令、测试结果及必要的截图;未完成的验证说明原因。
- 部署与迁移:是否涉及数据库、配置、依赖版本或跨仓库配套,如何升级和回滚;不涉及时注明。
- 文档与示例:说明同步更新的使用说明或示例入口。
尚在开发或希望提前讨论的改动可以创建 Draft PR,完成后再标记 Ready for review。提交前检查 diff,移除本地配置、凭据、构建产物和无关格式变更。
- 问题与关联 Issue:发生条件、期望结果和实际结果,可写
Review 与修改 Maintainer 或 Committer 会进行 Review,并可能提出修改建议。 请根据反馈在原工作分支继续提交并推送,更新同一个 PR。需要同步上游时,获取最新
upstream/develop并解决冲突,再执行相关验证。贡献 PR 先合入
develop,由维护者完成测试环境验证及必要的跨组件联调后,再统一合并进入main。main用于维护已验证的稳定内容;贡献者无需另行向main提交相同 PR。版本标签及正式发布由维护者按发布流程处理。Fork 工作分支 → PR 到上游 develop → Review 与修改 → 合入 develop → 维护者验证 → 合入 main → 按计划发布
# 4. 代码风格与规范
不同子项目可能有各自的 Lint / 格式化配置(如 ESLint、Prettier 等),一般建议:
保持与现有代码风格一致。
子项目按目标仓库实际提供的格式检查、测试和构建命令验证;不要默认每个项目都使用 npm。
本仓库文档变更检查相对链接与页内锚点,并执行
git diff --check。避免在无必要时大规模重排代码,以免影响 Review。
# 5. 文档贡献建议
先查看文档导航与维护分工 (opens new window):组织介绍维护在首页,领域解释放入专题,项目运行事实回到责任项目,架构规则按既有治理流程修改。新增页面时同步补充索引,避免同一能力状态在多处重复维护。
文档同样重要,甚至比代码更容易帮助新用户上手。你可以:
- 为新特性补充文档说明。
- 将零散的 Issue / 评论中的经验整理成正式文档。
- 补充中文/英文双语文档(如果社区有此需求)。
更新文档时建议:
- 保证示例可运行、配置项与实际代码同步。
- 在需要时添加简要的架构图或时序图,帮助理解。
# 6. 提案(RFC)与大改动
对于架构级别变更或影响较大的新特性,建议先通过 RFC 讨论:
- 在本仓库或相关子仓库创建 Issue,简单描述你的想法。
- 影响多个项目的架构规则时,按架构治理机制 (opens new window)在现有 ADR 目录 (opens new window)提出或更新决策,说明动机、方案与验证计划。
- 通过 Discussions 或社区会议收集反馈。
- 涉及跨项目规则时,更新适用 Profile Draft、选择代表项目验证,经评审后发布架构基线,由各项目显式升级。项目内的功能建议在对应仓库讨论。
这样可以避免重复劳动,也有助于社区理解设计背景。
# 7. 行为准则
所有参与者都应遵守项目的 行为准则 (opens new window),保持友好、专业、尊重的交流氛围。 违反行为准则的行为可能导致 Issue / PR 被关闭,严重情况会被限制参与。
# 8. 致谢
感谢每一位使用、传播和贡献 g2rain 的开发者。 你的任何一点改动(哪怕只是修正一个错别字)都在帮助这个项目变得更好。
← 开源共建人员招募