96 lines
2.8 KiB
Markdown
96 lines
2.8 KiB
Markdown
# 📦 代码与版本管理规范
|
||
|
||
## 1. 版本一致性要求
|
||
|
||
- 所有模块必须采用统一的版本依赖(如 go.mod、package.json 等)。
|
||
- 版本号需遵循 [语义化版本规范 (SemVer)](https://semver.org/lang/zh-CN/),如:`v1.0.0`、`v1.1.0-beta`。
|
||
- 不同模块版本需保持兼容,不允许出现版本冲突。
|
||
|
||
---
|
||
|
||
## 2. 需求文档与提交代码对齐
|
||
|
||
- 提交代码必须严格对应当前版本的需求文档。
|
||
- 禁止提交未在需求文档中定义的功能代码或逻辑。
|
||
- 建议每次提交记录中引用需求编号或链接。
|
||
- 提交时标注好本次提交的作用,例如:
|
||
- update表示该提交为更新,非正式发布,不可用于版本回滚。
|
||
- release表示正式发布,可用于版本回滚。
|
||
- fix表示修复bug,不可用于版本回滚。
|
||
---
|
||
|
||
## 3. 版本发布要求
|
||
|
||
- 发布版本需提供对应测试报告(功能测试、回归测试、异常测试)。
|
||
- 仅在测试报告审核通过后方可发布版本。
|
||
- 所有发布记录需归档并记录变更日志(详见第 6 节)。
|
||
- 版本发布即为稳定版本,禁止修改其代码。
|
||
|
||
---
|
||
|
||
## 4. 环境搭建与部署要求
|
||
|
||
- ✅ 开发环境与测试环境由开发/测试人员自行搭建;
|
||
- 🚫 生产环境搭建需提供《部署说明文档》,通过审核后方可执行;
|
||
- 建议本地化部署测试生产模拟环境;
|
||
- 示例目录结构:
|
||
```
|
||
/env
|
||
├── dev.env
|
||
├── test.env
|
||
└── prod.env
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 环境隔离规范
|
||
|
||
- 所有代码、数据库及配置必须区分开发、测试、生产环境;
|
||
- 严禁不同环境代码或数据交叉使用;
|
||
- 推荐通过 `.env` 文件或配置中心隔离不同环境配置项。
|
||
|
||
---
|
||
|
||
## 6. 上线与版本基线管理
|
||
|
||
- 各模块首次上线作为版本基线(如 `v1.0.0`);
|
||
- 多模块协作时需同步约定接口及数据结构;
|
||
- 使用 `CHANGELOG.md` 文件记录版本更新内容。
|
||
|
||
---
|
||
|
||
## 7. README 规范(需包含以下内容)
|
||
|
||
- ✅ 编译命令(示例):
|
||
```bash
|
||
go build -o ./bin/app main.go
|
||
```
|
||
- ✅ 启动命令:
|
||
```bash
|
||
./bin/app --config ./configs/config.yaml
|
||
```
|
||
- ✅ 打包说明(如 Dockerfile、压缩包结构等);
|
||
- ✅ 配置文件结构说明(其他如.conf、.ini、.json、.yaml等配置文件按照规范命名,并说明配置项含义和用途):
|
||
```yaml
|
||
server:
|
||
port: 8080
|
||
database:
|
||
host: localhost
|
||
name: project_db
|
||
```
|
||
- ✅ 各项配置说明或链接到配置文档。
|
||
|
||
---
|
||
|
||
## 8. 数据结构与初始化要求
|
||
|
||
- 所有数据库表结构必须提供初始化脚本:
|
||
```
|
||
/db
|
||
├── init.sql
|
||
└── migration/
|
||
```
|
||
- 禁止手动创建、删除、修改数据表和表结构,尽量避免依赖人工操作数据库;
|
||
- 推荐使用自动迁移工具(如 Flyway、Goose、gormigrate)进行结构升级控制。
|
||
|
||
--- |