aboutsummaryrefslogtreecommitdiff
path: root/CONTRIBUTING_zh_CN.md
blob: 764bd9a5bfa2bcac602d2e1775fa3ab07f2e676f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# 贡献指南

非常感谢您为 `JustEnoughVCS` 命令行工具贡献代码!本指南旨在帮助您快速上手开发流程,并了解项目的代码规范。



## 流程

### 部署
1. 克隆核心库([VersionControl](https://github.com/JustEnoughVCS/VersionControl))以及您分叉的命令行库,按照如下文件格式放置

```
├─ CommandLine
│      Cargo.lock
│      Cargo.toml
└─ VersionControl
       Cargo.lock
       Cargo.toml
```

2. 将核心库切换到 `dev` 分支
2. 在核心库目录下,根据您的操作系统执行 `setup.sh` (Linux/macOS) 或 `setup.ps1` (Windows)。


```bash
cd VersionControl
./setup.sh
# 或
.\setup.ps1
```



### 开发

1.`dev` 分支创建新的功能分支,命名格式为 `feat/xxxx``fix/xxxx``doc/xxxx`
1.  编写您的代码、修复、或文档。



#### 相关文章

- [命令开发指南](./src/cmds/README_zh_CN.md)
- [文档翻译或贡献指南](./resources/CONTRIBUTE_HELPDOC_zh_CN.md)
- [本地化翻译指南](./resources/CONTRIBUTE_LOCALES_zh_CN.md)



### 构建&测试

使用 `scripts/dev/dev_deploy.sh` (或 `.ps1`) 进行测试构建。构建产物位于 `.temp/deploy/` 目录。

- **Windows**: 将 `.temp/deploy/jv_cli.ps1` 添加到您的 PowerShell `$PROFILE` 中。

```
# ...
  
. C:\...\JustEnoughVCS\CommandLine\.temp\deploy\jv_cli.ps1
  
# ...
```
<center>C:\Users\YourName\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1</center>

- **Linux/macOS**: 在 `.zshrc``.bashrc` 中添加 `source` 命令指向 `.temp/deploy/jv_cli.sh````
# ...

sources ~/.../JustEnoughVCS/CommandLine/.temp/deploy/jv_cli.sh

# ...
```
<center>/home/your_name/.bashrc | /home/your_name/.zshrc</center>

> [!TIP]
>
> 如需更方便地调试,
>
> 可运行 `scripts/make_lnk.ps1` 或 `scripts/make_lnk.sh` 来创建快捷方式或符号链接
>
> *相关文件已被 `.gitignore` 忽略*



### 提交
-   在推送代码前,请务必执行 `scripts/dev/deploy.sh` 进行一次正式的本地部署,以检查潜在问题
-   创建 Pull Request (PR) 时,请将目标分支设置为命令行仓库的 `dev`**提交至 `main` 或 `deploy/` 分支的 PR 将不予处理**



### 注意事项
-   **Rust 版本**: 推荐使用 `rustc 1.92.0 (ded5c06cf 2025-12-08) (stable)`
-   **文件大小**: **严禁** 向仓库提交超过 1MB 的二进制文件,如有必要,请先在 [Issue](https://github.com/JustEnoughVCS/CommandLine/issues) 中讨论
-   **核心库修改**: 如需修改核心库,请参考 [VersionControl](https://github.com/JustEnoughVCS/VersionControl) 仓库中的 `CONTRIBUTING.md` 文档



### 其他开发约定
- **工具函数**: 可复用的功能应置于 `utils/` 目录下(例如 `utils/feat.rs`),测试代码应直接写在对应的功能文件内
- **特殊文件**: 以 `_` 下划线开头的 `.rs` 文件已被 `.gitignore` 规则排除,不会被 Git 追踪
- **文件移动**: 如需移动文件,请务必使用 `git mv` 命令或确保文件已被 Git 追踪。在提交信息中应说明移动原因
- **前后端职责**: 前端(命令行界面)应保持轻量,主要负责数据收集与展示。任何需要修改工作区数据的操作,都必须调用核心库提供的接口



### 关于现有代码
请注意,上述规范是在项目趋于稳定后制定的。现有代码中可能存在尚未遵循这些规则的部分。如果您发现了此类情况,我们非常欢迎并感谢您提交修正。



# 最后
感谢您耐心阅读至此!期待您的贡献,并欢迎随时在项目讨论区与我们交流。

再次衷心感谢您对 JustEnoughVCS 的支持!