blob: aa10f775dbe7d974faeed8609acc11c1cf654d3e [file] [view]
---
title: 贡献路径
---
# 贡献路径
## 为什么需要这篇文档
很多新贡献者不是缺少扩展点,而是缺少一条清晰入口:
- 环境搭建在一页
- connector 开发在另一页
- 社区联系方式散在 README FAQ
- 架构参考又分布在多个目录
这篇文档的目标,就是给出一条稳定的 onboarding 路径。
## 这篇文档适合谁
如果你准备做下面这些事情,建议从本页开始:
- 修文档
- 贡献 connector transform
- 修一个 bug
- 想先知道应该去哪里提问、再决定要不要提 PR
## 从最小可行入口开始
不要一上来就试图看懂整个仓库。先从离你目标最近的那种贡献开始。
### 文档贡献
比较好的起点包括:
- broken link
- 改进 quick start 表达
- 让配置文档和真实 connector option 对齐
- 同时补齐英文和中文文档
建议先看:
- [快速入门总览](../getting-started/overview.md)
- [作业配置指南](../getting-started/job-configuration-guide.md)
- [文档格式规范](./docs-format-specification.md)
### Connector 贡献
比较好的起点包括:
- 修一个 connector option 或文档不一致问题
- 给现有 connector 补一个小能力
- 在研究一个相近 connector 之后,再做全新的 source sink
建议先看:
- [开发自己的 Connector](./how-to-create-your-connector.md)
- [Source Connector 开发指南](./source-connector-development.md)
- [Sink Connector 开发指南](./sink-connector-development.md)
### Transform 贡献
比较好的起点包括:
- 改一个已有 Transform option 或示例
- 修一个聚焦的 schema CDC 相关问题
- 在研究一个相近实现之后,再新增一个 Transform
建议先看:
- [贡献 Transform-V2 插件](./contribute-transform-v2-guide.md)
- [Transform 插件体系](../architecture/transform-plugin-system.md)
- [Transforms 目录](../transforms)
### 代码或架构贡献
比较好的起点包括:
- 先稳定复现一个具体 bug
- 先补一个聚焦的测试
- 先研究最小相关模块,再去改引擎
建议先看:
- [搭建开发环境](./setup.md)
- [架构概览](../architecture/overview.md)
- [核心 API 设计](../architecture/core-api-design.md)
## 推荐贡献流程
对大多数贡献者来说,最短且稳妥的路径通常是:
1. 先读你要改的功能对应的用户文档
2. 在本地复现当前行为
3. 在仓库里找一个最相近的已有实现
4. 用最小改动解决一个明确问题
5. 如果是用户可见变更,同时更新 `docs/en` `docs/zh`
通常这比一开始就做大规模重构更容易落地。
## 去哪里提问
不同类型的问题,适合的渠道也不同:
- [GitHub Issues](https://github.com/apache/seatunnel/issues) 适合具体 bug、proposal 和跟踪
- [dev 邮件列表](https://lists.apache.org/list.html?dev@seatunnel.apache.org) 适合长线程设计讨论和项目级决策
如果你不确定去哪里问,通常可以先在 issue 里说明你的具体问题,以及你已经检查过什么。
## Maintainer 最希望你补齐什么
一条贡献如果具备这些信息,通常会明显更容易评审:
- 清楚的问题定义
- 尽量小且聚焦的改动范围
- 精确的配置名和示例
- 测试,或者说明为什么测试不现实
- 英文和中文文档同步更新
对代码贡献来说,不要把无关清理和真实修复混在一起。
## 哪类首个贡献更容易落地
这些类型通常更容易合入:
- 改一页文档,并同步 `en` + `zh`
- 修一个 connector option 校验问题
- 补一个缺失的示例或错误提示
- 给已有 bug 补一个聚焦的 unit test E2E test
这些类型通常需要更多上下文:
- 改引擎调度行为
- 大规模 connector 重构
- 修改公开配置名或默认值
## 贡献角色在实践中怎么理解
从日常协作角度看,最重要的演进其实很简单:
- 用户提出问题和缺口
- 贡献者提交修复和改进
- 长期贡献者再逐步更多参与评审和项目方向
对新贡献者来说,最重要的不是正式头衔,而是你的改动是否清晰、聚焦、容易验证。
## 推荐阅读顺序
按目标选择一条路径即可:
- 文档路径:[文档格式规范](./docs-format-specification.md) -> [快速入门总览](../getting-started/overview.md)
- connector 路径:[开发自己的 Connector](./how-to-create-your-connector.md) -> [Source Connector 开发指南](./source-connector-development.md) [Sink Connector 开发指南](./sink-connector-development.md)
- transform 路径:[贡献 Transform-V2 插件](./contribute-transform-v2-guide.md) -> [Transform 插件体系](../architecture/transform-plugin-system.md)
- 引擎路径:[搭建开发环境](./setup.md) -> [架构概览](../architecture/overview.md)