161 lines
3.9 KiB
Markdown
161 lines
3.9 KiB
Markdown
# 如何为项目做贡献
|
||
|
||
Wiki 页面:
|
||
[开发指南](https://github.com/PCL-Community/PCL2-CE/wiki/开发指南)
|
||
[技术规范](https://github.com/PCL-Community/PCL2-CE/wiki/技术规范)
|
||
|
||
<details>
|
||
|
||
<summary>原 CONTRIBUTING.md 内容</summary>
|
||
|
||
## 开始之前
|
||
|
||
查看 [Issues](https://github.com/PCL-Community/PCL2-CE/issues) 寻找可以参与的任务,或创建新 Issue 讨论您的想法。
|
||
|
||
## 贡献流程
|
||
|
||
### 报告问题
|
||
|
||
1. 在提交 Issue 前,请先搜索是否已有相关 Issue
|
||
2. 使用提供的 Issue 模板
|
||
3. 包含以下信息:
|
||
- 清晰的问题描述
|
||
- 复现步骤(包括环境信息)
|
||
- 预期与实际行为对比
|
||
- 相关日志/截图(如有)
|
||
|
||
### 提交代码
|
||
|
||
1. Fork 仓库并克隆到本地
|
||
|
||
```bash
|
||
git clone https://github.com/你的用户名/项目名称.git
|
||
```
|
||
|
||
2. 创建你的分支
|
||
|
||
```bash
|
||
git checkout -b feat/your-feat-name
|
||
# 或
|
||
git checkout -b fix/issue-number-desc
|
||
```
|
||
|
||
3. 遵循项目代码风格进行编写
|
||
4. 提交更改,使用 Angular 规范提交信息
|
||
|
||
```bash
|
||
git commit -m "<type>(scope): <subject>"
|
||
```
|
||
|
||
5. 推送分支到你的 Fork
|
||
|
||
```bash
|
||
git push origin your-branch
|
||
```
|
||
|
||
6. 创建 Pull Request
|
||
- 指向上游仓库的 `dev` 分支
|
||
- 详细填写 PR 信息
|
||
- 关联 Issue(如有)
|
||
|
||
## 开发规范
|
||
|
||
### 测试要求
|
||
|
||
- 提交前请在本地编译通过确保无误后提交
|
||
|
||
### Angular 规范
|
||
|
||
基本格式如下
|
||
|
||
```commit message
|
||
<type>(scope?): <subject>
|
||
|
||
<body>
|
||
|
||
<footer>
|
||
```
|
||
|
||
每次提交**必须包含页眉内容**,可以选用正文(`body`)和页脚(`footer`)
|
||
|
||
每次提交的信息不超过 `100` 个字符
|
||
|
||
#### 页眉(`header`)
|
||
|
||
页眉需包含提交类型(`type`)、作用域(`scope`,可选)和主题(`subject`)
|
||
|
||
##### 提交类型(`type`)
|
||
|
||
提交类型需指定为下面其中一个:
|
||
|
||
1. `build`:对构建系统或者外部依赖项进行修改
|
||
2. `chore`: 用于对非业务性代码进行修改,例如修改构建流程或者工具配置等
|
||
3. `ci`:对 CI 配置文件或脚本进行修改
|
||
4. `docs`:对文档进行修改
|
||
5. `feat`:增加新的特性
|
||
6. `fix`:修复 bug
|
||
7. `pref`:提高性能的代码更改
|
||
8. `refactor`:既不修复 bug 也不是添加特性的代码重构
|
||
9. `style`:不影响代码含义的修改,比如空格、格式化、缺失的分号等
|
||
10. `test`:增加缺失的测试或者修正已存在的测试
|
||
|
||
##### 作用域(`scope`)
|
||
|
||
范围可以是任何指定提交更改位置的内容
|
||
|
||
##### 主题(`subject`)
|
||
|
||
主题包括了对本次修改的简洁描述,有以下准则
|
||
|
||
1. 使用命令式与现在时态:`改变` 而不是 `已改变`,也不是 `改变了`
|
||
2. 不要大写首字母(若使用英文)
|
||
3. 不要在末尾添加句号
|
||
|
||
#### 正文(`body`)
|
||
|
||
同主题,使用命令式与现在时态
|
||
|
||
应包含修改的动机以及和之前行为的对比
|
||
|
||
#### 页脚(`footer`)
|
||
|
||
##### Breaking Changes
|
||
|
||
破坏性修改指的是本次提交使用了不兼容之前版本的 API 或者环境变量
|
||
|
||
所有不兼容修改都必须在页脚中作为破坏性修改提到,以 `BREAKING CHANGE:` 开头,后跟一个空格或者换行符,其余的信息就是对此次修改的描述、理由和注释
|
||
|
||
##### 引用完成的 Issue
|
||
|
||
如果本次提交目的是完成 Issue 的话,需在页脚引用该 Issue
|
||
|
||
以关键字 `Closes` 开头,如
|
||
|
||
```footer
|
||
Closes #1145
|
||
```
|
||
|
||
修改了多个 bug 以半角逗号和空格隔开
|
||
|
||
```footer
|
||
Closes #114, #514, #1919
|
||
```
|
||
|
||
#### 回滚(`revert`)
|
||
|
||
若此次提交包含回滚(`revert`)操作,那么页眉需以 `revert:` 开头,同时在正文中添加 `本次提交回滚到 commit <hash>`,其中 `<hash>` 值表示被回滚前的提交
|
||
|
||
```commit message
|
||
revert:<type>(<scope>): <subject>
|
||
|
||
本次提交回滚到 commit <hash>
|
||
<body>
|
||
|
||
<footer>
|
||
```
|
||
|
||
## 提交上游
|
||
|
||
若你要将他人在 CE 中实现的功能或修复提交到上游,请用 Co-authored 来指明原始贡献者
|
||
|
||
</details> |