越写悦快乐之如何开启一个开源项目

开源项目指南 - 图片来自简书App

今天的越写悦快乐系列文章为大家带来如何开启一个开源项目的文章。经常浏览GitHub、Bitbucket的小伙伴肯定都知道世界上有成千上万的项目被发布在网络上,我们经常使用开源软件构建我们的产品或服务,同时也努力为开源世界贡献一些自己的力量,让开源成就我们,让我们在开源中绽放。

什么是开源

当一个项目被开源,这意味着任何人都可以出于任何目的查看,使用,修改和分发你的项目。 开源软件在开源许可的情况下发布并得以传播。

流行的开源协议

为什么开源

个人或组织为何想要开源一个项目,有各种各样的的原因,例如:

  • 协作
  • 采用和重组
  • 透明度

开源并不仅仅限于软件。您可以开源任何事物,从数据集到书本。查看 GitHub Explore 开找找有什么是你可以开源的。

开源是指”免费”吗?

开源最大的吸引之一是它不花钱。 但是,”免费”只是开源的总体价值的一个副产品。因为开源许可证要求任何人可以几乎出于任何目使用,修改和共享您的项目,项目本身往往是免费的。 如果该项目花钱使用,任何人也都可以合法地复制和使用免费版本。因此,大多数开源项目是免费的,但”免费”不是开源定义的一部分。 有些方法可以通过双重许可或有限功能间接地为开源项目收费,同时仍然遵守开源的官方定义。

启动自己的开源项目

一般来说,如果你乐意于他人对你工作的查看和反馈,你就应该开源你的项目。无论您决定开展项目的哪个阶段,每个项目都应包括以下文档:

  • 开源协议 - Open Source License
  • 项目介绍 - README
  • 贡献指南 - Contributing Guidelines
  • 行为准则 - Code of Conduct

作为项目的发起者或维护者,这些组件将帮助你交流你的期望,管理贡献并保护每个人的合法权益(也包括您自己的)。他们能够大大增加你积极体验的机会。如果您的项目在 GitHub 上,则将这些文件放在您的根目录中,并使用推荐的文件名将有助于 GitHub 识别并自动将其显示给读者。

选择协议

开源许可证保证其他人可以使用,复制,修改和贡献给您的项目,而不会产生不良后果。 它也可以保护您免受繁琐的法律影响。启动开源项目时,请务必包含许可证。法律工作是非常无趣的。但好消息是,您可以将现有许可证复制并粘贴到存储库中。只需要花这么一点时间,就能保护你的辛苦工作。MIT, Apache 2.0, 和 GPLv3 都是非常流行的开源许可证, 但你可以选择其他选项。当你在GitHub上创建新项目时,你可以选择许可证。包括开源许可证将使你的GitHub项目成为开源。

选择开源协议 - 图片来自简书App

编写项目介绍

自述文件不仅仅是用于说明如何使用你的项目。他们还可以解释你的项目为什么重要,以及它可以为你的用户做什么。

在您的自述文件中,尝试回答以下问题:

  • 这个项目做什么?
  • 为什么这个项目有用?
  • 如何开始?
  • 如果需要,我可以在哪里获得更多的帮助?

您可以使用自己的README回答其他问题,例如处理贡献,项目的目标以及许可证和归属信息。 如果您不想接受他人的贡献,或者您的项目尚未准备好作为产品提供使用,请将这些信息写下来。

当你在根目录中包含一个 README 文件时,GitHub 会自动将其显示在存储库的主页上。

编写贡献指南

贡献文件 (CONTRIBUTING File) 告诉你的受众如何参与你的项目. 例如,你可以包括一下信息:

除了技术细节, 贡献文件也是一个供你传达对贡献期待的机会, 例如:

  • 你在寻求的贡献类型
  • 你项目的路线图或者版本
  • 贡献者应该(或者不应该)如何与你取得联系

使用热情友好的语气并提供具体的贡献建议(例如编写文档或者搭建网站)可以大大提高新人的参与度。

建立行为规范

最后,行为准则有助于为项目参与者的行为设定基本规则。这在你为社区或者项目推出一个开源项目的时候尤为有价值。一份行为帮助你促进健康,有建设性的社区行为,这也会减轻你作为维护者的压力。

更多信息,请参见 行为规范指导

除了传达你期待参与者如何行动,行为规范也倾向于描述这些期待针对谁,适用于何时,以及对于违规行为的处理方法。

就像开源许可证一样,有现成的行为规范,所以你不必自己编写。贡献者公约是一个行之有效的行为规范,已经被用在超过4000个开源项目,包括 Kubernetes,Rails,以及 Swift。无论你使用哪一种,你都应该准备好在必要时执行行为规范。

将文本直接粘贴到项目存储库中的 CODE_OF_CONDUCT 文件中。将文件保存在项目的根目录中,以便轻松找到,并从 README 中链接到它。

项目命名

选择一个容易记住,有创意,能表达项目用意的名字。例如:

  • Sentry 监控应用程序的崩溃报告
  • Thin 是一个简单快速的Ruby web服务器。

如果你的项目是基于一个已存在的项目创建,那么使用他们的名字作为你项目名的前缀会帮助你阐述你项目的用途。

在项目的整个生命周期中,你需要做很多文字工作:READMEs,教程,社区文档,回复issues,甚至肯能要处理很多来信和邮件。

是否是官方文档或者一封普通的邮件,你的书写风格都是你项目品牌的一部分。考虑你可能会拥有粉丝,以及这是你想传达的声音。使用热情,通俗易懂的语言(如”他们”,即使是指一个人)能够让新来的贡献者感觉项目非常欢迎他们。使用简单的语言,因为你的读者可能英语不是很好。

开源项目清单

文档

  • 需要为项目指定一个开源协议
  • 项目要有基础文档 (README, CONTRIBUTING, CODE_OF_CONDUCT)
  • 易记的项目名,指出项目是做什么的,不能和已存在的项目冲突或者商标侵权
  • 最新的issue队列,组织和标记清除的issues

代码

  • 项目使用一致的代码风格和明确的功能/方法/可用的名字
  • 注释清晰的代码,记录意图和边缘案例
  • 在修改历史,issues或者 pull requests 中没有敏感的信息 (例如 密码或者其他不能公开的信息)

如果你是代表个人:

  • 你已经告诉了你的法律部门,以及/或者理解了你公司(如果你是某一家公司的员工)的开源政策和IP

如果你有一家公司或者组织:

  • 你已经告诉了你的法律部门
  • 你有一个宣布和促进项目的营销计划
  • 一些人被允许管理社区互动(回复issues,检查和合并pull requests)
  • 至少有两人管理访问项目

参考

个人感想及收获

“talk is cheap, show me the code.” 开源不仅仅说说而已,而是真真切切的逻辑表达,更是一行一行代码形成的业务场景,让我们提炼软件生产过程中的工具、技巧、方法和框架,构建适合业务的工具栈和技术路径图,在适当的时候为开源社会贡献自己的一份力量,让我们在开源的道路上一路同行,携手构建更加美好的世界。希望大家继续保持学习的热情,持续构建更快更好的产品或服务。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容