|
|
@@ -189,6 +189,39 @@ flowchart TD
|
|
|
- 环境变量统一从 `conf/env.sh` 读取
|
|
|
- 避免在业务脚本中重复环境检测逻辑(统一交给 Python 入口)
|
|
|
|
|
|
+### 4.4 Git 提交信息(Conventional Commits)
|
|
|
+
|
|
|
+每条 commit message 必须以 `<type>: <简短描述>` 开头,type 从下面固定列表里选一个;长说明放正文,与标题空一行。
|
|
|
+
|
|
|
+| type | 用途 | 示例 |
|
|
|
+|------|------|------|
|
|
|
+| `feat` | 新功能 / 新 job / 新表 | `feat(raw/crm): 新增 ods_crm_ent_contact_di` |
|
|
|
+| `fix` | Bug 修复 / 数据订正 | `fix(dwd/trd): 修复订单金额币种换算错误` |
|
|
|
+| `docs` | 只改文档(含 `kb/`、注释、README) | `docs(kb): 更新 21-命名规范.md §3.9 示例` |
|
|
|
+| `refactor` | 不改变外部行为的重构 | `refactor(dw_base): tendata → dw_base 模块改名` |
|
|
|
+| `perf` | 性能优化 | `perf(dws): 拆 tmp 表减少 shuffle` |
|
|
|
+| `test` | 只增/改测试 | `test(udf): 补 safe_cast_decimal 边界用例` |
|
|
|
+| `chore` | 构建、依赖、CI、打包 | `chore: 精简 requirements.txt` |
|
|
|
+| `style` | 空白 / 格式 / import 顺序(不改逻辑) | `style: sql_style.xml 全局格式化` |
|
|
|
+| `build` | 打包脚本 / publish.sh / Dockerfile | `build: publish.sh 支持 -env 参数` |
|
|
|
+| `ci` | DolphinScheduler / GitHub Actions 配置 | `ci: DS 工作流加质量校验节点` |
|
|
|
+| `revert` | 撤销某次提交 | `revert: feat(raw/crm): ...` |
|
|
|
+
|
|
|
+**约定**:
|
|
|
+
|
|
|
+1. **标题 ≤ 50 字符**,祈使句(「新增 xxx」而不是「新增了 xxx」)
|
|
|
+2. **scope 可选但推荐**:数仓项目里 scope 常取 `{层}/{域}`(如 `dwd/trd`)或模块名(`dw_base`、`bin`、`kb`、`conf`)
|
|
|
+3. **破坏性变更**:标题末尾加 `!`,正文以 `BREAKING CHANGE:` 开头说明迁移方式
|
|
|
+ - 例:`refactor(dw_base)!: 拆分 __init__.py` + `BREAKING CHANGE: 需要在调用处显式 import findspark`
|
|
|
+4. **一次提交做一件事**:不要把"新增表 + 顺手修 bug + 改文档"塞一起,按 type 拆成 3 个 commit
|
|
|
+5. **关联 TPAD / issue**:正文末尾加 `Refs: TPAD-1234` 或 `Closes: #42`
|
|
|
+
|
|
|
+**反例**(会被 reject):
|
|
|
+
|
|
|
+- `update` / `修改` / `提交` —— 没有 type,描述空洞
|
|
|
+- `feat: xxx\nfix: yyy\ndocs: zzz` —— 一条 commit 混多个 type
|
|
|
+- `feat: 新增了一大堆表` —— scope 和具体目标不明
|
|
|
+
|
|
|
## 5. 测试规范
|
|
|
|
|
|
见 `90-重构路线.md` §6。核心要点:
|