首先要勇于迈开这一步,不用把这件事情想的很困难,即便是 spring 这种级别的项目,普通人也能够参与进来。java
有的人一上来就想着给开源项目贡献核心代码,这其实很是不现实,特别是 spring 这种级别的项目,代码须要严格要求按照官方要求来编写,而且须要编写全方位的测试用例。提交以后还要被 spring 官方层层严格审查,常常一、2个月都不必定能合并到主分支中。git
因此能够从最简单的地方入手,好比文档、注释、简单的逻辑错误等。这些地方不只容易入手,并且经过官方审核的概率也更大些,合并速度也更快。github
有的人可能又要说了,这算什么,这也算贡献。的确,这些都是些小事,但若是有1万我的作了这些小事,加起来会对该项目产生巨大的帮助。redis
另外这些小事能够帮你入门这个项目,为以后核心代码的提交打好基础。spring
虽然提倡给开源项目作贡献,但也没必须专门去研究某个开源项目,除非你特别想参与到该项目中。c#
像我,更多的是在工做中发现了问题,而后顺手解决一下,举手之劳嘛,人人为我,我为人人。工具
说了这么可能是但愿你们不要好高骛远,即便是很小的问题,遇到之后顺手解决一下,也是对开源事业的一种贡献。post
接下来,我会经过一个很是简单的案例来展现如何为 spring 项目贡献代码。测试
在我封装Redis 操做类的时候(参考基于 RedisTemplate 自定义 Redis 操做类),发现ui
spring-data-redis-2.1.11.RELEASE-sources/org/springframework/data/redis/core/ListOperations.java
下 leftPush() 方法与描述验证不符,并且给的redis的网址和命令也是错的
相似的状况还有 177行的 rightPush() 方法
刚开始和大部分人的想法同样,这种小事懒得去管,后来想了一下,可能有人会所以而产生误解,因而仍是尝试着去给官方修复一下,也算是为 spring 项目作点小小的贡献。
有人可能想说不就改个注释吗,这算什么贡献!对于这种人我只想说,就是由于有你这样的人,因此这个小小的错误才一直留到如今尚未修复!
整个过程主要分为5步
点击 fork 就会拷贝一份当前项目到你本身的仓库
去本身的仓库把项目下载下来
而后在本地修改好后,提交,push到你的远端。
spring 项目对缩减等代码格式有要求,参考 Spring 项目 贡献准则 准则里面提供了格式化的工具
注意,spring 项目使用制表符缩进而不是4个空格
Spring JIRA 是Spring 官方的错误跟踪器,对外开放,支持中文,注册也很简单,直接经过github受权。
建立好以后,在里面添加一个问题,尽可能填写详细点,例如
以前那个方法与描述不匹配的问题已经被解决了,无法演示。这里展现的是一个新的问题。(是的,我后来又发现有注释写错误了)
建立好后会自动生成票据,如图中的红框
把它拷贝下来以后会用到
获得 DATAREDIS-xxx 这个票据后,就能够 pull requests 了
检查你的代码,没问题就建立
最关键的一步来了,这里面提到的每一步都要仔细阅读,写的是 spring 对提交的格式和其余的一些要求
了解完条条框框后,开始正式提交
注意,红框中填写的内容要符合 spring 的要求
确认无误后提交
提交以后等待审核
若是你是第一此贡献代码,还会要求你签署一个协议。
你提交以后,会有人来处理,若是官方以为没有什么问题会合并你的提交,以下
完成合并以后,主分支代码也变成你修改后的样子,而后该项目的贡献者中也会有你的名字