感谢开源社区对 AgentScope-Java 项目的关注和支持,作为一个开源项目,我们热烈欢迎并鼓励来自社区的贡献。无论是修复错误、添加新功能、改进文档还是 分享想法,这些贡献都能帮助 AgentScope-Java 变得更好。
为了确保顺利协作并保持项目质量,请在贡献时遵循以下指南:
在开始贡献之前,请查看我们的开发路线图:
- 查看 Issue 页面
-
如果存在相关问题 并且标记为未分配或开放状态:
- 请在该问题下评论,表达您有兴趣参与该任务
- 这有助于协调开发工作,避免重复工作
-
如果不存在相关问题:
- 请创建一个新 issue 用以描述对应的更改或功能
- 我们的团队将及时进行回复并提供反馈
- 这有助于我们维护项目路线图并协调社区工作
-
AgentScope 遵循 Conventional Commits 规范。这使得提交历史更易读,并能够自动生成更新日志。
格式:
<type>(<scope>): <subject>
类型:
feat:新功能fix:错误修复docs:仅文档更改style:不影响代码含义的更改(空格、格式等)refactor:既不修复错误也不添加功能的代码更改perf:提高性能的代码更改ci:添加缺失的测试或更正现有测试chore:对构建过程或辅助工具和库的更改
示例:
feat(models): add support for Claude-3 model
fix(agent): resolve memory leak in ReActAgent
docs(readme): update installation instructions
refactor(formatter): simplify message formatting logic
ci(models): add unit tests for OpenAI integration在提交代码之前,请确保代码已使用 Spotless 正确格式化:
检查代码格式:
mvn spotless:check自动修复格式问题:
mvn spotless:apply提示:配置您的 IDE(IntelliJ IDEA / Eclipse)在保存时使用项目的代码风格自动格式化代码。
- 所有新功能都必须包含适当的单元测试
- 在提交 PR 之前确保现有测试通过
- 使用以下命令运行测试:
# 运行所有测试 mvn test # 运行特定测试类 mvn test -Dtest=YourTestClassName # 运行测试并生成覆盖率报告 mvn verify
- 为新功能更新相关文档
- 在适当的地方包含代码示例
- 如果更改影响面向用户的功能,请更新 README.md
我们欢迎各种类型的贡献!以下是寻找贡献方向的方法:
-
新贡献者:查看标记为 good first issue 的 issue,这些是熟悉代码库的绝佳起点。
-
寻找更多挑战:浏览标记为 help wanted 的 issue,这些是我们特别希望得到社区帮助的任务。
如果您有新功能、改进建议,或发现了尚未被跟踪的问题,请创建新的 issue 与社区和维护者讨论。
- 从小处着手:从小的、可管理的贡献开始
- 及早沟通:在实现主要功能之前进行讨论
- 编写测试:确保代码经过充分测试
- 添加代码注释:帮助他人理解贡献内容
- 遵循提交约定:使用约定式提交消息
- 保持尊重:遵守我们的行为准则
- 提出问题:如果不确定某事,请提问!
- 不要用大型 PR 让我们措手不及:大型的、意外的 PR 难以审查,并且可能与项目目标不一致。在进行重大更改之前,请务必先开启一个问题进行讨论
- 不要忽略 CI 失败:修复持续集成标记的任何问题
- 不要混合关注点:保持 PR 专注于单一功能的实现或修复
- 不要忘记更新测试:功能的更改应反映在测试中
- 不要破坏现有 API:在可能的情况下保持向后兼容性,或清楚地记录破坏性更改
- 不要添加不必要的依赖项:保持核心库轻量级
如果需要帮助或有疑问:
- 💬 开启一个 Discussion
- 🐛 通过 Issues 报告错误
- 📧 通过钉钉交流群或 Discord 联系开发团队(链接在 README.md 中)
感谢为 AgentScope-Java 做出贡献!🚀