通过“左移”支持Python社区

Kevin Fleming,开源社区参与负责人兼CT金宝搏网址O办公室成员

多年来,软件开发专家们一直在谈论并投入大量精力将离开这开始是为了通过在开发过程的早期测试来提高软件质量(当变更更容易且成本更低时),但现在已经扩展到包括软件开发生命周期(SDLC)的其他方面。

作为复习,以下是典型SDLC的外观:

软件开发生命周期

然而,在现实中,对于当今所有的中大型软件开发项目(尤其是企业工程组织中的项目),发展包括生产代码和其他资产,以及合并来自组织外部的代码和其他资产。大多数情况下,这些第三方材料要么是开源许可下的代码,要么是其他形式的免费使用资产。金宝搏网址

的定义品质也得到了发展,现在不仅仅包括可靠性、一致性和bug的减少。今天,决定一个基于软件的产品是否满足交付的质量要求,应该包括对其遵守许可、其再现性和安全性的评估。

如何保证质量?

完全由内部生成的代码组成的产品的质量保证过程处于生成代码的组织的完全控制之下。由内部生成的代码和第三方代码组成的产品的类似QA过程并不完全在该组织的控制之下。

当组织正在使用第三方代码试图“左移位”为了评估他们早在SDLC质量和达到“发展”阶段,进一步转变左方的结果在一个岔路口,一条路是内部路径和其他路径是第三方的道路。

当一个组织的产品包含第三方软件时,该如何确保软件质量?

使用卖方提供软件

第三方软件供应商接受质量保证的责任

一种选择是确保产品中使用的所有第三方软件都来自于自己生产所提供软件的供应商,该供应商将承担质量保证责任。这允许将义务委托给供应商,这是一些公司选择的途径。

使用供应商策划的软件

供应商管理第三方软件并承担质量保证责任

另一种选择是确保产品中使用的所有第三方软件都来自拥有这些软件的供应商策划它来自其他第三方,谁将接受质量保证的责任。这也允许将义务委托给供应商,这是更多公司选择的途径。

使用Community-Provided软件

使用第三方开放源代码软件的组织必须找到方法确保其对该软件的使用符合其自身的质量金宝搏网址保证要求

第三种非常流行的选择是使用来自公共社区的第三方软件,通常是大型的开源软件社区,比如金宝搏网址Apache软件基金会,Python软件基金会,Linux基金会,以及类似的非营利组织。不幸的是,这并允许委派质量保证的义务,因为社区无法承担该责任;使用该软件的组织必须找到方法确保其对该软件的使用符合其自身的质量保证要求。

社区提供软件的质量保证

这让组织陷入了一个两难的境地;他们仍然必须找到方法来确保SDLC的质量,但他们产品中的一些“输入”尚未得到质量保证。

彭博就是这样一个组织;我们使用了大量社区提供的开源软件,这些软件来自许多社区。金宝搏网址对这些社区的调查表明,他们证明他们所发布的软件“质量”的各个方面的能力差异很大:

  • 许多社区不使用数字签名来验证包的真实性
  • 许多社区没有提供机制来确保包名尊重品牌
  • 许多社区并不要求在“受控的”构建系统上生成所有已发布的包

由于这种多样性,为我们使用的软件创建一套“最低标准”要求是具有挑战性的。为了解决这个问题,我们希望帮助这些社区提高他们验证他们所提供的软件质量的能力。

通过“左移”支持Python社区

这种帮助有多种形式,但对于Python软件基金会(PSF)来说,这意味着我们已经承诺为Python打包生态系统的全职项目和社区经理提供两年的资金.我们很高兴地得知,当我们联系PSF时,他们已经在考虑这个概念,我们可以做些什么来帮助他们,他们给了我们与他们合作的机会,以解决这个重要的需求。

我们也很高兴地看到Python生态系统将从最近的NSF资助这是授予纽约大学的,该大学专门致力于提高包装安全性。我们预计即将聘用的项目/社区经理也将参与促进这项工作。

当然,我们还将继续提供代码(我们的一些团队成员参与了整个Python打包生态系统中的Warehouse、pip、setuptools和其他项目)并参与其中打气帮助社区做出关于改进Python打包的决策的过程。我们鼓励技术社区中的同行(他们也使用Python及其社区提供的包)加入这些工作,以便整个社区都能受益。

这意味着,当Bloomberg“左移”并在SDLC的开发阶段到达“社区提供的”分叉时,我们将尽一切努力提高质量保证——为我们和其他Python用户。

感谢PSF的同事Mario Corchero,他领导着彭博社的Python基础设施团队,为实现这一目标采取了行动。也感谢Ewa、Ee、Dustin和PSF的所有其他人,他们都是出色的合作伙伴。