记一次给Nacos提交Pull Request的经历

Nacos集成了服务注册发现以及配置中心两个功能,对我来说很方便,虽然目前各方面可能做的不是很好,但对我来说已经足够了。在最近的一个版本中上线了权限模块,我跟着版本升级体验了一下, 发现使用错误的用户名/密码登录会造成登录响应结果的序列化异常。

问题排查

对登录结果序列化失败的原因是因为响应头中包含了Null Key,而同时他们所使用的自封装的Jackson工具类没有配置对Null Key的处理。

提交issue

发现问题之后首先是在github上给他们提交了一个issue,因为是第一次在github上给开源项目提交issue,所以在提交之前仔细阅读了一下相关文档。
这一步很简单,提交issue的时候会有模板,按照模板填内容就行了,需要描述清楚,如果能够直接指出调用栈哪一步出的什么问题就最好,同时给出一个解决办法那就更完美了。

反馈

提交的issue很快就有了反馈,并被标记成了一个bug。可以看出nacos的维护者还是很积极的。

提交PR

这一步如果是第一次做的话还是比较麻烦的。

  1. 将Nacos源码仓库Fork到自己的仓库中
  2. 拉取这个Fork过来的源码到本地,本地创建分支。例如你要修复一个编号叫做1234的issue,那么分支名就叫develop-issue#1234
  3. 代码风格,提交的代码需要注意格式不要把人家的弄乱了。他们有个配置文件在源码目录的style/nacos-code-style-for-idea.xml。如果用的idea,把这个文件导入就行,具体操作可自行搜索。
  4. 提交到仓库,修改并验证完成之后提交代码到自己的仓库。
  5. 这个时候在github的这个fork过来的仓库中会看到一个 Compare && Pull Request按钮,点击之后在页面中填写 fix:#1234就能够指向被修复的那个issue了。

Q.E.D.