首页 > 科技未来 > 内容

企业与开源软件:“上游优先”与善意无关

发布于:2024-06-21 编辑:匿名 来源:网络

企业软件团队如何与上游开源项目团队保持健康的协作关系一直是业界的热门话题。

OSChina编辑部作者萝拉用详细案例介绍了什么是“上游优先”原则,并表示“(上游优先)与善意无关,是开放合作的必要态度,甚至是争取权利”你采取行动,在社区中赢得声誉和影响力,社区信任并尊重你,你的决定就有分量。

”在开源中国写了这么久的文章,我常常感到自我怀疑。

总有一些读者会留下诸如“开源应该免费”之类的评论,让你想和他吵架。

这些评论就像重锤敲在小编的脸上,让小编不禁问自己:这些年写了哪些文章?难道这一切都是徒然吗?我们似乎了解开源的一些常识性原则,但又似乎不明白。

这种恼人的情况经常发生在开源的另一个重要原则——“上游优先”中。

这个原则反复出现在一些开源布道者的口中,未免有点诚意。

什么是“上游优先”? get的字面意思相信你已经理解了一大半了。

一旦你进行了分叉操作,你分叉的项目就是你的上游。

另一方面,上游优先是一种鼓励您直接与开源社区互动并从源头解决问题的工作方式。

关于“上游优先”,还有一个有趣的故事。

当时红旗Linux还没有崩溃,仍然是国产Linux版本的标杆。

对于是否采取“上游优先”,内部存在争议。

这对当时还在红旗Linux工作的李建生产生了影响:当时很多国产Linux发行版就自己做孤岛开发。

但是,比如说我在一个包里加了一些功能,半年后我发现上游做的事情比我多,而且更完整。

有些bug甚至早就被修复了,而且修复得非常好,而且还增加了功能。

然后我不得不废弃我所做的所有工作,然后再次获取上游包。

无疑,李建生认为“上游优先”是必要的,但大环境让他感到力不从心。

几年后,李建生成为中国为数不多的全职开源文化布道者之一。

他在接受 OSCHINA 采访时表示,这次争议几乎是他开源职业道路上的一个岔路口。

今年刚刚当选ASF(Apache软件基金会)理事的蒋宁也有同样的感触。

姜宁在接受OSCHINA采访时表示:观念的转变是最困难的。

国内的开源参与者大多抱有搭便车的心态,只把开源当作一个可以让自己快速上手的免费工具。

如果使用过程中出现问题,你可以在社区提问或者自己修复,无需向上游回馈任何东西。

人们不习惯与上游社区进行任何互动。

姜宁将这些问题归咎于理念问题和缺乏开放协作意识。

除了转变观念之外,要想把这个原则落实到实践层面,还得走更长的路。

01 可以不给上游反馈吗?答:要看实力。

事实上,无论是哪种开源许可证,都没有要求“上游优先”。

不用说,其他宽松的许可证,即使是最强大的GPL也只要求:“分发时必须提供源代码”。

这里的“提供源代码”是指用户想要获取源代码的时候。

,他有办法获得。

它没有规定必须反馈给上游,更没有规定上游优先级。

那么,为什么在没有要求、没有规定的情况下,我们还要做上游反馈的事情呢?这个问题其实很多开源布道者都讨论过,比如之前提到的姜宁和李建生。

他们的论点基本上围绕以下3点:1)降低自己的维护成本。

一旦分叉,就意味着与上游解耦,不再参与上游的维护和更新,分叉版本的生死由分叉者负责。

然而,代价却比想象的要大得多。

此外,即使您负担得起这些维护成本,您也很可能会重新发明轮子。

但如果你将修改反馈给上游那就是另一回事了。

合并后,所有维护工作都由上游承担,立即解放你的双手。

2)方便下次使用上游更新。

如果你想使用从上游更新的新版本,你需要在你自己的分支上进行调整。

更新速度越快,适配工作量就越大。

但如果你自己的代码已经在这条“主线上”了,你就可以零成本享受它。

3)不要孤军奋战,多与上游沟通。

想要深度参与开源,确实需要和上游沟通。

沟通也是开源的魅力所在。

你不再孤单,而是可以与众多有相同兴趣爱好的开发者进行交流和讨论。

与上游沟通得越深入,你就越有可能联系到项目创始人甚至你的偶像。

也许您还会发现它们非常有帮助。

在这个层面上,分支的主体是“个人”。

我一个人的力量有限,就算分出去,最多也只是一条沟渠,很快就会干涸。

最好最明智的做法就是拿出分享的精神,拿着自己的代码,逆流而上,找到一个组织。

但在组织和集体层面,可能会出现另一种情况:这种分叉不是偶然的,而是有特定目的的。

例如,南非亿万富翁 Mark Shuttleworth 为了实现自己的梦想,从 Debian 中分叉了 Ubuntu;另一个例子是MySQL。

创始人因Oracle收购一事勃然大怒,分叉了Maria DB。

这些分叉后来散发出相当大的力量,丰富了开源项目的前景。

他们的逻辑是直接创建一个新的社区,而不遵循上游社区的逻辑。

修改之后,他们依然会发布新版本,打造出自己的特色,成长为一条浩瀚的河流。

但事实上,中国更普遍的情况是公司层面的“借贷主义”。

开发者没有任何理想主义的目的,只是为了完成任务。

比如,老板想要一个XXX的解决方案,给出了几个月的时间和几十万的预算,于是项目经理就直接从上游项目拿过来,花了一些时间修改变成了这个解决方案。

这个项目没有任何反馈上游的动力,区预算也没有能力维持和支持。

从长远来看,这种做法毫无意义且浪费。

因此,明确了上述三种情况后,“是否需要向上游反馈?”的问题就来了。

瞬间就变成了“我有实力不向上游反馈吗?”如果没有,请继续阅读。

02 我们有实力,但为什么要优先上游? “我认为 GPLv2 是一个很棒的协议。

我喜欢它的原因很简单:我给你源代码,你给我你的修改,我们就扯平了。

” ——Linus Torvalds,Linux之父,从一开始,Linus就清楚地认为他需要一种机制,能够确保下游的修改能够反馈给他。

我们无法回到“上游优先”最初被提出的时候,但有一点是肯定的:包括Linux内核社区在内的许多社区都在遵循和遵守这个“开源潜规则”。

在2017年Linux内核社区围绕“上游优先政策”的讨论中,Linus明确表示永远不可能停止实施“上游优先”政策。

后来Linux基金会也公开表达了“上游优先”的重要性,认为如果(代码贡献者)没有这个(社区)自律,内核早就在自重下崩溃了。

2016年,Linux基金会发布了一份报告,呼吁采用开源方法来解决“技术债务”。

报告指出,一旦项目积累了技术债务,就会出现交付时间延长、安全问题增加、维护任务加重、无法与上游同步等症状和不利影响。

他们给出的解决方案是“开源”。

这里开源最重要的原则就是“上游优先”。

与上游保持一致的开发节奏几乎可以避免绝大多数技术债务。

当然,这需要你积极参与上游项目。

你不能强迫上游往对你有利的方向发展,但你可以通过贡献和分享来影响上游,让上游和其他贡献者逐渐明白你的需求是什么。

整合上游开源项目的开发流程。

以上是来自上游的调用。

也有实力雄厚的下游公司在分叉很久之后重新加强与上游公司联系的例子。

其中,最著名的就是谷歌的Android开发社区。

众所周知,Android的底层是Linux内核,从上游Linux内核到各种Android设备终端的链条中,有很多利益相关者,往往会经历多次分叉,以及一堆具体的变化。

高通、三星等SoC厂商基本上都会为每个主要芯片版本制作一个SoC专用的核心,然后每个核心都会获得针对特定设备的硬件支持。

这导致了非常混乱的 Android 内核碎片。

Android.com 官方文档指出:“这些修改非常广泛,设备上运行的代码中有多达 50% 是树外代码(不是来自上游 Linux 或 AOSP 通用内核)。

”因此,谷歌Android的臭名昭著是显而易见的。

早在 2018 年,LWN.NET 上就有帖子批评 Android 开发社区因不采用上游优先政策而造成麻烦。

事情的起因是,今年2月,Android内核中的(悬浮拦截器/悬浮拦截器)首次以唤醒锁的形式出现。

在接下来的一年多时间里,Android开发者收到了大量但相互矛盾的建议。

举例来说,你想修复X来合并这段代码,但是当X修复后,开发人员跳出来要求他们修复Y。

修复工作似乎永远无法完成。

与此同时,Android 开发者也因不向上游上传代码而受到公开批评。

大多数批评是 Android 正在秘密开发短期解决方案。

毕竟,一旦代码交付并且应用程序开始依赖它,进行任何更改都会变得更加困难。

这使得大多数 Android 设备使用多年前的内核版本,而错过了新的 Linux 内核功能。

近两年来,Android社区的局势出现了逆转。

2019 年 9 月,在 Linux Plumbers 大会上,谷歌软件工程师 Todd Kjos 在自我分析 Android 出现这种情况的原因后透露,Android 将奉行“上游优先的开发模式”,确保新代码首先进入主线 Linux 内核而不是直接位于 Android 源代码树中。

此外,谷歌还承诺“努力上传 Android Common Kernels 上游的所有树外补丁”。

在他们的时间表中,谷歌计划在今年年底前完成现有功能的上游升级并隔离供应商变更。

并且,从2017年开始,该公司计划采用这种“上游优先”的发展模式,以避免未来出现此类问题。

谷歌有这个实力吗?但兜兜转转之后,我还是回到了“上游优先”。

除了谷歌之外,最大力推行“上游优先”原则的公司就是红帽。

红帽在其自己网站上的文章和各种公开演讲中强调了这一原则。

▲ 红帽开源参与指南中的第一项是“上游优先”。

在2018年的GOTC大会上,红帽全球副总裁兼大中华区总裁曹恒康描述了红帽整个“上游优先”的路径:红帽之前完成了我们的商业版本之后,我会把它作为社区版本发布。

但我发现了一个问题。

很多所谓的生态伙伴或者公司不会将自己写的代码贡献给上游,他们的供应就会被断绝。

红帽觉得这些东西不能满足上游优先级的概念。

去年,我们只是将 Stream to RHEL 放在红帽企业软件的上游。

我们为什么这样做?因为我们拿到代码后,把它变成一个可用的代码,然后从红帽代表那里拿到,变成企业版软件,然后贡献给上游,所以不会有任何遗漏。

以前Stream OS在Red Hat下游存在遗漏问题,但现在不会有遗漏。

真正能够实现红帽当时的想法的是上游优先的理念。

“上游优先”开发的理念是,基于开源项目的产品中包含的任何更改(功能、错误修复)都应首先提交给项目,然后再包含在产品中。

这最大限度地减少了长期维护的负担。

——Dave Neary03,红帽开源和标准团队成员。

既然要反馈,就必须优先考虑反馈,甚至拿到上游票一路看下去。

事实上,无论你有多强,在开源道路上“上游优先”都是不可避免的。

一个重要的原则。

既然无法回避,那就参与其中吧。

Dave Neary曾在一篇文章中详细解释了如何实现“上游优先”原则。

在他看来,如果开发者想要实现某个客户的需求,可以尝试直接询问项目,但不要像乙方那样期望社区能够在规定时间内满足所有需求。

毕竟,社区没有得到任何好处,也不想被利用。

所以,最好的办法就是用自己的团队来解决。

有一个问题:因为上游不在你的控制之下,你不能像Red Hat那样等到上游合并完成后再交付给客户;您只能事后将其发送回上游开源项目,这会产生时间滞后。

当时间差无法消除时,你应该尽可能快地反馈给上游。

因为随着时间的推移,变化会在本地分支累积,使得迁移到上游变得极其麻烦。

对于许多外行来说,向开源项目提交功能和补丁似乎很简单。

事实上根本不是这样的:首先,将代码从稳定分支返回到上游必然会涉及大量的返工;其次,刚刚提交的代码往往难以消化。

即使切割成独立的补丁,每个补丁也需要独立提交和接受。

这项工作无疑是艰巨的;第三,有些社区的审核合并周期非常长,这么长的周期非常考验人的耐心。

;最后,很有可能你的解决方案不会被上游认可,而上游根本不打算合并你的分支。

这是非常压倒性的。

对此,Dave Neary提出,理想的工作方式是针对上游项目不稳定的分支开发功能。

这样,一旦补丁准备好,你就可以请求合并,而当你想将新功能移动到你自己的产品中时,这些功能实际上是向后移植到稳定分支的,同时也减少了你自己的维护。

成本。

当然,Dave Neary也表示,这种方法有一个前提:在所有工作开始之前,你需要在社区内公开讨论,从而确保你提出的解决方案有可能被接受。

要知道合并有多难,国外甚至有一家叫Collabora的咨询公司,专门帮助客户把自己的代码带到上游社区,帮助企业与主线社区建立联系。

找到了?最重要的一步是与上游维护者建立关系。

简单来说,就是经常和他们沟通,和他们建立良好的关系,或者干脆自己成为他们中的一员。

当你有了话语权,事情不是很容易做好吗?有文章讨论过这样一个问题:“上游优先就意味着善良吗?”在作者看来,这与善良无关。

这是一种开放协作的必要态度,更是一种话语权的争夺。

企业与开源软件:“上游优先”与善意无关

你的行动在社区赢得了声誉和影响力,社区信任你、尊重你,你的决定就有分量。

这就是开源的样子。

企业与开源软件:“上游优先”与善意无关

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 搜房网今晚在纽交所IPO融资1.2亿美元

    搜房网今晚在纽交所IPO融资1.2亿美元

    北京时间9月16日消息。 据外媒报道,中国搜房网将于美国东部时间(北京时间)9月16日启动IPO。 9月16日晚)在纽约证券交易所挂牌上市,交易代码为SFUN。   搜房网计划发行30,000股美国存托股票(ADS),发行价格在40.50美元至42.50美元之间。 每股ADS股份相当于4股搜房网普

    06-18

  • 增长黑客教父的产品经理讲述:我的硅谷“增长黑客”之旅

    增长黑客教父的产品经理讲述:我的硅谷“增长黑客”之旅

    雷锋网出版社:作者曲辉曾被增长黑客教父Sean Ellis招募,曾从事著名的增长黑客网络(Growthhakers.com)担任增长产品经理;目前担任美国领先的个人理财应用程序 Acorns 的营销总监。 本文发布在 GrowingIO 博客和公众号上,并已获得许可发布。 有一群人,用数据驱动营销,用

    06-18

  • Kura AR获数百万美元Pre-A轮融资

    Kura AR获数百万美元Pre-A轮融资

    3月23日消息,据36氪报道,Kura AR近期完成新一轮融资,融资金额达数百万美元。 本轮投资者包括行业内部个人投资者、企业合作伙伴等,本轮融资主要用于产品量产和业务拓展。 Kura AR成立于2008年,公司专注于轻量AR眼镜的研发。 通过自主研发光学显示芯片、光机结构和光学仿真

    06-17

  • 南非:计划推出2.6GW风电、光伏招标项目

    南非:计划推出2.6GW风电、光伏招标项目

    据南非独立媒体网站11月1日报道,南非矿产资源和能源部长曼塔谢表示,该部门计划推出独立发电项目到今年一月,可再生能源发电。 商业采购计划(REIPPPP)的第六个招标窗口包括兆瓦级陆上风电和兆瓦级太阳能光伏。 Mantashe上周宣布了25个优先招标项目,风能和太阳能发电总量

    06-08

  • “中国企业500强”之一的威高集团选择兰陵知识管理

    “中国企业500强”之一的威高集团选择兰陵知识管理

    “我们身处技术密集、创新密集的医疗器械和制药领域,知识的有效管理和利用尤为重要兰陵已服务了众多医疗医药标杆企业,有大量成功的知识管理项目实践,我们希望与兰陵共同推动知识管理建设,提高知识管理水平,推动业务高质量发展。 ” Ming,与威高集团数字化转型办公室有关

    06-18

  • 飞行时间质谱公司“普源生物”获赤子基金

    飞行时间质谱公司“普源生物”获赤子基金

    投资界(ID:pedaily)数千万融资 7月22日消息,近日,全球领先的MALDI-TOF MS全自动仪器、耗材上市解决方案提供商湖州普源生物科技有限公司获得赤子基金数千万融资。 本轮融资由赤子基金独家投资。 本轮融资将主要用于建设新的研发基地和拓展销售渠道。 质谱法是一种分离和检

    06-17

  • 中国版Alphago只是另一个“民科”的故事吗?

    中国版Alphago只是另一个“民科”的故事吗?

    《神雕侠侣》结尾,我们看到一群武功差但自尊心很高的人跑到华山“论剑”,但原型出现在杨过这样一个真正的高手面前。 这其实并不奇怪。 想要成名,挑战天下第一武功,是最容易的事情。 人总得有一些梦想,万一梦想成真。 近期,人工智能领域也发生了类似的事情。 不不不,我

    06-18

  • 自动驾驶公司“Plus科技”宣布计划在纽交所上市,市值约33亿美元

    自动驾驶公司“Plus科技”宣布计划在纽交所上市,市值约33亿美元

    自动驾驶公司“Plus科技”(Plus)宣布已签署合并协议与特殊目的收购公司(SPAC)轩尼诗资本投资公司V根据协议,合并完成后,智嘉科技将于今年第三季度在纽约证券交易所挂牌上市,股票代码为“PLAV” ”。 根据交易条款,合并后,智嘉科技市值约33亿美元,并将获得约5亿美元

    06-18

  • 168万,比亚迪发布电动“保时捷911”

    168万,比亚迪发布电动“保时捷911”

    说到跑车,大多数人的脑海里都会浮现保时捷、法拉利、兰博基尼等世界知名品牌。 这些超级跑车承载着“速度”、“声音”、“激情”等标签,成为了很多男生的梦想。 随着电动化的兴起,超跑领域不再是传统巨头的专属舞台。 中国汽车品牌也推出了Polestar 6、耀明SSR、红旗S9等产

    06-18

  • 浦东科技创新基金设立,初始规模55亿元,重点支持六大核心产业,

    浦东科技创新基金设立,初始规模55亿元,重点支持六大核心产业,

    据投资界10月10日消息,今日,浦东科技创新母基金正式成立并投入运营,初始规模55亿元,聚焦中国等六大核心产业芯片、创新药、蓝天梦、未来汽车、智能制造、数据端口。 同时,设立一批特色鲜明的行业子基金,吸引各类社会资本,扩大基金规模,创新“产业+基地+基金”联动发展

    06-18

  • 马可- 「深度智控」完成数千万战略轮融资,源码领投Pre A+轮

    马可- 「深度智控」完成数千万战略轮融资,源码领投Pre A+轮

    近日,行业领先的深度节能与数智创新服务商深度智控宣布获得汇川产投数据千万级战略轮融资。 本轮融资是深度智控继获得腾讯、红杉、源码资本投资后今年的第三轮融资。 相关资金将用于加强深度智控的研发部署和市场推广。 其中,Source Code是该公司Pre A+轮的领投方。 汇川技

    06-17

  • 梨视频获6.17亿元A轮融资,腾讯领投、百度跟投

    梨视频获6.17亿元A轮融资,腾讯领投、百度跟投

    据投资界4月16日消息,新榜显示,梨视频近日宣布完成6.17亿元A轮融资A轮融资,由腾讯领投。 、百度等也纷纷效仿。 去年11月,梨视频获得中国文化、人民网联合投资的1.67亿元Pre-A轮融资。   据李视频透露,A轮融资完成后,将继续打造全球最先进、高效、严谨的信息内容生产网

    06-17