作者:TODO | 编辑:舒敏
为了让开源项目办公室顺利运行,您需要正确的工具。这些关键的任务工具将用于追踪各部门的目标与指标,从工程部门和法律部门到行政领导部门、公关部门与营销部门,同时给予员工收集数据、提供开源软件运行快照和管理公司内部开源软件日常使用所需要的全部资源。
---Todo
资源来源
最大限度优化组织中运行开源计划或启动开源项目的实践。这些资源由 Linux 基金会与 TODO Group 合作开发,代表了我们的员工、项目和成员的经验。
英文:
https://todogroup.org/guides/management-tools/
中文:
https://linuxfoundation.cn/tools-managing-open-source-programs/
GitHub:
https://github.com/todogroup/todogroup.github.io/blob/master/content/en/guides/management-tools.md
开放源代码的战略性应用之路,起始于一个精心策划、组织与授权的开源项目办公室,以指导和管理开源的创建、分发和使用。但这仅仅只是第一步。为了让开源项目办公室顺利运行,您需要正确的工具。这些关键的任务工具将用于追踪各部门的目标与指标,从工程部门和法律部门到行政领导部门、公关部门与营销部门,同时给予员工收集数据、提供开源软件运行快照和管理公司内部开源软件日常使用所需要的全部资源。
本指南提供了如何开始您的开源工具集建设的详细信息和场景,包括用于跟踪和管理您的开源项目的最重要工具的信息。指南中提及的许多工具已由 Linux 基金会和该领域的其他领导者创建并开放源代码,可以免费且便捷地为您的项目所使用。您还可以找到一个仪表盘安装程序的示例,该程序融合并展示了多种工具的信息。
01
—
本指南的撰稿人
◈ Chris Aniszczyk - Aniszczyk 云原生计算基金会首席营运官
◈ Jeff McAffer - 微软开源项目办公室主任
02
—
为什么您需要特殊的工具来进行开源项目管理?
一旦您的开源项目办公室启动运行,就应该同时收集合适的软件工具,这些工具允许您的开发团队管理、跟踪、指导和推进其开源项目、开源贡献与开源发布。
◈ 为协作和代码开发提供工作场所
◈ 管理项目质量
◈ 自动执行关键且重复的任务,如代码审查与跟踪,以及许可证合规性审查
◈ 通常,生成数据以证明您的开源项目办公室和开源战略的投资回报率
◈ 监督项目质量并确保突发问题出现时,应急防护措施是到位的
在您开始您的开放源代码之路时,使用正确的目标工具还将使开发人员和其他员工的工作更为轻松,也将提供更好的结果,并将成为公司开源项目的成功协作与沟通的基础。
“如果你正在尝试管理 100 多个代码库或是 100 个人,那你确实不能再让人用电子表格手动操作了。但显然,人们依然在这样做。不过,这样的操作方式开始用于临时应急,并且变得费时费力。这便是工具发挥作用的地方。它们允许你批量操作。”
— Jeff McAffer[4], 微软开源项目办公室经理
“归根结底,你需要工具来自动化你的生活,否则你将会浪费大量时间手动完成工作。"
—Chris Aniszczyk[5] ,云原生计算基金会首席运营官、前 Twitter 开源项目负责人
03
—
如何选择和安排您的工具?
公司所需的开源工具有哪些?早期的讨论大多认为,这取决于公司的业务、产品和服务,以及公司如何服务它的客户和员工。由于开源项目办公室制定了规划流程和战略地图,因此可以选择那些能整合进公司的目标、流程和基础架构的工具。
最终,知道您将需要使用哪些工具的唯一方法,就是了解您想要对开放源代码进行何种操作。
以下是开源项目办公室选择所需管理工具的基本步骤:
1、获取开发者和社区成员的认同和选择偏好。要做到这一点,您需要与开发人员和社区成员进行详细的讨论。他们可以描述什么样的工具已经或者将最适合他们。请务必认真重视这些建议和要求。认真倾听那些能让你实现目标的人的观点。他们是最可能已经使用了许多这些工具的人,因此可以从他们的经验中受益。
2、根据关键业务应用了解需要依赖和集成的关键软件。这意味着了解并知晓您的业务所依赖的开源软件,以便您可以跟进了解安全问题并确保软件的持续性。
3. 研究现有的工具,并决定哪些工具您可以直接使用,或哪些工具可以继续开发以满足您的需要。不要每一个工具都从头开始开发。查看已存在于您所在的开源社区中且正在被使用的工具,并获取有关这些工具的建议和反馈。在在线开发社区中多搜寻,看看有什么有用的工具,并寻求推荐和建议。在开源会议上提问,在兴趣小组Birds-of-a-Feather中与开发人员交谈,并向那些已经实现你期望的前人学习。
这些工具一旦被选定,在落地使用之前,还需要一些额外的准备:
1、创建一个用来支持、管理和使用这些工具的内部基础架构。在您新建立的开源项目办公室中,指定一个人来维护和开发内部基础架构。该架构有一线上内部门户,会根据任务和特性保存和组织这些工具,并实现工具的分发。在此工具门户中,您可以将这些工具提供给所有的开发人员,或者根据他们的工作和需求,通过身份认证和权限限制开放给特定的用户。
2、为将使用这些工具的员工制定培训计划。只是获得工具是远远不够的。现在您必须保证您的开发人员知道如何使用它们并掌握其功能。培训可以是在线、在教室,或是在小型午餐小组中,让他们了解工具使用的益处很重要。询问您的开发人员哪种学习方法对他们最有效,并让他们选择自己想要的学习方式。
3、确保工具在您的组织中集中可见。要使开发人员能够轻松查找与使用它们,最好将其整合到任何现有的用于跟踪开发进程的开发人员仪表板中。同样,这也有利于您公司操作这些关键工具的组织和发布。
当您在选择工具时,实施操作有助于记忆,当然这也可能会影响您的决定。例如,具有陡峭学习曲线的工具可能需要更多的培训。
利用现有工具
认识到达成组织的目标上你团队的需求,以及自身情况和基础架构的潜在限制之后之后,接下来要做的就是要探索并了解那些已准备就绪且可供您使用现有工具。由于大多数工具本身就是开源的,所以如果它们一开始并不能满足您的确切需求,您的开发团队可以联系这些工具的开发者,看看他们是否可以协作根据新的用途添加一些特性。
讽刺的是,许多开源项目办公室并不经常直接使用其他公司开发的工具,或与其他公司合作来开发他们管理开源项目所需的工具。通常,他们想要这样做,但包括 Facebook 和微软在内的许多企业已经拥有现有的工具套件,这些工具套件在真正成为一个合作议题之前就已经实现。由于他们已经拥有了自己的工具集并进行了投资,他们似乎并没有很大意愿采用其他公司的工具。
这就是现在才刚开始构建自己的开源项目的公司具有显著优势的地方。由于他们现在正在建立自己的开源项目办公室并进入开源领域,因此他们不必为受到这样的限制而烦恼。
相反,他们可以聪明地利用别人的成功经验与失败教训,并利用近年来领先的公司所创建的成熟工具来构建自己的开源工具箱。Linux 基金会的开源行业组织,TODO Group,一直致力于组装一个装满工具的 “ Open Source Program Office in A Box ” 入门套件,这将使公司能够通过一套紧密结合的预先组装工具开展开源工作。入门套件目前尚未开发完善,但希望最终可以让公司付出更少的初始努力,更轻松地部署和配置他们所需的工具。从事这个项目的 TODO Group 成员包括 Adobe 、Capital One 、Comcast 、Facebook 、谷歌、eBay 、IBM 、微软、三星和 Twitter 。
创建一个仪表板
除了适当的工具之外,公司还应该有中央仪表板,以便他们实时监控和跟踪他们的开源项目和开发情况。许多公司可能已经拥有了用于现有开发工作和应用程序的仪表板,并且能够将现有仪表板与其开源工作整合在一起。否则,他们应该创建或采用新的仪表板来改进其开源部署的管理。
04
—
一个基本工具集的要素
正在出现越来越多的用于管理和报告开源项目的工具,这一趋势已经非常明显。如果您的开源项目刚刚开始,那么将您的研究集中在几个您启动和运行所需的基本工具上会更有帮助。
随着您的项目不断发展,以及使用这些工具的经验越来越丰富,您可以开始采用新的工具,来帮助自动化并简化您的流程,响应业务需求的增长。切记,新选择的工具将用于内部文化和流程的补充和支持——而不是引导它们。
以下章节列出了几个基本的工具类别,几乎所有开源项目日常使用的工具都可以划分到这些类别。这有助于您对该研究有系统性的认识。
自动化进程
自动化进程工具是您公司的开源项目中选择和使用的最重要的工具之一。这些工具的任务非常广泛,其中包括自动执行贡献者许可协议(CLA)的程序。贡献者许可协议(CLA)是一份按法律声明,声明开发人员创建了代码且不是从其他任何地方非法复制。传统上,这些协议是通过打印协议、签署并传真等一系列手动流程执行的。但在这如今电子邮件和即时通讯迅猛发展的世界里,显得不可思议。取而代之,现在可以用机器人实现自这一流程的自动化,通过使用电子签名,跟踪并处理提交的内容。
为满足公司的更多需求,自动化工具变得越来越庞大且规模化。它们可以准确地告诉您谁正在为您的项目做出贡献,并且可以帮助您消除那些减慢项目进度的程序摩擦。
据微软表示,在其开源项目办公室里,大约有 8000 个仓库在 GitHub 上托管,涉及约 11,000 名贡献者,而在 2016 年约有 40,000 个内部请求应用于开源项目。为了管理这些请求,以及所创建的代码和正在更新的代码版本,公司转而使用可以自动化解决混乱的工具。不仅如此,由于数百个项目中很可能会共用同一段代码,因此必须对其进行仔细跟踪,以便在出现安全错误时,可以快速绘制并修复所有的软件影响。在如此大规模的情况下,自动化非常关键,手动更新几乎是不可能的。
Microsoft’s Azure open source portal
管理关键任务
那些有助于管理关键任务的工具,也是需要考虑和获取的。例如用于项目管理、跟踪项目质量状况,以及确保开发人员、开源社区和其他公司内部人员之间的清晰且快速沟通的。
源代码管理
大多数通过开源项目办公室开发的企业软件项目都使用 GitHub 作为其集中托管和开发的平台。
GitHub 是一个在线源代码管理站点,它允许开源开发人员在一个中央“存储库”或存储空间中管理和存放他们的代码,参与者可以协作并开发他们的代码。如今,大约有 6400 万个开源代码项目在 GitHub 上托管,涉及大约 2300 万个开发人员。
GitHub 用户可以添加代码、查看已提交的代码、申请更改、获取并提供反馈,以及使用该服务提供项目管理。GitHub 使用 Git Version Control System[7],这是由 Linux 创建者 Linus Torvalds 开发的开放源代码项目,为代码和合作开源人员提供了组织机构。每位“贡献者”都有他们正在处理的项目存储库的副本,他们可以在自己计算机中的副本里进行更改,然后将其提交回项目以供未来纳入。然后,拉取请求pull request(示例[8])或代码贡献会被项目组织者审查、讨论、修改,最后批准或拒绝。
许可证合规
代码扫描和合规工具也很重要,它们有助于追踪代码起源和许可要求。关注被引入自身基础架构、产品和服务中的开放源代码以确保符合许可证的要求,对于公司来说是很重要的。
例如,您的应用程序可能包含数千个开源组件。为了保护您的公司免于法律纠纷,了解这些细节是至关重要的。在风险较高的情况下,用户必须根据其业务在风险谱中的所处位置,深入了解代码,从而深入地审核并验证他们所说的许可证。(请参阅我们关于使用和分发开放源代码的指南。)
“你必须了解你的风险状况,因为扫描最终是与风险管理相关的。你可以一头扎在沙子里,然后只管相信并期望你自己没事。或者你可以说‘如果我受到起诉,这将会破坏我的生意。’你需要非常确定。所以,你要打开包装,逐行查看代码,寻找可能存在其中的所有内容。”
—Jeff McAffer[4] 微软开源项目办公室经理
05
—
用于管理源代码的工具
如前所述,GitHub 是服务于目前大多数开源项目办公室的专业源代码管理系统。但是 GitHub 本身并不能满足项目代码管理的所有需求——特别是当您大规模发展的时候。
开源世界中所使用的一些工具旨在通过添加欠缺的功能来改进 GitHub 本身,例如支持检查开发者原产地证书(DCO)语句,以确保代码可以被合法授权且应用于开源项目中。
GitHub 在代码审查方面也存在一些不足之处,所以有其他可用的工具可以自动将有问题的代码发回给创建它的贡献者,然后要求他们检查并做出必要的修改。GitHub 没有办法强迫任何人检查他们的代码,而这些聪明的工具解决了这一问题,使工作流程得以改善。
其他 GitHub 特定工具的功能用于提高 GitHub 的性能指标,这些功能通常针对特定项目,而不是提供给整个组织详细信息。对于在多个 GitHub 项目中维护许多开源代码库的公司而言,需要更好的工具来组织和汇总它们,使之有意义。亚马逊、Netflix 和微软提供了大量这样的工具来帮助完成这些任务。
以下是一些最流行和实用的源代码管理工具,可以简化并帮助您的 GitHub 运作:
源代码扫描和许可证合规性
◈ Antepedia Reporter [9]---Reporter 是 Antepedia 的一款商业收费应用程序,用于生成报告,可以让开发人员、项目经理、法律顾问和其他人员创建关于您代码库中的开放源代码与公共和私有组件的许可证合规性审计和知识产权管理报告。
◈ Black Duck Hub[10] ---这一商业 Hub 服务,可以扫描代码以识别所有嵌入式开源组件,然后自动搜索已知漏洞并进行修复。在您的代码中发现新的漏洞时它可以发送警报。
◈ Black Duck Protex[11]---Protex 是来自 Black Duck 的一款商业收费的许可证合规性管理工具,它整合了现有工具以自动扫描、识别和清点开源软件,同时执行许可证合规性和公司政策的要求。
◈ Copyright review tools[12]---这一系列命令行工具有助于使初始版权文件的构建与之后的审查和更新更便捷。
◈ dep-checker[13]---Linux 基金会的一款依赖性检查工具,dep-checker 执行针对代码包间的链接的完整分析。
◈ FlexNet Code Insight[14]---Flexera 于 2016 年收购了许可证合规性供应商 Palamida,提供了 FlexNet Code Insight,以帮助开发人员、法律团队和安全人员自动化企业开源应用。
◈ FOSSA[15]---这是一款商业工具,可自动执行代码依赖性跟踪和后台许可证合规性扫描。
◈ FOSSology[16] ---作为 Linux 基金会的一个项目,FOSSology 是一个开源许可证合规性软件工具包,它可以从命令行运行许可证、版权并导出控制扫描。它还包含了一个数据库和 Web UI,这些也都可用于创建合规工作流程。
◈ janitor.git[17]---Code Janitor 是一款开源工具,可帮助评估源代码是否符合开源许可证。Code Janitor 来自于 Linux 基金会,可以与其他产品一同使用以检查代码。
◈ LicenseFinder[18]---检测您项目中所使用代码的许可证,将这些许可证与用户定义的白名单进行比较,然后提供可操作的报告。
◈ Protecode Enterprise Analyzer[19]---这款商业应用程序用于分析和识别任何目录中的所有代码, 以确定代码的所有权并根据预先确定的内部政策确保开源许可证合规性。
◈ scancode-toolkit[20] ---来自于 nexB 的 ScanCode 工具套件扫描代码的许可证、版权和依赖性,以查找、发现和清点您代码中所使用的开放源代码和第三方组件。
◈ SPDX[21] ---SPDX 规范是用于描述与软件包相关的组件、许可证和版权的标准格式。SPDX 标准通过标准化开发人员和公司之间共享许可证信息的方式,帮助遵守免费和开源的软件许可证。SPDX 规范由 Linux 基金会主办的 SPDX 工作组所开发的。该工作组提供开源工具[21]来帮助 SPDX 文档的用户。
◈ WhiteSource[22]---通过自动且持续地扫描数十个开放源代码库,为实时管理开源组件提供授权、安全性、代码质量和报告分析。
错误跟踪
◈ Bugzilla[23] –– 一款基于服务器的软件,是具有搜索记忆功能的高级查询工具,且具备集成电子邮件功能,同时也是全面的权限系统。Mozilla[24]使用 Bugzilla 作为其错误跟踪系统。
◈ GitHub Issues[25]---作为GitHub自身的整合反馈和错误跟踪器,GitHub Issue 可作为 GitHub 项目托管的一部分提供给用户。
◈ GitLab[26]---这款错误跟踪工具在单个用户界面中统一了问题跟踪、代码审查、Git 存储库管理、活动流、wikis 和其他许多内容,以协助您的开源项目。
◈ JIRA[27---来自于 Atlassian 的 JIRA 包含自定义过滤器、开发人员工具整合、可定制的工作流程和丰富的 API,以将 JIRA 与其他应用程序整合在一起。
归档和发布管理
◈ Artifactory[28]---同样来自 JFrog 的 Artifactory 是一款存储库管理器,它支持以任何代码语言创建的软件包。它整合了所有主要的 DevOps、持续集成与持续交付工具。
◈ Bintray[29] ---一款来自于 JFrog 的归档工具,允许公司发布他们的代码发布档案以维护更久远和更庞大文件的存储。
◈ Docker Hub[30] ---一款基于云的注册表服务,允许用户连接到代码库并构建和测试他们的图像。它还存储手动推送的图像和链接到Docker Cloud[31],以便用户可以将图像部署到项目主机。Docker Hub 是一款集中式资源,用于整个开发流程中的容器映像发现、分发和变更管理、协作与工作流程自动化。
◈ github-release[32] ---GitHub 的内置功能部分,它允许用户打包并编辑[33]GitHub 项目的发布,以便其他社区成员可以使用它们。
06
—
用于跟踪项目质量的工具
随着开源项目的发展和成熟,监控和跟踪开源项目的整体质量是企业开源项目的核心任务。为了实现这一目标,您必须收集相应的工具,这些工具应当能够反映单独的开源项目的执行过程并反映单独的开源项目在数十、数百甚至数千个项目中被它们的社区接收的过程。同时,这些工具还必须兼具转化能力, 能够将收集的数据转化为体现整个开源组合中整体项目性能的有意义的、实用的且可操作的信息。
Amazon's open source program dashboard
这其中的关键是,您收集到的数据应当可以转化为关键且有用的信息 – 而不是些无用的指标,例如详细说明项目已记录了多少“观察者”明星,自项目开始以来有多少贡献者参与了该项目,亦或是缺乏重要背景资料的其他指标。
最好的项目质量监测工具还必须帮助项目团队对支持他们工作的社区做出回应,同时鼓励贡献开发者的参与和多样化。这意味着这些工具可以帮助保持人员快速响应社区成员发布的问题或反馈,以便他们保持热情参与,且不会感到厌倦并转向其他项目。
一些开源社区有大量的贡献者,而其他一些开源社区则成员较少。项目质量监测工具需要能够适用于各种规模的项目。
“关于现有的工具和系统,我希望我们不需要自己创建任何工具或技术,就能很快就能实现公司的开源项目办公室目标。他们应该能够找到并使用现有的开源工具来管理他们的开源项目。”
—Jeff McAffer [4], 微软开源项目办公室经理
以下是一些最受欢迎且实用的项目数据统计和项目质量跟踪工具:
◈ CatWatch[34] ---CatWatch 是来自 Zalando 的一款开源指标仪表板,可为您的 GitHub 帐户获取 GitHub 统计信息,帮助处理您的 GitHub 数据并保存在数据库中。这些数据反映了您的开源项目的受欢迎程度,您的开源项目的最活跃的贡献者,以及其他有趣的统计信息。
◈ Gander[35] ---Gander 是一款为快速查看一系列开源项目生成有用指标的仪表板。Gander 由 PayPal 创建,专为负责运行开源项目办公室或跟踪多个开源项目的人员而设计。
◈ GHCrawler[36]---由微软创建的 GHCrawler,是一款 GitHub API 爬行程序, 用于爬取 GitHub 托管的项目并自动追踪、检索和存储其内容。GHCrawler 主要适用于尝试跟踪组织与数据存储
◈ Gittagstats[37]--- Gittagstats 是一款根据 Git 仓库的一组标签生成统计数据报告的工具。该工具由 Qualcomm 创建。
◈ Grimoire Lab[38]---Bitergia 拥有各种各样的开源工具以计量开源项目的统计数据,从邮件列表到 meetup 网站的小组。
◈ OS-dashboard[39]--- 来自亚马逊的开源项目仪表板,是一款多功能仪表板,可用于一次同时查看和监视许多GitHub组织和/或用户。
◈ OSS Tracker[40]---来自 Netflix 的 OSS Tracker,收集有关 GitHub 组织的数据,并在单个用户界面中将数据整合到该组织内的所有项目中。所有数据存储库都会被列示,度量指标也会按组织合并,但社区管理员也可以将项目组织到功能区域,并指定管理员分配管理和工程的 leads。
“目标是通过使用这些工具,生成透明数据和相关指标信息,用于指导组织实践。”
—Chris Aniszczyk[5], 微软开源项目办公室经理
TODO Group 还提供了一个很好的附加工具列表[41]:
◈ 有助于代码审查的工具
◈ mention-bot[42]---由 Facebook 开发,该工具为社区成员贡献的代码自动关联潜在代码审查人,以加快审核进程。
◈ PullApprove[43]---通过同行审查改进代码质量,执行格式准则,捕获错误代码和提供代码安全检查的形式使代码贡献或拉取请求更加规范化。
◈ sentinel[44] ---这是一款存储库管理机器人,用于审查和测试代码贡献,为存储库构建一个维护者列表,并与用户沟通拉取请求的进展状态。
◈ 有助于贡献者许可协议(CLA)的工具
◈ CLA Assistant[45]---由 SAP 提供的 CLA Assistant 通过处理用户贡献的合法部分来简化工作流程。当代码贡献者提供代码时,Assistant 要求他们签署 CLA 并通过 GitHub 帐户对每个贡献者进行身份验证。它还会在贡献者同意 CLA 时更新拉取请求的状态,并自动要求用户在对 CLA 进行更改时为每个新的,拉取请求pull request重新签署CLA[46]
◈ CLA Portal[47]---来自 VMware 的 CLA Portal 添加了一个工作流程,以使贡献者能够在 GitHub 存储库中签署关于拉取请求的贡献者许可协议。当开发人员发出拉取请求时,会提示他们在需要时签署协议。同时包括一个为 CLA 创作、CLA-to-project 绘制和协议审查建立的管理员界面。
◈ DCOB[48]---一款开发者原产地证书(DCO)机器人,它有助于为拉取请求中的每一个代码变更执行开发者原产地证书(DCO) 的签署取舍。DCOB 按照开发者原产地证书(DCO)[49]的要求为每一个被认可的代码变更设置状态。
◈公司规模内的 GitHub 管理
◈ hubcommander[50] ---一款用于 GitHub 组织管理的 Slack 机器人,HubCommander 使用聊天操作或对话驱动的开发来帮助管理 GitHub 项目。它创建了一种简单的方式来完成优先的 GitHub 组织管理任务, 而无需为您的GitHub组织成员授予管理或所有者的权限。
◈ opensource-portal[51]---由微软研发的工具,旨在帮助大型企业进行大规模的 GitHub 管理操作。这是微软开源项目办公室提供的一套工具之一。
◈ settings[52]---此应用程序将 .github/settings.yml 中定义的存储库设置同步到 GitHub 中,从而启用存储库的拉取请求。
◈ zappr[53]---Zappr 是一款 GitHub 集成工具,用于促进项目工作流程。来自 Zalando 的 zappr 帮助开发人员提高生产力,同时通过消除有关拉取请求审批的瓶颈并帮助项目所有者在合并到项目主要分支之前暂停劣质拉取请求的方式,提高开源项目质量。
◈提高项目质量的工具
◈ CII Best Practices Badging[54]---来自 Linux 基金会的 CII Best Practices Badge 是 FLOSS 项目展示其遵循最佳实践的方式。通过使用这个 Web 应用程序,项目可以自愿进行免费的自我认证来解释他们如何遵循最佳实践。
◈ CodeClimate[55]---Code Climate 授权组织通过在整个开发流程中引入完全可配置的测试覆盖率和可维护性数据来控制其代码质量。它对开源项目是完全免费的!
07
—
用于沟通与合作的工具
当然,开源的发展并不仅仅关于代码的开发。它还需要在企业内外部从事项目工作的不同群体之间以及公司开源项目办公室的工作人员之间建立良好的沟通与合作。
为了达到上述目标,开发人员可以依靠他们可能已经应用于其他项目的工具,例如 Internet Relay Chat(IRC)[56],开发人员可以发布与开源开发相关的问题并快速收到回复[57]。另一个例子是TWiki[58],它是一个开源企业 Wiki 和 Web 协作的平台,开发人员可以在其中讨论代码和项目及相关主题。
此外,企业还可以通过社交媒体平台,门户网站,开源项目存储库和其他能够进行输入、提问和讨论的平台促进沟通交流。
其他有用的工具还包括 Facebook 公司的mention-bot[59],它可以通过自动关联潜在审查者来获得拉取请的快速输入周转以审查代码。当 GitHub 目变得太大导致社区成员无法订阅项目的所有通知时,这一工具尤其值得推荐。
然后是Slack[60],这是一个在线团队项目管理与沟通平台,在这一平台中用户可以访问和共享消息和文件,管理工作流程,搜索信息等等。Slack可以通过设置接收支持请求、代码签入、错误日志和其他任务的通知。
除此之外,当谈到公司参与和支持开源时,不要忘记您公司的公关与营销人员。包括 Twitter、Reddit、Facebook、LinkedIn、Google+ 等网站在内的社交媒体帐户以及企业内外部的博客和网站的使用都是非常重要的。客户关系管理(CRM)软件以及电子邮件群发和新闻简报可以帮助公司让客户了解他们的开源进展。
08
—
用于企业规模 GitHub 管理的工具
当谈到企业为开源项目提供并应用的工具时,按理说最重要的是那些帮助企业管理自身企业规模 GitHub 操作的工具。GitHub 是一个可以提供许多操作的完美平台,但对于谷歌、微软、脸书、Twitter、LinkedIn 等大型的复杂公司而言,使用标准的 GitHub 产品可能会有很多限制。
大型企业通常需要更多的功能,包括如身份管理、设置和权限管理,安全性和双重身份验证执行,以及深入理解和跟踪代码存储库的方法。
因此,这些大型企业常需要构建专门的自动化工具来处理诸如入职、离职、安全策略执行以及给予开发人员请求的存储库访问权限等任务。
为满足自身的特殊需求,微软构建了自己的工具来处理诸如此类的任务,以简化和改进其开源项目。微软在 GitHub 上运行良好,拥有约 1,345 个存储库,迄今为止涉及约 3,580 名开发人员。
“GitHub 的运行管理是随着规模扩大而变得更重要的。你拥有一个 GitHub 组织,这是一个存储库集合,然后你拥有成员和团队。管理所有这些东西变得有点复杂,特别是如果它开始在 GitHub 上规模扩展到数百个存储库,数百人和多个组织。”
—Jeff McAffer[4]微软开源项目办公室经理
微软创建了一款定制的自助服务-GitHub management and onboarding portal[62]
,用于组织其项目、存储库和团队。在其最简单的层次上,基于 Web 的门户允许开发人员将他们的微软公司ID映射到他们的GitHub ID,这可以提高系统安全性并帮助简化参与大量重要项目的大量开发人员的组织工作。
该门户还允许员工使用 GitHub 和微软进行身份验证。其创建了员工身份的一个“虚拟链接”,以便根据他们的工作角色向他们提供任务所需权限以完成工作。如果员工离开公司,可根据需要调整系统以删除或重新分类其访问权限。
门户运行在一台或多台云服务器上,并依靠缓存来帮助进行会话和减少 GitHub API 的压力。微软门户平均每天可提供约 1000 名独立用户作为其工程师的工具,这是该公司不断发展的开源工作的一部分,该工作现在包括超过 10,000 名正在使用、贡献和发布开放源代码的工程师。
09
—
结语
没有人认为使公司进入开源世界是一件简单的事情。但其他许多公司,包括微软和谷歌等巨头已经在您前面这样做了,而且已提供了详细的路线图、代码和建议等,这将使您自己的开源旅程变得更加轻松。
开源项目办公室的创建和选择一系列关键工具来开始开源工作,选择权掌握在您手中。它们很可能已经激发了开发人员的极大期望,开发人员中的许多人可能已经自发为开源项目做贡献(或在工作中,隐秘地)。
通过开源项目的合作并邀请其他人与您合作,您的公司可以获得不可估量的收益,且能通过节能和创新推动公司发展。
拥有正确的工具对于授权贵公司的开放创新至关重要。
TODO GROUP
这些资源是与 TODO(Talk Openly,Develop Openly)组织合作创建的, 该组织是 Linux 基金会中专业的开源网络组织。特别感谢奉献自己的时间和知识来制作这些综合指南的开源项目负责人。参与制作的公司包括 Autodesk 、Comcast 、Dropbox 、Facebook 、Google 、Intel 、Microsoft 、Netflix 、Oath(Yahoo + AOL) 、Red Hat 、Salesforce 、Samsung 和 VMware 。如想了解更多信息,
请访问:todogroup.org[63]