🎉 首先,感谢你要为 SCU Maker 做出贡献!
SCU Maker 致力于通过开源精神推动校园创客文化。无论你是修复了一个 Typro、添加了新功能,还是完善了文档,我们都非常欢迎。
为了让协作更加高效,请在提交代码前花几分钟阅读以下指南。
请保持友善、包容和专业。我们在交流中互帮互助,尊重不同的观点。严禁任何形式的骚扰或歧视。
在提交 Issue 之前:
- 先搜索:请检查 Issue 列表,确保没有重复的 Issue。
- 使用模板:请使用我们要提供的 Issue 模板(Bug 报告或功能建议)。
- 清晰描述:
- 如果是 Bug,请提供复现步骤、环境信息(OS, 语言版本等)和报错截图。
- 如果是 Feature,请描述背景、动机以及预期的效果。
所有的代码变更都必须通过 PR 合并。
- Fork 仓库:将本仓库 Fork 到你的个人账号下。
- 创建分支:在你的仓库中创建新的分支(命名规范见下文)。
- 提交修改:进行代码开发,并确保代码能跑通,如果有测试用例,请确保通过测试。
- 提交 PR:
- 将 PR 提交到
main(或dev) 分支。具体情况请各仓库Owner注明。 - 填写 PR 模板,关联相关的 Issue (例如:
Closes #123)。
- 将 PR 提交到
- Code Review:等待维护者(Maintainers)的 Review。如果此时有人提出修改建议,请在原分支继续 commit,PR 会自动更新。
请勿直接在 main 分支上开发。分支命名请遵循 类型/描述 的格式,全部小写,使用连字符分隔。
- 功能开发:
feat/add-login-module - Bug 修复:
fix/memory-leak-issue - 文档修改:
docs/update-readme - 重构:
refactor/optimize-database
我们遵循 Conventional Commits 规范。格式如下:
<type>(<scope>): <subject>
Type 列表:
feat: 新功能fix: 修复 Bugdocs: 文档变更style: 代码格式调整(不影响逻辑,如空格、分号)refactor: 代码重构(既不修复错误也不添加功能)perf: 性能优化test: 添加或修改测试chore: 构建过程或辅助工具的变动
示例:
feat(user): 添加用户注册接口fix(ui): 修复首页按钮对齐问题docs: 更新安装说明文档
为了保持代码库整洁,原则上请遵守以下原则:
- 语言规范:
- Python: 遵循 PEP 8 规范。建议使用
black或flake8格式化。 - C/C++: 推荐 Google C++ Style,或遵循项目根目录下的
.clang-format。 - JavaScript/TS: 遵循 StandardJS 或 Airbnb 规范。
- Python: 遵循 PEP 8 规范。建议使用
- 注释:关键逻辑必须添加注释。对外接口必须编写文档注释(Docstring)。
- 命名:变量名应具有描述性,避免使用
a,b,tmp等无意义命名。
- 推荐:
snake_case(如data_processor.py) 或kebab-case(如style-guide.md)。 - 避免:
数据处理.py,My File.cpp。
一个较好的项目结构应如下所示:
project-name/
├── src/ # 源代码
│ ├── main.cc
│ ├── main.py
│ └── utils/
├── docs/ # 文档 (设计文档, API说明)
│ ├── images/ # 文档图片
│ └── user_guide.md
├── tests/ # 测试代码
├── examples/ # 示例代码 (Demo)
├── .gitignore # Git 忽略文件
├── LICENSE # 开源协议 (MIT/GPL等)
├── README.md # 项目主页介绍
└── pyproject.toml # 依赖说明
如果你对以上流程感到陌生,或者想进一步提升代码协作能力,我们强烈推荐阅读以下资料:
- Learn Git Branching: 一个像游戏一样的交互式 Git 学习网站,通关后你将不再害怕合并冲突。
- Pro Git (中文版): 权威的 Git 参考书,遇到不懂的命令可以在这里查阅。
- GitHub Flow: 理解为什么我们要用分支、PR 以及 Code Review。
- Python: PEP 8 风格指南 | Google Python Style Guide
- C++: Google C++ Style Guide
- JavaScript: Airbnb JavaScript Style Guide
- Commit 信息: How to Write a Git Commit Message (经典必读)
- Markdown 指南: GitHub 官方的 Markdown 语法速查表。
感谢你的贡献,让我们一起创造精彩!🚀