Lynxe 从开源建设以来,受到了很多社区同学的关注。社区的每一个 Issue ,每一个 PR,都是对整个项目的帮助,都在为建设更好用的 Lynxe 添砖加瓦。
我们真心地感谢为这个项目提出过 Issue 和 PR 的开发者。我们希望有更多社区的开发者加入进来,一起把项目做好。
在贡献代码之前,请您稍微花一些时间了解为 Lynxe 贡献代码的流程。
我们随时都欢迎任何贡献,无论是简单的错别字修正,BUG 修复还是增加新功能。请踊跃提出问题或发起 PR。我们同样重视文档以及与其它开源项目的整合,欢迎在这方面做出贡献。
如果是一个比较复杂的修改,建议先在 Issue 中添加一个 Feature 标识,并简单描述一下设计和修改点。
如果您是初次贡献,可以先从 good first issue 和 help wanted 中认领一个比较简单的任务。
在提交 Pull Request 之前,您需要签署我们的贡献者许可协议(CLA)。这是为了保护项目和所有贡献者的权益,避免潜在的版权问题。
如何签署 CLA:
- 当您首次提交 PR 时,CLA 机器人会自动检查您是否已签署 CLA
- 如果您尚未签署,机器人会在 PR 中留下评论,提示您签署
- 请仔细阅读 CLA 文档
- 在 PR 评论中回复以下文本来签署 CLA:
I have read the CLA Document and I hereby sign the CLA - 签署完成后,CLA 机器人会自动更新 PR 状态
注意事项:
- 每个贡献者只需签署一次 CLA
- 如果您代表公司或组织贡献代码,请确保您有权代表该组织签署 CLA
- 签署 CLA 后,您未来的所有贡献都将受此协议保护
- 点击 本项目 右上角的
Fork图标 将 spring-ai-alibaba/Lynxe fork 到自己的空间。 - 将自己账号下的 Lynxe 仓库 clone 到本地,例如我的账号是
yourname,那就是执行git clone https://github.com/yourname/Lynxe.git进行 clone 操作。
- 在自己的机器执行
git config --list,查看 git 的全局用户名和邮箱。 - 检查显示的 user.name 和 user.email 是不是与自己 github 的用户名和邮箱相匹配。
- 如果公司内部有自己的 gitlab 或者使用了其他商业化的 gitlab,则可能会出现不匹配的情况。这时候,你需要为 Lynxe 项目单独设置用户名和邮箱。
- 设置用户名和邮箱的方式请参考 github 官方文档,设置用户名,设置邮箱。
fork 出来的代码后,原仓库 main 分支可能出现了新的提交,这时候为了避免提交的 PR 和 main 中的提交出现冲突,需要及时 merge main 分支。
- 在你本机的 Lynxe 目录下,执行
git remote add upstream https://github.com/spring-ai-alibaba/Lynxe将原始仓库地址添加到 remote stream 中。 - 在你本机的 Lynxe 目录下,执行
git fetch upstream将 remote stream fetch 到本地。 - 在你本机的 Lynxe 目录下,执行
git checkout main切换到 main 分支。 - 在你本机的 Lynxe 目录下,执行
git rebase upstream/mainrebase 最新代码。
在正式开始之前请参考相关代码格式规范说明,提交代码前需要先配置好代码格式规范。
开发自己的功能,开发完毕后建议使用 mvn clean package 命令确保修改后的代码能在本地编译通过。执行该命令的同时还能自动格式化代码。然后再提交代码,提交代码之前请注意创建一个新的有关本特性的分支,用该分支进行代码提交。
本地开发完成后,强烈建议在提交 PR 之前执行项目 tools/make 提供的 make 命令进行本地持续集成(CI)检查,以确保代码符合项目的标准和规范。如果对于本地 CI 有任何疑问,可以在控制台输入 make help 了解具体信息。
为了减少一些不必要的代码风格问题,Lynxe 提供了本地 Checkstyle 检查功能。可以在项目根目录下执行 mvn checkstyle:check 命令来检查代码风格是否符合规范。
为了确保代码的整洁,请删除 Java 文件中未使用的导入。可以通过执行 mvn spotless:apply 命令来自动删除未使用的导入。
在编码完成之后,需要基于 pr 规范 .github/workflows/lint-pr-title.yml 对提交信息进行 format & check,确保提交信息符合规范。
Commit 规范: git commit -m "类型(模块): 空格 符合规范的提交信息"
例如:feat(docs): 更新贡献指南
常用类型:
feat: 新功能fix: 修复问题docs: 文档更新style: 代码格式调整refactor: 代码重构test: 测试相关chore: 构建/工具链相关
- 同样,提交 PR 前,需要 rebase main 分支的代码(如果您的目标分支不是 main 分支,则需要 rebase 对应目标分支),具体操作步骤请参考之前的章节。
- 如果出现冲突,需要先解决冲突。
提交 PR,根据 Pull request template 写明修改点和实现的功能,等待 code review 和合并。
PR 提交流程:
- Push 您的分支到您 fork 的仓库
- 在 GitHub 上创建 Pull Request
- 填写 PR 模板,清晰描述您的更改
- 等待 CLA 机器人检查,如未签署请按提示签署 CLA
- 等待 CI 检查通过
- 等待项目维护者进行 Code Review
- 根据反馈进行修改(如有需要)
- PR 合并后,您将成为 Lynxe Contributor!
感谢您为 Lynxe 做出贡献,让我们一起打造更好的开源项目!
请注意,本项目有行为准则,请在参与项目的所有互动中遵守它。
如果您在贡献过程中遇到任何问题,欢迎:
- 在相关 Issue 或 PR 中提问
- 查看项目文档和 FAQ
- 联系项目维护者
通过向本项目贡献代码,您同意您的贡献将按照项目的 LICENSE 进行许可。