Score
0
Watch 1 Star 2 Fork 0

企业内源治理 / Gitee 企业内源最佳实践CC-BY-SA-4.0

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
基于 Gitee 企业版的企业内部开源最佳实践方法 spread retract

Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

什么是内源

内源(InnerSource)是使用开源软件开发最佳实践并在组织内建立类似开源的文化。 该组织可能仍会开发专有软件,但会在内部开放其开发。 这个术语是蒂姆·奥莱利(Tim O'Reilly)在2000年创造的。

企业内源的好处

  • 加速知识共享,提升人员能力
  • 提高软件复用,提高软件水平
  • 打破部门墙,促进内部合作
  • 激励创新

Gitee 的内源治理

Gitee 企业版提供企业内部开源的治理能力,本文将详细介绍如何利用 Gitee 企业版来管理企业内部的开源项目。

下图是 Gitee 企业版的内源管理界面截图:

包含几大模块:

  • 企业开源仓库
  • 企业内源仓库
  • 开源 Issue 聚合
  • 开源 PR 聚合
  • 开源统计

输入图片说明

企业代码仓库类别

1. 开源仓库

企业开源仓库跟常规意义上的开源项目没有任何区别,任何人都可以访问到此类仓库的代码,并依据常规的开源参与流程进行贡献。

2. 内源仓库

内源仓库是在企业范围内开源的仓库,此类项目允许企业内所有成员访问。但是可以预计开源软件的方法对项目进行贡献。

3. 专有仓库

专有仓库(内部仓库,或者私有仓库)是企业需要对权限进行严格管控的项目仓库,一般是企业的核心业务产品。此类仓库只有被授权的成员才能访问。

企业管理内部开源的具体步骤

假设A企业开通的 Gitee 企业版的工作台地址是 https://gitee.com/corpA 。 为了更好的管理和治理企业的开源,建议采用以下步骤:

一. 为企业开源项目创建专属的命名空间

为了区分专有仓库和开源仓库,请在企业内创建一个独立的团队(例如 A公司开源团队,对应地址是 https://gitee.com/corp-os),如下图所示:

注意团队的属性也可以暂时不公开,后续根据实际的情况公开,公开后的团队页面,企业外的成员只能看到开源的信息,无法看到内源的信息。

二. 在专属的开源团队中添加仓库

进入企业的内源频道,点击按钮“新建内源仓库”,选择仓库的归属为“A公司开源团队”,输入项目基本信息,选择“内部开源”。另外建议选择一个合适的开源许可证,因为一旦项目正式对外开源,许可证是很重要的信息。你也可以后期再利用 Gitee 的许可证向导来完善此信息。

三. 企业内成员开始贡献代码

首先明确几个角色,分别是:

  • Moderator 管理者:开源或者内源仓库的管理者,有权限添加 Committer、审核 PR、管理 issue 等
  • Committer 开发者:仓库的成员,可以直接提交代码,审核 Contributor 的代码,处理 Issue 等
  • Contributor 贡献者:贡献者可以通过 Fork + Pull Request 的方式来贡献代码

Moderator 和 Committer 应该做好分工,各司其职。

企业内源仓库对所有企业成员是开放的,成员要为内源仓库贡献代码的几种途径:

  1. 将指定企业成员添加到内源仓库成员中,成为内源仓库的 Committer,仓库成员也就是 Committer 提交代码无需审核直接入库
  2. 任何企业内成员都可以直接 Fork 内源仓库,然后通过给主仓库提交 Pull Request(PR) 来实现参与贡献,PR 需要仓库成员(Committer)审核才能入库,一旦所提交的 PR 被合并,该开发者即成为内源仓库的贡献者(Contributor)。经常贡献代码的贡献者建议可以添加到仓库成员成为 Committer 。
  3. 企业成员也可以给内源仓库提交 Issue 来报告问题、提需求等贡献

四. 审核贡献者提交的代码

当企业成员通过 PR 提交贡献的代码之后,仓库的 Moderator 和 Committer 有权限来审核代码,并决定是否合并到主仓库,或者拒绝合并。拒绝合并请提供拒绝的理由。建议 PR 审核者在与贡献者出现分歧的时候,不要生硬的拒绝,应该通过 PR 评论进行沟通,并根据最终的沟通结果来决定 PR 的合并还是拒绝。

五. 将内源仓库正式对外开源,并接受社区的贡献

建议企业所有的仓库在对外开源之前,必须先在内部开源(也就是我们所说的内源),这样可以确保多数的问题在内部得以发现并解决后才对外开放。对外开放之前还需要进行各方面的合规检查,合规检查清单包含但不止于以下列表:

  • 是否存在企业不允许公开的专有软件相关内容
  • 是否使用恰当的开源许可证(根目录下的 LICENSE 是许可证的文本副本),可使用 Gitee 提供的开源许可证向导工具进行选择。
  • 检查是否有存在与引用的第三方软件和包的许可证冲突的情况
  • 对引入第三方开源软件包的修改是否已记录,并作为更改日志的一部分包含在开源发行说明中

六. 开源项目的统计数据

Gitee 企业版的内源治理同时提供了企业在开源和内源方面的统计信息,包括这些开源和内源仓库收获的 Star、贡献的代码行、Issue 等信息,方便跟踪企业开源和内源的使用情况。同时还提供了开源贡献排行榜。

总结

前面我们已经提到了企业内源(内部开源)的好处。企业内部开源需要有一个集中的工具平台来支持(Gitee 企业版就是一个简单方便的支持平台),企业内源更需要公司从管理上进行支持,通过制度和文化的建设来推动内源的发展,让其真正的发挥出效果。例如不断的给工程师和管理者们进行各种开源的布道;设定各种政策和流程来激励贡献者;不断树立各种标杆项目,标杆贡献者等等。

Gitee 企业版也将不断的完善对企业内源治理的支持,不断的输出内源方法论,来和我们的企业们一起成长。

现在就前往 https://gitee.com/enterprises 开启企业内源治理旅程。

Comments ( 0 )

Sign in for post a comment

1
https://gitee.com/InnerSource/gitee-innersource-best-practices.git
git@gitee.com:InnerSource/gitee-innersource-best-practices.git
InnerSource
gitee-innersource-best-practices
Gitee 企业内源最佳实践
master

Search