贡献指南
感谢您对 TGOSKits 的关注!我们欢迎各种形式的贡献,包括代码、文档、测试、设计、仓库治理和社区建设。本指南将帮助您了解如何参与当前工作区的协作。
贡献方式
报告问题
如果您希望通过反馈 bug 或问题参与贡献:
- 请优先阅读获取帮助页面中的“问题反馈”部分,按照说明准备复现信息
- 然后在 GitHub Issues 中创建 Issue
这样可以减少重复提问,也便于维护者更高效地定位和解决问题。
功能建议
如果您有新功能的想法并希望推动其实现:
- 优先在 GitHub Issues 中说明使用场景、预期收益和现有文档背景
- 先与社区共同收敛需求,再根据共识选择是否发起实现工作
关于提问与一般使用问题的支持方式,请参考获取帮助。
代码贡献
我们欢迎代码贡献!以下是贡献代码的流程:
开发环境设置
- Fork TGOSKits 仓库
- 克隆您的 fork:
git clone https://github.com/<your-github-name>/tgoskits.gitcd tgoskits
- 添加上游仓库:
git remote add upstream https://github.com/rcore-os/tgoskits.git
- 创建新的分支:
git checkout -b feature/your-feature-name
代码规范
- 遵循 Rust 官方代码风格
- 使用
cargo fmt格式化代码 - 使用
cargo xtask clippy检查代码质量 - 提交前建议额外运 行
cargo xtask sync-lint,检查可疑的原子同步内存序用法;如果被该检查阻止,可参考同步内存序检查 - 对系统构建、运行和测试,优先使用
cargo xtask提供的统一入口 - 为公共 API 编写文档注释
- 优先复用或增强已有完整功能测试,缺少独立行为证明时才新增;规则见仓库 test-quality
提交 Pull Request
- 确保您的代码与主分支保持最新:
git fetch upstreamgit rebase upstream/main
- 运行测试确保所有测试通过:
cargo xtask testcargo xtask clippy
- 提交您的更改:
git commit -m "feat: add your feature description"
- 推送到您的 fork:
git push origin feature/your-feature-name
- 在 GitHub 上创建 Pull Request
文档贡献
良好的文档对项目至关重要:
- 修正错误或不清楚的文档
- 添加使用示例和教程
- 翻译文档到其他语言
- 改进文档结构和导航
测试贡献
测试贡献以最少且充分的用例 验证完整通用功能,按仓库 test-quality 选择层级与去重;不以测试数量或覆盖率增长作为目标。
- 算法、数据结构和业务逻辑的单元测试放在对应源码末尾的
#[cfg(test)] mod tests。 {crate}/tests/的集成测试只通过公开 API 验证能力,不用#[path]或其他源码包含方式引入生产实现,也不为测试扩大公开接口。- 删除独立参数回读、默认值复述和固定配置清单检查;有实际后果的错误输入并入所属功能验证。
- 修复错误优先复用或增强已有测试,保留同一测试在错误实现上失败、修复后通过的证据;新增配置、取值或历史问题不自动新增测试。
测试应验证真实实现及可观察结果。系统调用、调度和硬件行为通过相应项目测试套件取得真实运行证据,发现与失败传播要求继续遵循 AGENTS.md。
开发指南
代码审查
所有代码贡献都需要经过代码审查:
- 维护者会审查您的 PR
- 您可能需要根据反馈进行修改
- 保持友好和专业的交流
发布流程
我们遵循语义化版本控制:
- 主版本号:不兼容的 API 修改
- 次版本号:向下兼容的功能性新增
- 修订号:向下兼容的问题修正
社区行为准则
我们致力于创建一个友好、安全和欢迎的环境:
- 尊重不同的观点和经验
- 使用友好和包容的语言
- 接受建设性批评
- 关注对社区最有利的事情
- 对其他社区成员表示同理心
获得认可
我们会在以下地方认可贡献者:
- 贡献者列表
- 发布说明中的致谢
- 项目 README 中的贡献者部分
- 特殊贡献的专门感谢
需要帮助?
如果您在贡献过程中需要帮助:
- 查看支持页面获取帮助渠道
- 在社区讨论中提问
- 参考相关文档和示例
感谢您考虑为 TGOSKits 做出贡献!您的参与对整个工作区的演进都非常重要。