# 贡献指南 感谢你对本项目的贡献。 本项目当前采用“`dev` 作为默认集成分支,`main` 作为稳定发布分支,`release/*` 负责发版准备”的协作模型。为减少分支漂移与 PR 处理成本,请在提交贡献前先阅读本指南。 --- ## 分支模型 - `dev`:默认分支,也是日常开发集成分支 - `main`:稳定发布分支 - `release/*`:发布准备分支,主要供维护者使用 - 外部贡献者建议使用以下分支命名: - `fix/*`:问题修复 - `feature/*`:功能新增或增强 维护者发布流转如下: ```text feature/* / fix/* -> dev -> release/* -> main -> tag(vX.Y.Z) ``` --- ## 外部贡献者如何提 Pull Request 无论是 `fix/*` 还是 `feature/*`,**外部贡献者统一直接向 `dev` 发起 Pull Request**。 这样做的原因: - `dev` 是当前日常集成分支,评审与合入路径和维护者开发流程一致 - 外部贡献会直接进入触发日常校验和 dev 构建的分支 - 维护者可以直接从 `dev` 切 `release/*`,减少额外同步步骤 建议流程: 1. Fork 本仓库 2. 先同步你 fork 中的 `dev`,再从 `dev` 创建分支(建议命名为 `fix/*` 或 `feature/*`) 3. 完成代码修改,并进行必要自检 4. 推送到你的远程分支 5. 向本仓库的 `dev` 分支发起 Pull Request --- ## Pull Request 要求 请尽量保证 PR 单一、清晰、可审核。 建议遵循以下要求: - 一个 PR 只解决一类问题,避免混入无关改动 - 标题清晰说明改动目的 - 描述中说明: - 背景与问题 - 变更点 - 影响范围 - 验证方式 - 如涉及 UI 调整,建议附截图或录屏 - 如涉及兼容性、数据变更或构建链路调整,请明确说明风险和回滚方式 --- ## PR 合并策略(维护者) `dev` 分支上的 PR 建议使用 **Squash and merge**。 原因: - 保持 `dev` 集成历史清晰、便于审查 - 每个 PR 在 `dev` 上对应一个明确的集成提交 - 降低发版前整理与冲突处理成本 --- ## 维护者同步规则 由于外部 PR 会直接合入 `dev`,维护者应将 `dev` 作为日常协作与发版准备的主线分支。 ### 1. 发版前从 dev 切 release/* 发布前由维护者基于 `dev` 创建发布分支,例如: ```bash git checkout dev git pull git checkout -b release/v0.6.0 git push -u origin release/v0.6.0 ``` ### 2. release/* → main 发版 发布准备完成后,将 `release/*` 合并回 `main`,并打标签发布: ```bash git checkout main git pull git merge release/v0.6.0 git push git tag v0.6.0 git push origin v0.6.0 ``` ### 3. main 回流到 dev(发版后必做) 发布完成后,需要将 `main` 回流到 `dev`,确保下一轮开发从已发布代码线继续推进: ```bash git checkout dev git pull git merge main git push ``` --- ## 提交建议 建议保持提交信息简洁、明确,便于维护者审查与后续追踪。 推荐格式: ```text emoji type(scope): 中文描述 ``` 示例: ```text 🔧 fix(ci): 修复 Windows AMD64 下 DuckDB 驱动构建工具链 ✨ feat(redis): 新增 Stream 类型数据浏览支持 ♻️ refactor(datagrid): 优化大表横向滚动与渲染结构 ``` --- ## 其他说明 - 文档、构建链路、驱动兼容性相关改动,请尽量附带验证结果 - 若改动较大,建议先提 Issue 或 Draft PR,先对齐方案再实施 - 如提交内容与项目当前架构方向冲突,维护者可能要求收敛范围后再合并 感谢你的贡献。