感谢您对 DB-Syncer-Debezium 项目的关注!我们欢迎所有形式的贡献。
如果您发现了 bug,请创建一个 Issue 并包含以下信息:
- 清晰的标题和描述
- 复现步骤
- 期望行为
- 实际行为
- 环境信息 (Java 版本、操作系统等)
- 相关日志或错误信息
如果您有新功能建议:
- 先检查 Issues 中是否已有类似建议
- 创建新 Issue,标签为
enhancement - 详细描述功能需求和使用场景
- 等待维护者反馈
-
Fork 仓库
-
创建特性分支
git checkout -b feature/your-feature-name
-
编写代码
- 遵循项目代码规范
- 添加必要的单元测试
- 更新相关文档
-
提交更改
git commit -m "feat: add your feature description"提交信息格式:
feat:新功能fix:Bug 修复docs:文档更新test:测试相关refactor:代码重构chore:构建/工具相关
-
推送到 Fork
git push origin feature/your-feature-name
-
创建 Pull Request
- 描述清楚变更内容
- 关联相关 Issue
- 等待 Code Review
- 使用 4 个空格缩进
- 类名使用大驼峰 (PascalCase)
- 方法和变量使用小驼峰 (camelCase)
- 常量使用全大写下划线分隔 (UPPER_SNAKE_CASE)
- 每行代码不超过 120 字符
/**
* 任务管理服务
*
* 负责管理迁移任务的生命周期,包括创建、启动、停止、删除等操作。
*
* @author Your Name
* @since 1.0.0
*/
public class TaskService {
/**
* 创建新的迁移任务
*
* @param request 任务创建请求
* @return 创建的任务 ID
* @throws TaskCreationException 任务创建失败时抛出
*/
public String createTask(TaskCreateRequest request) {
// 实现...
}
}- 所有新功能必须包含单元测试
- 测试覆盖率目标: 80%+
- 使用 JUnit 5 和 Mockito
- 测试类命名:
ClassNameTest
示例:
@Test
void testCreateTask_Success() {
// Given
TaskCreateRequest request = new TaskCreateRequest();
request.setName("test-task");
// When
String taskId = taskService.createTask(request);
// Then
assertNotNull(taskId);
assertTrue(taskId.matches("[0-9a-f-]+"));
}- JDK 17+
- Maven 3.8+
- Docker & Docker Compose
- IDE (推荐 IntelliJ IDEA 或 Eclipse)
-
克隆项目
git clone https://github.com/your-username/db-syncer-debezium.git cd db-syncer-debezium -
启动依赖服务
cd docker docker-compose up -d -
导入 IDE
- IntelliJ IDEA: File → Open → 选择项目根目录
- Eclipse: File → Import → Maven → Existing Maven Projects
-
运行测试
mvn test -
编译打包
mvn clean package
main: 主分支,保持稳定develop: 开发分支,包含最新功能feature/*: 功能分支bugfix/*: Bug 修复分支release/*: 发布分支
-
自动化检查 (CI)
- 代码编译
- 单元测试
- 代码风格检查
- 测试覆盖率
-
Code Review
- 至少一位维护者审核
- 解决所有评论
-
合并
- Squash and Merge (保持提交历史整洁)
- 删除特性分支
- 更新版本号 (pom.xml)
- 更新 CHANGELOG.md
- 创建 Release 分支
- 测试验证
- 合并到 main
- 打标签 (v1.0.0)
- 发布到 Maven Central (如适用)
贡献的代码将使用 Apache License 2.0 许可证。
- 尊重所有贡献者
- 建设性的讨论
- 专注于技术问题
- 欢迎新手贡献
- GitHub Issues: 技术问题和 Bug 报告
- Discussions: 一般性讨论和问答
感谢您的贡献!