在我做一些杂乱无章和文笔极差的叙述之前,我必须抛出自己的一个很主观的观点:
“开源松有一个相当好的机制,对于开源项目维护者和开源贡献者来说他是互利的。”
---- 以下是正文 -----
开源是侠客行为?
相信很多人接触到代码厨房应该是从一开始的hello flask社区,,那里聚集了很多刚刚开始接触web编程,接触flask的人群,当然也包括我自己。那会了解到 @greyli 也是flask的维护者,我当时觉得那是一件很酷的事情,开源工作者,没有什么回报,在网上给人解答问题,维护大家用的框架。 这更像是一种武侠小说里面的侠客行为。
我在洗衣服和刷碗的时候听过Python捕蛇者里面的一期栏目,里面 @greyli 讲述了自己是如何开始从零到一为开源做贡献,我从中学习到一个很重要的品质 : 胆子大,脸皮厚,这两个词不是贬义的,这是王道少年漫画里面主角标配的特质。
所以,刚学会一点点Python
,精通git
里面的push
和pull
的我也硬着头皮报名了这第一次开源松。由于怕搞不定项目给网暴(狗头),我选择了相对简单任务,我接的项目是为flask-ckeditor
写一个防止xss攻击的函数 链接。
一波N折的第一次PR
这个项目简单来说就是调个bleach的包,然后封装一下别人提供的函数,我在一个无风的夜晚,劈里啪啦几十行代码,很快就搞定了,为了装逼,考了4遍四级才勉强过的我还用英文写了docstring。由于不知道怎么提交PR,我还去网上搜了有一会,这篇通俗易懂给有需要的朋友分享以下。
啪的一下很快啊,一个git push
提上去,然后我的屏幕上出现了一个叉,
这应该是给拒绝了的意思吧…
我不服气,咔咔一顿查,噢 原来如此,是因为仓库设置了一个叫github action
的东西,可以用于设置仓库的一些自动化的操作,简单来说就是在我提交PR的然后git push
到主分支的时候,它自动去跑单元测试和格式检查了,然后我单元测试没通过,格式检查也没通过,所以出现了个大叉。下面是我查到的一些资料。
花了点时间伺候好单元测试和格式检查之后,我再次直接再一个commit 然后 push上去,啪的一下很快啊。
结果还是有问题,看描述应该是没有达到目标的覆盖率,所以又是一个鲜红的叉。
这时候我收到了邮件,是李大的review。
他给我指出了每一个存在问题的点,包括我蹩脚的英文
需要符合代码仓库的docstring写法。
用一个or
替换掉了两行代码。
很多时候,我自己一个人写代码的时候,对于代码写法啊风格啊本身是没有反馈的,只有命令行反馈给我结果正确与否,这让我觉得,我好像给拉到了一个真实的交互的氛围之中,而且这种交互是正向的。
我想这可能就叫做社区吧。
我后面补上了一个单元测试,修改了李大提出来的一些问题,我贡献的一些代码也成功的躺在了flask-ckeditor
的主分支之中!
当然了,还有很多的地方是李大自己兜着底,比如一些新函数不符合直觉的地方的修改,比如新功能的文档还是李大自己commit的,由于不会rst
和英文比较烂,我也并没有为新功能去写文档。
当然,都是会用搜索引擎的成年人了,”不会"不能成为借口,下一次开源贡献,我希望自己能做得更好一些。
欢迎大家加入代码厨房和参与开源松
站在一个用户和参与者得角度,我觉得代码厨房的功能完善程度(我爱死了每个动态有邮件推送的功能,估计得花钱吧),还有一些小彩蛋的设计,贡献者的徽章啊和成就系统,在国内属于是较高水平的了。
在各大论坛都是营销号和水文横行、贩卖焦虑的今天,我认为代码厨房更有可能成为中国的stack overflow,这里大佬也很多,flask的维护者 @greyli ,pdm的作者 @frostming 都在哇,这些人都是切切实实的有在参与到社区活动中的…
如果你也像我一样,也想试试开源贡献是什么感觉(提交代码还有回答别人问题巨有成就好吗?)
那请放下一些程序员固有的闷骚参与进来吧 !