From 570b972535747751c9ec0acf676fa6dcab7adc43 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 24 Jan 2026 10:31:31 +0800 Subject: Rename contribution files to standard CONTRIBUTING naming --- CONTRIBUTING_zh_CN.md | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 CONTRIBUTING_zh_CN.md (limited to 'CONTRIBUTING_zh_CN.md') diff --git a/CONTRIBUTING_zh_CN.md b/CONTRIBUTING_zh_CN.md new file mode 100644 index 0000000..480cf6c --- /dev/null +++ b/CONTRIBUTING_zh_CN.md @@ -0,0 +1,141 @@ +# 贡献指南 + +欢迎您愿意为 JustEnoughVCS 命令行工具贡献代码!本指南旨在帮助您快速上手开发流程,并了解项目的代码规范。请先阅读以下内容,以确保您的贡献能够顺利被接受。 + + + +## 本地开发流程 + +### 环境准备 +1. 克隆核心库([VersionControl](https://github.com/JustEnoughVCS/VersionControl))以及您分叉的命令行库,按照如下文件格式放置 + +``` +├─ CommandLine +│ Cargo.lock +│ Cargo.toml +└─ VersionControl + Cargo.lock + Cargo.toml +``` + +2. 在核心库目录下,根据您的操作系统执行 `setup.sh` (Linux/macOS) 或 `setup.ps1` (Windows)。 + + +```bash +cd VersionControl +./setup.sh +# 或 +.\setup.ps1 +``` + + + +### 开发流程 + +1. 从 `dev` 分支创建新的功能分支,命名格式为 `feat/xxxx`。 +2. 建议将原始仓库添加为远程上游仓库,以便定期拉取更新: + ```bash + git remote add upstream https://github.com/JustEnoughVCS/CommandLine + git pull upstream dev + ``` + + + +### 构建与测试 + +使用 `scripts/dev/dev_deploy.sh` (或 `.ps1`) 进行测试构建。构建产物位于 `.temp/deploy/` 目录。 + +- **Windows**: 将 `.temp/deploy/jv_cli.ps1` 添加到您的 PowerShell `$PROFILE` 中。 + +``` +# ... + +. C:\...\JustEnoughVCS\CommandLine\.temp\deploy\jv_cli.ps1 + +# ... +``` +
C:\Users\YourName\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
+ +- **Linux/macOS**: 在 `.zshrc` 或 `.bashrc` 中添加 `source` 命令指向 `.temp/deploy/jv_cli.sh`。 + +``` +# ... + +sources ~/.../JustEnoughVCS/CommandLine/.temp/deploy/jv_cli.sh + +# ... +``` +
/home/your_name/.bashrc | /home/your_name/.zshrc
+ +> [!TIP] +> +> 如需更方便地调试, +> +> 可运行 `scripts/make_lnk.ps1` 或 `scripts/make_lnk.sh` 来创建快捷方式或符号链接 +> +> *相关文件已被 `.gitignore` 忽略* + + + +### 提交与合并 +- 在推送代码前,请务必执行 `scripts/dev/deploy.sh` 进行一次正式的本地部署,以检查潜在问题 +- 创建 Pull Request (PR) 时,请将目标分支设置为命令行仓库的 `github_action/deploy`。**提交至 `main` 或 `dev` 分支的 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) 仓库中的 `CONTRIBUTE.md` 文档 + + + +## 开发规范 + +### 代码结构 + +一个完整的命令由以下几个部分组成,请按模块组织: + +| 模块 | 路径 | 说明 | +|------|------|------| +| **命令定义** | `src/cmds/` | 命令的主逻辑实现。 | +| **参数定义** | `src/args/` | 使用 `clap` 定义命令行输入。 | +| **输入数据** | `src/inputs/` | 命令运行阶段的用户输入数据。 | +| **收集数据** | `src/collects/` | 命令运行阶段从本地收集的数据。 | +| **输出数据** | `src/outputs/` | 命令的输出数据。 | +| **渲染器** | `src/renderers/` | 数据的默认呈现方式。 | + + + +### 命名规范 + +- **文件命名**: 请遵循 `src/cmds/status.rs` 的格式,即使用命令名称作为文件名 +- **多级子命令**: 在 `cmds` 目录下,使用 `sub_subsub.rs` 格式命名文件(例如:`sheet_drop.rs`) +- **结构体命名**: + - 命令结构体: `JV{Subcommand}{Subsubcommand}Command` (例如:`JVSheetDropCommand`) + - 其他组件结构体遵循相同模式: + - `JV{XXX}Argument` + - `JV{XXX}Input` + - `JV{XXX}Output` + - `JV{XXX}Collect` + - `JV{XXX}Renderer` + + + +### 其他开发约定 +- **工具函数**: 可复用的功能应置于 `src/utils/` 目录下(例如 `src/utils/feat.rs`),测试代码应直接写在对应的功能文件内 +- **特殊文件**: 以 `_` 下划线开头的 `.rs` 文件已被 `.gitignore` 规则排除,不会被 Git 追踪 +- **文件移动**: 如需移动文件,请务必使用 `git mv` 命令或确保文件已被 Git 追踪。在提交信息中应说明移动原因 +- **前后端职责**: 前端(命令行界面)应保持轻量,主要负责数据收集与展示。任何需要修改工作区数据的操作,都必须调用核心库提供的接口 + + + +### 关于现有代码 +请注意,上述规范是在项目趋于稳定后制定的。现有代码中可能存在尚未遵循这些规则的部分。如果您发现了此类情况,我们非常欢迎并感谢您提交修正。 + + + +# 最后 +感谢您耐心阅读至此!期待您的贡献,并欢迎随时在项目讨论区与我们交流。 + +再次衷心感谢您对 JustEnoughVCS 的支持! -- cgit