74 lines
2.5 KiB
Markdown
74 lines
2.5 KiB
Markdown
# 标准化开发测试发布约束
|
|
|
|
## 1. 仓库定位
|
|
|
|
1. 本仓库是 **本机 Mac 开发仓库**,不是生产目录。
|
|
2. `memind_adm` 可以独立开发,但共享用户、权限、策略、技能、计费体系必须继续复用 `Memind` 主实现。
|
|
|
|
## 2. 开发约束
|
|
|
|
1. 新建开发分支前必须同步远端主线。推荐统一使用:
|
|
|
|
```bash
|
|
bash scripts/new-branch.sh feature/xxx
|
|
```
|
|
|
|
等价手工命令:
|
|
|
|
```bash
|
|
git fetch origin --prune
|
|
git switch main
|
|
git pull --ff-only
|
|
git switch -c feature/xxx
|
|
```
|
|
|
|
也可以直接从远端主线建分支:
|
|
|
|
```bash
|
|
git fetch origin --prune
|
|
git switch -c feature/xxx origin/main
|
|
```
|
|
|
|
2. 每次开发都必须形成本地 Git commit。
|
|
3. 一个 commit 只解决一类问题,避免把功能、环境、运维脚本混在一起。
|
|
4. 不允许长期堆积“只有自己知道用途”的未提交改动。
|
|
5. `.env`、账号、密钥、日志、pid 不进入 Git。
|
|
6. 分支开发中如果主线继续变化,发布前必须重新对齐:
|
|
|
|
```bash
|
|
git fetch origin --prune
|
|
git rebase origin/main
|
|
```
|
|
|
|
## 3. 测试约束
|
|
|
|
1. 任何会发布的改动,至少要有最小可复现验证。
|
|
2. 只看健康检查和登录页 200 不算通过,必须验证本次功能真实路径。
|
|
3. 涉及共享用户、计费、空间额度、策略同步时,必须保留业务验收记录。
|
|
|
|
## 4. 发布约束
|
|
|
|
1. 本机不允许直接 `rsync` 到 `103` 或 `105`。
|
|
2. 测试与生产统一走“打包发布”。
|
|
3. 发布来源必须是可追溯 commit,不允许从不明工作区直接出包。
|
|
4. 发布前必须有备份,发布后必须有健康检查和业务验收。
|
|
5. 发布前必须通过统一闸门:
|
|
|
|
```bash
|
|
bash scripts/check-release-ready.sh
|
|
```
|
|
|
|
6. 分支落后 `origin/main`、工作区有未提交或未跟踪改动、处于 detached HEAD、或没有明确批准却从 `main` / `master` 发布,均禁止发版。
|
|
|
|
## 5. 文档约束
|
|
|
|
1. 主机、端口、共享依赖目录、发布入口变化时,文档必须同次更新。
|
|
2. 如果一次事故已经查明根因,要把根因和排查入口写进仓库文档,而不是只留在聊天记录里。
|
|
|
|
## 6. 建议长期执行的附加规范
|
|
|
|
1. 发布前要求工作区可读:`git status` 不能混入无关改动。
|
|
2. 为每次正式发布保留 manifest、备份包路径、验证结果。
|
|
3. 涉及数据库、计费、用户空间、鉴权的改动,要额外保留一份业务验收清单。
|
|
4. 每个 AI 工具都必须先读本文件;自动化工具、Git hook、发布脚本以 `scripts/check-release-ready.sh` 的结果为准。
|