|
1 | | -# 📖 GitHub 提交与贡献教程 |
| 1 | +# 📖 SecRandom 贡献指南 |
| 2 | + |
| 3 | +SecRandom 欢迎**任何人**向我们的仓库提交代码。您可以帮助我们做很多工作,包括但不限于: |
| 4 | + |
| 5 | +- 提交补丁来修复bug |
| 6 | +- 添加新功能 |
| 7 | +- 优化现有的功能 |
| 8 | +- 优化代码的性能 |
| 9 | +- 完善文档与翻译 |
| 10 | +- 更多...... |
| 11 | + |
| 12 | +通过阅读本指南,您将会了解为 SecRandom 贡献代码的各个流程。您还会了解使用 commit 信息进行二进制构建的方式。现在就开始吧! |
2 | 13 |
|
3 | 14 | ## 🚀 快速开始 |
4 | 15 |
|
5 | 16 | 在向 SecRandom 项目贡献代码之前,请确保您已完成以下准备工作: |
6 | 17 |
|
| 18 | +> [!NOTE] |
7 | 19 | > 除了使用命令行,您还可以使用 GitHub Desktop 或您 IDE 中的内置功能/插件进行操作。 |
8 | 20 |
|
9 | 21 | 1. **Fork 项目** |
10 | | - - 访问 [SecRandom GitHub 仓库](https://github.com/SECTL/SecRandom) |
11 | | - - 点击右上角的 "Fork" 按钮创建您自己的仓库副本 |
| 22 | + |
| 23 | + - 访问 [SecRandom GitHub 仓库](https://github.com/SECTL/SecRandom) |
| 24 | + - 点击右上角的 "Fork" 按钮创建您自己的仓库副本 |
12 | 25 |
|
13 | 26 | 2. **克隆仓库** |
14 | 27 |
|
15 | | - ```bash |
16 | | - git clone https://github.com/您的用户名/SecRandom.git |
17 | | - cd SecRandom |
18 | | - ``` |
| 28 | +> [!WARNING] |
| 29 | +> 确保在这一步之前,您已经将终端的工作目录切换到您想保存/修改 SecRandom 源代码的地方。 |
| 30 | + |
| 31 | + ```bash |
| 32 | + git clone https://github.com/您的用户名/SecRandom.git |
| 33 | + cd SecRandom |
| 34 | + ``` |
19 | 35 |
|
20 | 36 | 3. **添加上游仓库** |
21 | 37 |
|
22 | | - ```bash |
23 | | - git remote add upstream https://github.com/SECTL/SecRandom.git |
24 | | - ``` |
| 38 | + ```bash |
| 39 | + git remote add upstream https://github.com/SECTL/SecRandom.git |
| 40 | + ``` |
| 41 | + |
| 42 | +4. **安装虚拟环境** (可选) |
| 43 | + |
| 44 | +> [!TIP] |
| 45 | +> 若您不需要运行代码以测试效果,您可以跳过这个部分。 |
| 46 | + |
| 47 | + SecRandom 使用 `uv` 管理虚拟环境。您需要先获取它再执行以下命令。您可以在 [uv官方文档](https://docs.astral.sh/uv/getting-started/) 中获取关于 `uv` 的信息。 |
| 48 | + |
| 49 | + ```bash |
| 50 | + uv venv |
| 51 | + uv sync |
| 52 | + ``` |
| 53 | + |
| 54 | + 随后您可以这样运行代码(在虚拟环境中): |
| 55 | + |
| 56 | + ```bash |
| 57 | + uv run ./main.py |
| 58 | + ``` |
25 | 59 |
|
26 | 60 | ## 📤 提交您的贡献 |
27 | 61 |
|
28 | | -1. **创建功能分支** |
| 62 | +1. **创建分支** |
29 | 63 |
|
30 | | - ```bash |
31 | | - git checkout -b feature/您的功能名称 |
32 | | - ``` |
| 64 | + ```bash |
| 65 | + git checkout -b feature/功能名称 |
| 66 | + ``` |
33 | 67 |
|
34 | 68 | 2. **进行修改** |
35 | | - - 编写您的代码 |
36 | | - - 添加必要的注释(请使用中文) |
37 | | - - 确保遵循项目代码规范 |
| 69 | + |
| 70 | + - 编写您的代码 |
| 71 | + - 添加必要的注释(请使用中文) |
| 72 | + - 确保遵循项目代码规范 |
38 | 73 |
|
39 | 74 | 3. **提交更改** |
40 | 75 |
|
41 | | - ```bash |
42 | | - git add . |
43 | | - git commit -m "描述您的更改内容" |
44 | | - ``` |
| 76 | + ```bash |
| 77 | + git add . |
| 78 | + git commit -m "描述您的更改内容" |
| 79 | + ``` |
45 | 80 |
|
46 | 81 | 4. **同步上游更改** |
47 | 82 |
|
48 | | - ```bash |
49 | | - git fetch upstream |
50 | | - git rebase upstream/master |
51 | | - ``` |
| 83 | + ```bash |
| 84 | + git fetch upstream |
| 85 | + git rebase upstream/master |
| 86 | + ``` |
52 | 87 |
|
53 | | -5. **推送并创建 Pull Request** |
| 88 | +5. **推送并创建拉取请求 (Pull request, PR)** |
54 | 89 |
|
55 | | - ```bash |
56 | | - git push origin feature/您的功能名称 |
57 | | - ``` |
| 90 | + ```bash |
| 91 | + git push origin feature/您的功能名称 |
| 92 | + ``` |
58 | 93 |
|
59 | | - - 访问您的 GitHub 仓库 |
60 | | - - 点击 "Compare & pull request" 按钮 |
61 | | - - 填写 PR 描述并提交 |
| 94 | + - 访问您的 GitHub Fork 仓库 |
| 95 | + - 点击 "Compare & pull request" (比较/拉取请求) 按钮 |
| 96 | + - 填写 PR 描述并提交 |
62 | 97 |
|
63 | 98 | ## 📋 贡献指南 |
64 | 99 |
|
65 | 100 | ### 代码规范 |
66 | 101 |
|
67 | | -- 使用中文编写代码注释 |
68 | | -- 遵循项目现有的代码风格 |
69 | | -- 确保导入所有使用的 Qt 类,不要使用 `from spam import *` 导入。 |
70 | | -- 验证第三方 UI 组件是否存在 |
| 102 | +- 使用中文编写代码注释,别忘记撰写 Docstring |
| 103 | +- 遵循 PEP8 倡导的风格指南,若有意异议可以查看现有的代码 |
| 104 | +- 确保导入所有您已使用的类/函数/变量,不要使用 `from module import *` |
| 105 | +- 验证第三方 UI 组件与其他库中的类/函数/变量是否存在 |
71 | 106 |
|
72 | 107 | > [!TIP] |
73 | | -> 您可以使用 **PyRight**, **Ruff** 等工具检查代码是否符合规范。 |
| 108 | +> 您可以使用 **PyRight**, **Ruff** 等工具检查代码是否有缺陷/代码是否符合规范。 |
74 | 109 |
|
75 | | -### 提交信息规范 |
| 110 | +### 提交 (commit) 信息规范 |
76 | 111 |
|
77 | 112 | - 使用清晰、简洁的提交信息 |
78 | | -- 以动词开头(如:添加、修复、更新等) |
| 113 | +- 以 fix, feat 等约定俗成的单词开头 |
79 | 114 | - 避免过于简单的描述(如:"修复bug") |
80 | 115 |
|
81 | 116 | > [!TIP] |
82 | 117 | > 我们推荐使用[约定式提交](https://www.conventionalcommits.org/zh-hans/v1.0.0/)撰写提交信息。 |
83 | 118 |
|
84 | | -### Pull Request 要求 |
| 119 | +### PR 要求 |
85 | 120 |
|
86 | | -- PR 标题应简洁明了地描述更改内容 |
87 | | -- 提供详细的更改说明 |
| 121 | +- PR 标题应简洁明了地描述更改内容(若只有一个提交,也可以直接使用这个提交的标题) |
| 122 | +- 提供详细的更改说明,包括: |
| 123 | + - 新增/修改/删除的功能 |
| 124 | + - 新增/修改版本/删除的依赖库 和 更改 Python 版本 |
| 125 | + - 其他破坏性更改也请一并告知 |
88 | 126 | - 确保所有测试通过 |
| 127 | +- 确保您修改的代码至少在您的计算机上运行正常 |
89 | 128 | - 关联相关的 Issue(如有) |
| 129 | + |
| 130 | +### 最后一步...... |
| 131 | + |
| 132 | +当 SecRandom 的维护者审查了您的 PR,确保没有任何问题之后,就会将您的所贡献的代码合并到主分支。 |
| 133 | + |
| 134 | +现在我们 **恭喜您成为 SecRandom 贡献者的一员!** |
| 135 | + |
| 136 | +如果您的 PR 没有通过,也没有关系。请仔细阅读我们的维护者给出的建议并且继续努力,早有一日,您会成为 SecRandom 贡献者的一员。加油😃👍! |
| 137 | + |
| 138 | +## 📖 Actions 构建工作流 |
| 139 | + |
| 140 | +若您需要测试自动构建的二进制程序,您可以阅读以下文字来获取更多信息。 |
| 141 | + |
| 142 | +### 🚀 GitHub Actions 统一构建工作流使用指南 |
| 143 | + |
| 144 | +SecRandom 项目使用统一的 GitHub Actions 工作流进行构建和发布,配置文件位于 `.github/workflows/build-unified.yml`。该工作流支持多种触发方式和配置选项。 |
| 145 | + |
| 146 | +#### 通过提交消息触发特定构建 |
| 147 | + |
| 148 | +您可以通过在 git commit 消息中包含特定关键词来触发不同的构建行为: |
| 149 | + |
| 150 | +1. **触发打包构建** |
| 151 | + - 在 commit 消息中包含 `打包` 关键词 |
| 152 | + - 例如:`git commit -m "新增功能 打包"` |
| 153 | + |
| 154 | +2. **指定构建平台** |
| 155 | + - `win` - Windows 平台 |
| 156 | + - `linux` - Linux 平台 |
| 157 | + - `all` - 所有平台 |
| 158 | + - 例如:`git commit -m "修复bug 打包 linux"` |
| 159 | + |
| 160 | +3. **触发所有平台构建** |
| 161 | + - 创建符合版本号规范的 tag(格式:`v数字.数字.数字.数字`) |
| 162 | + - 例如:`git tag v1.2.3.4 && git push origin v1.2.3.4` |
| 163 | + |
| 164 | +#### 构建参数关键词说明 |
| 165 | + |
| 166 | +提交消息中可以包含以下关键词来控制构建行为: |
| 167 | + |
| 168 | +| 关键词 | 含义 | 示例 | |
| 169 | +|--------|------|------| |
| 170 | +| `打包` | 通用打包触发 | `git commit -m "新增功能 打包"` | |
| 171 | +| `win` | Windows 平台 | `git commit -m "修复UI 打包 win"` | |
| 172 | +| `linux` | Linux 平台 | `git commit -m "优化性能 打包 linux"` | |
| 173 | +| `all` | 所有平台 | `git commit -m "大更新 打包 all"` | |
| 174 | + |
| 175 | +**组合使用示例:** |
| 176 | + |
| 177 | +- `git commit -m "优化性能 打包 pi"` - 使用 PyInstaller 构建 Windows 平台 |
| 178 | +- `git commit -m "修复bug 打包 pi"` - 使用 PyInstaller 构建 Linux 平台 |
| 179 | + |
0 commit comments