欢迎来到 SingerOS!很高兴你愿意为我们的企业数字员工操作系统贡献力量。本指南将帮助你快速开始参与项目。
参与本项目即表示你同意遵守行为准则。我们承诺共同营造开放、友好的协作环境。
我们欢迎多种形式的贡献:
- 报告缺陷
- 提出新功能建议
- 对现有功能提供反馈
- 修复缺陷
- 实现新功能
- 完善文档
- 编写测试
- 更新 README 文件
- 编写指南和教程
- 改进 API 文档
访问 SingerOS GitHub 仓库 并点击右上角的 "Fork" 按钮,创建你自己的派生仓库。
git clone https://github.com/insmtx/SingerOS.git
cd SingerOSgit checkout -b feat/your-feature-name分支命名规范:
feat/- 新功能fix/- 缺陷修复docs/- 文档更新refactor/- 代码重构test/- 测试相关
按照代码规范进行开发。
# 运行全部测试
make test
# 运行带覆盖率的测试
make test-covergit add .
git commit -m "feat(scope): your changes"
git push origin feat/your-feature-name- 访问 SingerOS 仓库
- 点击 "Pull requests" 标签
- 点击 "New pull request"
- 选择 "Compare across forks"
- 选择你的派生仓库和功能分支
- 填写 PR 标题和描述
- 提交 PR
访问 Issues 提交缺陷报告,请包含:
- 详细描述问题现象
- 提供复现步骤
- 说明系统或环境信息(Go 版本、操作系统等)
- 附上相关日志或截图
访问 Issues 提出新功能建议,请说明:
- 功能描述 - 你想要实现什么
- 使用场景 - 为什么需要这个功能
- 预期行为 - 功能应该如何工作
- 替代方案 - 是否考虑过其他解决方案
- 遵循 Go 语言最佳实践
- 使用清晰且具描述性的变量名和函数名
- 保持统一格式(使用
gofmt) - 为导出函数添加注释
- 为新增功能编写单元测试
- 使用约定式提交格式:
<type>(<scope>): <subject> - Type 类型包括但不限于:
feat: 新功能(feature)fix: 修正缺陷(fix)docs: 文档(documentation)style: 代码格式调整refactor: 重写(refactor)test: 测试相关chore: 构建过程或辅助工具变动
- 适当情况下,在主体部分详细描述变更内容,包含技术实现和业务说明
- 文档保持清晰、简洁
- 术语使用保持一致
- 在合适处补充示例
提交缺陷报告时,请访问 Issues 并尽量包含:
- 详细描述问题现象
- 提供复现步骤
- 说明系统或环境信息
- 附上相关日志或截图
- 在构建场景下,确保安装或构建依赖不会残留在最终镜像层中
- 若接口有变更,请同步更新 README.md
- 如果适用,请在示例文件和 README.md 中更新版本号
- 获得至少一位开发者审批后再合并 Pull Request
- 我的代码遵循项目代码规范
- 我已对代码进行自检
- 我已为难以理解的代码添加必要注释
- 我已同步更新相关文档
- 我的改动未引入新的警告
- 我已添加测试来验证修复或新功能有效
通过提交贡献,你同意你的代码将按 GNU General Public License v3.0 进行许可。
- GitHub Issues: https://github.com/insmtx/SingerOS/issues
- GitHub Discussions: https://github.com/insmtx/SingerOS/discussions
感谢你为 SingerOS 做出贡献! 🐶