本文共 2807 字,大约阅读时间需要 9 分钟。
开源项目是什么
贵公司将内部项目作为开源发布。 恭喜你! 您知道您的代码已经准备就绪,但是您准备好承担所有新职责吗?
项目作为开源发布后,您的公司不仅要对该项目负责,而且还要对将围绕该项目形成的社区负责。 这通常需要更改开发/构建/发布工作流程。 这与代码本身无关; 涉及使开源项目成功的代码的所有过程和基础结构。
发布开源项目之前,这是您需要了解和期望的。
在继续进行之前,请花一点时间评估您公司发布项目的目标。 该公司将投入大量时间和精力来准备发布该版本,并将投入更多的精力来维护项目和围绕它形成的社区。 尽管这些努力可能是无私的,但公司更有可能期望其投资。
在进入项目及其社区之前,请确保您已意识到这些目标。 采取步骤确保您的公司能够满足他们的要求,不仅对公司有帮助,而且还从总体上帮助了自由和开源软件(FOSS)。 不知道或不满足其开源项目目标的公司完全退出了FOSS的参与,这对任何人都没有帮助。
尽管您的公司可能仍掌握王国的钥匙,并决定合并哪些贡献以及何时捆绑发布,但所有开发都必须与周围的社区进行公开沟通和协调。
换句话说,该项目必须根据社区对开源项目的期望而运作。 这些期望包括(但不限于):
开源项目会产生很多工作,尽管实际上通常只做专有软件开发工作。 尽管如此,仍然需要付出巨大的努力来转换流程和文化,以在开放式系统中有效,高效地工作并支持开源社区。
如果工作量很大,为什么要这样做?
正如我之前提到的,企业通常不会全心全意地发布项目。 他们之所以这样做,是因为他们希望从希望在项目周围形成的社区中受益,但是只有当公司赢得,建立并保持社区的信任时,这些收益才会发生。
这种信任是通过与社区进行公开,沟通和协作来完成所有工作而实现的。 公司做出的任何完全单方面或私人的决定都将违反这种信任并疏远社区。 当社区疏远时,他们离开了(有时分叉代码以从其他地方重新开始)。
无法从消失的社区中受益。 这就给公司留下了一堆开放的代码,但是没有人使用或关心,更不用说不能满足其开源项目时设定的目标。
项目发布后,所有错误报告(以前的和新的错误报告)都必须在项目的公共问题跟踪器中可用。 这是您需要做的一些事情:
项目作为开源发布后,其开发路线图和所有相关讨论将公开可用。
请注意:尽管路线图和有关它的所有讨论都是公开进行的,并得到了社区的意见,但除非做出其他调整,否则公司可能仍然对路线图的内容,时间和原因拥有最终决定权 。 应当以尊重项目现在服务和支持的社区的方式来完成此工作。
如果公共路线图包含与专有功能交互或依赖于专有功能的要素,则与项目交互的每个人都必须小心, 不要在讨论公共路线图时泄漏专有信息 。
项目作为开源发布后,所有对该项目的贡献都必须使用一个面向公众的工作流程 ,无论该贡献来自原始公司还是社区。
这是典型工作流程的示例:
每个项目都必须考虑并决定其特定的捐助需求和工作流程,并在项目的CONTRIBUTING.md文件中将其公开。
在计划开放内部项目的源代码时,通常会忽略构建过程。 这是不幸的,因为一旦项目发布,构建过程也会公开进行。
打开构建过程时需要确保以下几点:
项目发布后,所有影响项目或其社区的决定都必须公开做出,包括治理的变化,对工具的调整(例如版本控制或持续集成)以及对通信路径的更改或添加。
这并不一定意味着每个微小的决定都必须发送给委员会或需要整个社区的充分讨论。 通常,从社区中征求建议和反馈并在决策时考虑它们就足够了。
所有最终决定,其背后的原因及其预期结果必须公开宣布,可用,并记录在项目用于此类事务的任何跟踪系统中(通常是邮件列表加上文档系统或Wiki)。
您现在知道了:
与项目有关的所有事情都需要公开进行。
项目作为开源发布后,它不再属于公司“ you”,而是现在属于“我们”社区(公司是公司的一部分)。 这意味着必须在所有方面将社区包括在内。
非常感谢对本文的评论和建议。 本文中的任何和/或所有缺陷都是我的。
翻译自:
开源项目是什么
转载地址:http://uzczd.baihongyu.com/