感谢你帮助改进 Flydb。本指南面向准备提交 Issue 或 Pull Request 的开发者;架构约束以 设计总览及其链接的设计文档为准。
- 搜索现有 Issues,避免重复问题。
- Bug 请提供 Flydb、Java、数据库和 JDBC 驱动版本,以及可复现的最小步骤。
- 不要提交密码、带凭据的 JDBC URL、生产数据、厂商 JDBC 驱动或其他受限制品。
- 安全漏洞不要公开建 Issue,请遵循安全策略。
完整 reactor 使用 JDK 17、Node.js 22.12+ 和 npm。Node 只用于编译随包提供的 GUI:
./mvnw -B verifycore、runtime、web、CLI、Boot 2 starter 和 Boot 2 示例必须保持 Java 8 字节码。涉及这些模块或发行边界时,额外运行:
./scripts/check-bytecode.sh 52 \
flydb-core/target/classes flydb-runtime/target/classes flydb-web/target/classes flydb-cli/target/classes \
flydb-spring-boot-2-starter/target/classes examples/boot2-demo/target/classes
./scripts/check-bytecode.sh 61 \
flydb-spring-boot-3-starter/target/classes examples/boot3-demo/target/classes集成测试可能启动 Docker 数据库。达梦、KingbaseES、Oracle 等授权数据库只有在你拥有合法驱动和测试实例时才能运行;提交中不得重新分发驱动。
- 优先在公共边界补回归测试,再修改实现。
flydb-core不得增加非test作用域依赖。- 公共 API、CLI、配置键、错误码、驱动加载或数据库支持范围发生变化时,同步更新测试和
docs/reference。 - 设计契约与实现冲突时,在 PR 中说明冲突和处理方式,不要静默偏离。
- 数据库兼容性结论必须写清验证层级;单元测试或兼容家族测试不等于厂商认证。
- 从最新
main创建聚焦单一目标的分支。 - 提交前运行相关定向测试和完整
./mvnw -B verify。 - 运行
git diff --check,确认没有意外文件或凭据。 - 在 PR 中说明变更原因、行为影响、验证命令和未验证边界。
- 若改变用户可见行为,同步更新中英文 README 或相应参考文档。
提交贡献即表示你同意按仓库的 Apache License 2.0 提供该贡献。