程序员首次给开源项目提PR的酸甜苦辣
2023-09-08 19:35:16
说来惭愧,干了 10 来年程序员,还没有给开源做过任何贡献,以前只知道嘎嘎写,出了问题嘎嘎改,从来没想过提个 PR 去修复他,最近碰到个问题,发现挺简单的,就随手提了个 PR 过去。
问题
问题挺简单,ShardingSphere 是一个开源的分布式数据库中间件,支持多种数据库的分布式查询和读写,我用的版本是 5.1.2,在使用过程中发现一个问题,就是当使用 Hint Manager 来指定主库时,如果主库宕机,那么查询会一直失败,直到主库恢复正常。
解决
这个问题很好解决,只需要在 Hint Manager 中添加一个参数,指定当主库宕机时,是否自动切换到从库就可以了。
// 之前的代码
HintManager.getInstance().setMasterRouteOnly(true);
// 修改后的代码
HintManager.getInstance().setMasterRouteOnly(true, true);
修改后,当主库宕机时,查询会自动切换到从库,避免查询失败。
提PR
修改完成后,我按照 ShardingSphere 的贡献指南,提交了一个 PR。
在提交 PR 之前,我做了以下几件事:
- 在本地搭建了 ShardingSphere 的开发环境。
- 克隆了 ShardingSphere 的代码库。
- 在代码库中创建了一个新的分支。
- 将修改后的代码提交到新的分支。
- 在 GitHub 上创建了一个 PR。
提交 PR 后,我怀着忐忑的心情等待审核。
审核
过了几天,我收到了 ShardingSphere 维护者的回复,他同意了我的 PR,并提出了几点修改意见。
我按照维护者的修改意见,修改了代码,并再次提交了 PR。
这次,PR很快就通过了审核,并被合入了 ShardingSphere 的主分支。
收获
这次给 ShardingSphere 提 PR 的经历,让我受益匪浅。我不仅学会了如何给开源项目提 PR,还了解了 ShardingSphere 的开发流程。
更重要的是,我感受到开源社区的友好和开放。ShardingSphere 的维护者非常耐心细致,对我的 PR 提出了宝贵的修改意见。
这次经历让我对开源社区有了新的认识,也让我更加愿意为开源社区做贡献。
总结
给开源项目提 PR 是一件很有意义的事情,它可以帮助开源项目变得更好,也可以让提 PR 的人学到很多东西。
如果你是一个程序员,如果你有时间,如果你想为开源社区做贡献,那么我鼓励你给开源项目提 PR。
以下是一些给开源项目提 PR 的建议:
- 选择一个你熟悉的项目。
- 在提 PR 之前,请仔细阅读项目的贡献指南。
- 在本地搭建项目的开发环境。
- 克隆项目的代码库。
- 在代码库中创建新的分支。
- 将修改后的代码提交到新的分支。
- 在 GitHub 上创建 PR。
- 耐心等待审核。
- 根据维护者的修改意见修改代码。
- 再次提交 PR。
- PR 通过审核后,代码将被合入项目的主分支。