m2pool_docs/document.md

96 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📦 代码与版本管理规范
## 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进行结构升级控制。
---