通过“左转”来支持Python社区

通过凯文弗莱明,开源社区参与负责人和CTO办事处金宝搏网址

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

作为一种进修,这是典型的SDLC看起来像:

软件开发生命周期

然而,实际上,对于所有今天的中等到大型软件开发项目(特别是企业工程组织中的所有软件开发项目,发展包括这两者生产代码和其他资产,以及合并从组织外部的代码和其他资产。最常是,这些第三方材料将是开源许可证或其他形式的自由资产下的代码。金宝搏网址

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

如何保证质量?

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

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

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

使用卖方提供软件

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

一种选择是确保产品中使用的所有第三方软件来自拥有本身制作其提供的软件的供应商,并且谁将接受质量保证的责任。这使得授权委托给供应商,并且是一些公司选择的道路。

使用供应商策划软件

供应商策划第三方软件和应对质量保证的责任

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

使用Community-Provided软件

消耗第三方开源软件的组织必须找到方法,以确保其对本软件的使用符合其自身要求质量金宝搏网址保证的要求

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

为社区提供的软件提供质量保证

这使得组织有一点困境;他们仍然必须找到在他们的SDLC中确保质量的方法,但他们的产品中的一些“投入”还没有质量保证。

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

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

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

通过“左转”来支持Python社区

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

我们也很高兴地看到Python生态系统将从最近的NSF资助被授予NYU,专门针对提高包装安全性。我们期待即将录取的项目/社区经理将参与促进这项工作。

当然,我们还将继续提供代码(我们的一些团队成员参与仓库,PIP,Setuptools和跨Python包装生态系统的其他项目)并参与其中PEP.帮助社区做出关于改进Python包装的决定的过程。我们鼓励我们在技术社区中的同行,他还使用Python及其社区提供的包装,加入这些努力,以便整个社区将受益。

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

感谢PSF Mario Corchero,他领导Bloomberg的Python基础架构团队,将事物放在动作中,使其发生这种情况。感谢EWA,EE,DUSTIN,以及PSF的其他人,他是奇妙的合作伙伴。

Baidu