怎样维护成功的开源项目

开源可不仅仅是将代码扔到网上就万事大吉了,将开源项目变成能让自己引以为豪的东西才算成功。那么,你需要注意哪些方面呢?

写好指导性文字

每一个开源项目有三样东西是少不了的:项目目标和方法的简要说明、如何参与和授权许可。最好把它们预先放在一个README文件里。

我还喜欢加入一个名为“组织和理念”的部分,概括项目如何构成,各个东西都在哪儿,代码是怎样写的,需要哪些类型的测试,性能与简洁性怎么平衡。(详见案例unstdlib.py)

接下来是“贡献”部分,要说清楚开发者怎样开始参与项目,以及将代码成功合并进项目的所有步骤。urllib3的贡献部分,已经被其他好几个项目采用了。

查看还没有解决的问题,或者新开一个问题来讨论某个功能设想或bug。
把urllib3库添加到Github上开始进行更改。
编写测试来显示这个bug是固定的或者它的功能是否正如预料的那样运行。
发送一个pull请求,干扰保持器,直到它被合并到一起并发布。
最后,每一个开源项目需要有一个授权许可,如果没有许可,那就意味着版权属于开发者,其他人需要明确的许可才能使用。

态度

对待用户和贡献者有好的态度是至关重要的,偶尔会有类库用户误闯到你的问题跟踪器里,并且很愚蠢的在文档编制里写了命令。那该怎么办?

1.你可能会斥责用户,因为他们的鲁莽行为浪费了你很多时间。

2.你也可以耐心的向用户解释他们所误解的,一旦他们进一步理解问题,那么邀请他们发送一个pull请求为其他用户改善文件编制。

有些团队可能因为某些原因选择第一种态度,也许是因为他们觉得维护人员做的是一件吃力不讨好的工作,还要承担丢失贡献者的责任。不过先来检查一下这两种态度所带来的效果。

当你责怪用户的时候,毫无疑问会丢失用户,还意味着丢失了他成为你的贡献者的可能性,说不定这种影响会传播到其他人那里,一传十十传百,别人可能真的认为你的文件编制里有问题。这无异于搬石头砸自己的脚。

但只要你有足够的耐性,礼貌待人,鼓励他们为项目出力,他们就会很有斗志。说不定他们就能在项目上做出重大影响,彻底改变现状。

在工作中保持良好的态度可能是比较难的一部分,因为每个维护人员的情况是不一样的,但是,礼貌、积极和进步是至关重要的。不仅仅是对于你和项目,还有整个团队。

营销

也许你能写出最有用最完美的代码并实现代码运行,但是你对技术社区的贡献会因为你允许人们重复使用你的代码而无限放大。

找到你的项目,站在SEO的位置思考整个项目,为项目选取一个带有重要关键词的相关名称。README里的项目描述和第一段应该是项目的简单总结,里面所有的重要关键词都是之前人们所搜索的。

urllib3——带有线程安全连接池的Python HTTP类库,支持文件公布,智能友好等等。

Python,HTTP类库,线程安全,连接池,文件公布,这些都是当人们遇到要使用Python的标准HTTP类库(urllib、urllib2、httplib)的时候所需要的。

一旦准备好了README,就要确保能够生成一些文档。发布在Read the Docs将是一个很好的选择。包括一些代码样本和便于采纳的详细菜单。

为你的受众提供技术支持,建立一些StackOverflow警报过滤器,甚至可以过滤掉谷歌的奇怪论坛警报。如果你推自己的软件,这个警报会帮助你添加一个你就是开发者的免责声明。

考虑合作关系,为框架编写一个可以使用你自己工具的插件,并观察这些工具能否将框架连接到README。两年前,我和Kenneth Reitz在不同的场合进行交谈之后,我们决定合作。虽然urllib3已经是非常流行的Requests类库的核心,但远远落后于当时的httplib2。当我和Kenneth Reitz合作之后,我们两个团队的成果远超出了我们的想象。此时,在我们的合作之间建立明确的规则和界线是非常重要的,这个规则后来也帮我们在合作当中建立了深厚的友谊和相互尊重打下了基础。

充足的时间,我的一个比较受欢迎的项目花了至少一年的时间。这在营销人员看来是懒散的表现,但如果你按照文章里说的那样去做,正确的完成每一件事,那么营销人员会不请自来。

技术社区

想要一个人做完所有的事是很难的,特别是很多人都期待着你能拿出好的作品。

抓住任何一个机会寻找pull请求。集思广益的力量是无穷大的,所以无论何时何地我都会向技术社区的成员寻求意见,他们常常说的RFC我从来没听过,甚至有的时候他们会主动研究前端主题。

大胆寻求帮助,我本打算花数小时致力于开源工作,但有时候日程安排忽略了或是我忘记了关于pull需求。我鼓励人们参与并在我需要更多的人参与的时候提醒我。在更复杂的分支,它有助于要求志愿者代替维护人员来处理这个问题,直到它准备好合并。

尽可能的自动化,去年,我们为urllib3设置了100%的测试覆盖规则,这使得我们的项目维护更加简单。任何功能都必须经过测试,否则它可以在没有通知的情况下被删除。这意味着每一个pull请求必须在合并之前完全测试。

维护贡献者列表,提醒并邀请贡献者把他们自己添加到列表里,即使他们做的事情微不足道。几个字节的存储库不花费你任何东西,这和他们因得到认可而产生的自豪感是无法比拟的。

找到乐趣

Andrey Petrov从事与HTTP和urllib3相关的的工作已经数年了,但仍然坚持维护开源项目,因为他喜欢技术社区,并在开源项目中感觉到自豪。他最后强调,工作中尽最大的努力,并为自己的工作而骄傲,有些人可能会欣赏你,有些人却不会。最后总会有人感激你为开源社区所做的积极有效的贡献。

时间: 2024-11-18 10:53:38

怎样维护成功的开源项目的相关文章

维护VS Code开源项目背后的那些事情

本文作者 rebomix 是微软重要的开源项目之一 Visual Studio Code (常简称 VS Code)的维护团队成员,在此分享了维护 VS Code 过程中的一些见闻和感想,可以让我们一窥这种由企业支持的大型开源项目是如何运作的. 也希望此文可以让国内对 VS Code 开发.使用感兴趣的同学更多的了解和参与 VS Code 的社区开发. 加入 Visual Studio Code 快一年,趁这个机会聊一聊开发和维护这个项目的感受.以下为个人理解,不代表公司也不代表团队. 项目 V

TensorFlow: 如何支持一个成功的开源项目

Google TensorFlow移动项目负责人Pete Warden写到,围绕一个开源项目来创建一个社区需要一系列活动,涉及到支持.pull requests handling.许可使用和更多其他的东西. Warden解释到,新项目在初始阶段的一个大挑战就是为使用者们提供支持.最开始,开发人员们是唯一的专家,他们得想办法把自己的日常工作与其他支持任务相结合.这项工作并不简单,因为它可能将开发人员们带出自己的舒适区,很可能让他们无法专心完成主要任务.TensorFlow团队采用软件工程师轮流的方

维护 VS Code 开源项目背后的那些事情

加入 Visual Studio Code 快一年,趁这个机会聊一聊开发和维护这个项目的感受.以下为个人理解,不代表公司也不代表团队. 项目 Visual Studio Code 的目标是做一个 Lightweight Editor,通过的扩展 api,让用户在 VS Code 中达到和 IDE 中接近的开发体验(效率). 不过很多群众对 VS Code 有诸多误解,我先来一一解答 "VS Code 师出 VS,是 VS 找了一群人来重写的,复用了很多 VS 的代码,等等". 很抱歉,

如何加入一个开源项目?

原文地址:http://haineault.com/blog/120/                 如何加入一个开源项目? 这不是一篇权威的指南,只是一些你需要遵循的基本规则,这些规则可以让你对开源项目的贡献使得你和项目维护者都感到愉快! 为什么加入一个开源项目? 首先,有很多加入开源项目的动机.排在第一的可能是"酷":)当你告诉你的朋友"嘿,我在XYZ项目开发团队! 我很潮吧?" 但是这并不是一个很好的原因.加入一个开源项目的首先需求是你需要使用它.如果你自己

如何在Github打造你的爆款开源项目

目前为止我已经有五个流行项目(登上 Github 的 Trending 页),所以想分享我的一些经验和方法. 如果你开源过代码,就会知道让别人对你的感兴趣是多么困难.这很奇怪,不是吗? 我们花了至少数百小时在这上,把它免费提供给别人却没人感兴趣!!经过几次较为幸运经历,我慢慢发现如何让其他人对我的开源工作感兴趣.如下图展示的: 最终你希望得到那些使用你 Repo(Github 上开源的项目)的开发者的点赞加星.但第一步你需要先获得一些加星,你就是这篇文章的目的. 首先,我介绍下我自己.我目前主要

区块链开源项目如何实现盈利? | 数博会2017

雷锋网AI金融评论报道,5月27日,2017全球区块链技术发展论坛在贵阳举办.会上,Consensys企业总监 Brent Xu.超级账本亚太区总裁Julian Gordon.中国信息通信研究院技术与标准研究所副所长何宝宏.量子链高级工程师徐小龙.普华永道风险及控制服务合伙人季瑞华.IBM公司标准与开源技术的程海旭出席并参与了"区块链技术的开源与商业化"圆桌对话.主持人是北航国家千人计划特聘教授.长江学者讲座教授.数字社会与区块链实验室主任.天德科技首席科学家蔡维德. 以下是对话实录,

数10大经久不衰的开源项目

如今,开源项目无处不在,它们经历了诞生.兴盛.衰落等一系列过程,最终非常优秀的项目才得以存留并发展壮大.  一些人认为开源运动是近几年才兴起的,其实不然,开源项目甚至可以追溯到几十年前.比如,20世纪60年代的NASA COSMIC软件集合.  自由软件创始人Richard M. Stallman曾说,"当我1971年在麻省理工学院人工智能实验室工作时,我已经成为了软件共享社区的一部分,当时该社区已经存在很多年了".  本文将列出一些古老的.经典的开源项目,在这个名单中我只列出了目前仍

5个开源项目中常见的陷阱

提及开源,从软件.硬件以及理念已经越来越流行,应用形式也越发丰富.如果企业想开始一个新的开源项目,opensource网站提出的五个开源项目"陷阱"值得关注,同时即便是已经展开项目执行,通过了解无论在哪个阶段都可以有效.平稳的完成. 仅你自己支持 如果你计划发布一个开源产品,需要深刻理解"你需要的支持"的含义.不要指望社会各界来帮助你提供产品支持,每个人都会以为他们所做的事非常重要.得到千百万人的支持.同样不要指望大批社区志愿者会自发涌入你的支持论坛,帮你回答问题.

开源项目不得不防的5个陷阱

如今,开源软件.开源硬件以及开源理念已经越来越流行.如果你想开始一个新的开源项目,这里有五个"陷阱"你不得不防! 你的支持 如果你计划发布一个开源产品,你需要深刻理解"支持"的含义.不要指望社会各界来帮助你提供产品支持,每个人都会以为他们所做的事非常重要.会得到千百万人的支持(但这是不可能的).不要指望大批社区志愿者会如洪水一样涌入你的支持论坛,帮你回答问题.你必须为你的项目负责,你的团队将负责处理各种问题.鼓励http://www.aliyun.com/zixun