作为Python之父GuidovanRossum逐渐从BDFL退下,Python(本文特指CPython)的未来牵动着万千开发者的心。目前,Python社区一共提出了7种治理方案,最终的胜出者将决定Python未来的发展方向和方式。这是一个高风险的话题,也是任何Python开发人员都应该了解的话题。Python的核心开发者之一、PEP-8015的作者VictorStinner对这7项治理提案进行了全面的比较。我翻译如下:原文:http://t.cn/EyhQd3b作者:VictorStinner译者:猫下的豌豆花(Python猫公众号作者)备注:原文发表于11月6日,和翻译是基于11月27日版本中几个治理提案(governancePEPs)之间的重要差异。我做了一个比较。我选择忽略一些不太重要的方面,例如专门的投票组织(详见每个PEP)。提取信息并进行总结,这不是一件容易的事,所以我可能是错的。我建议在对治理提案进行投票时,不要以完整性来判断,而是要关注决策过程的部分,即谁可以做决定,如何做决定?在我看来,那些还没有完成的PEP可以吸收其他PEP最好的点子,逐步完善自己。PEP8000中的PEP:PEP8010-TheTechnicalLeaderGovernanceModel(continuestatusquo(ish))Proposer:BarryWarsawPEP8011-PythonGovernanceModelLeadbyTrioofPythonistas)与现状类似,但三个决策提议者:MariataWijaya,BarryWarsawPEP8012-社区治理模型(TheCommunityGovernanceModel)没有核心决策者提议者:?ukaszLangaPEP8013-外部治理模型(TheExternalGovernanceModel)非核心监督(non-coreoversight)提议者:SteveDowerPEP8014-TheCommonsGovernanceModel(公共治理模型)核心监督(coreoversight)提议者:JackJansenPEP8015-TheOrganizationofthePythoncommunityPushmostdecision-makingtoteams提议者:VictorStinnerPEP8016-TheSteeringCouncil治理模型引导迭代提议者:NathanielJ.Smith,DonaldStufft.PEP8011、8012和8015定义了明确参与决策过程的“工作组”(或“专家”或“Python团队”),这可以被视为二级决策。PEP8014允许所有人(任何Python用户)投票。PEP8013将核心开发人员排除在决策委员会之外。除了这两种特殊情况,其他所有PEP的决策过程都强烈围绕着核心开发者(候选人必须是核心开发者,只有核心开发者可以投票等)。PEP8010、8012、8013、8014和8016呼吁进行不信任投票。如果其他PEP不包含此内容,我不确定它们是否是故意的。我喜欢这个提议,所以我会把它添加到我提议的PEP-8015:)PEP8015和8016严格限制在委员会中,只允许少于50%的成员是公司(最多5个委员会中的2个)个人).其他PEP没有限制。一些PEP(8010、8011和8014)几乎完全专注于定义最高决策层,而其他(8015和8016)也专注于核心开发者选举/退出、如何更新治理提案等。我不知道前者是故意为之,还是因为时间不够而没有完善。PEP8011、8014、8015提到了多样性(译注:决策成员的多样性,比如女性开发者),但没有提到如何“执行”多样性的细则。PEP-8011说:“Takeeveryeffectincludingmembersfromunderrepresentedgroupinconsideration”(尽一切努力将成员从代表性不足的群体考虑在内)。最高决策PEP-8012明确避免它PEP-8014有一个长老委员会决定如何以及何时批准PEP,决定基于对所有人开放的投票(有关PEP流程的详细信息,请参见下文)其他PEP是称为技术负责人、三重奏、理事会、指导委员会等。成员数量PEP8010:4=1(领导)+3(理事会)PEP8011:3(“三人组”)+工作组PEP8012:N/A(无领导,专家团队自治)PEP8013:2-4(with1"Chairman")PEP8014:5-10(Council)PEP8015:5(Committee)+PythonTeamPEP8016:5(Committee)(+otherteams/multi-committees/delegates,etc.asrequiredDepends)候选人'条件和要求:PEP8010:核心开发者PEP8011:核心开发者,PSF投票成员,三巨头,尽量接纳弱势群体PEP8012:N/APEP8013:不得是核心开发者PEP8014:不需要成为核心开发者,“最好是多样化的委员会”,“成员应该了解Python和Python社区”PEP8015:核心开发者,最多2个企业成员PEP8016:由核心开发者提名,最多2个企业成员投票,如何投票?PEP8010:核心开发人员PEP8011:(活跃)核心开发人员PEP8012:N/APEP8013:核心开发人员;当出现平局时,主席可以再投一票PEP8014:投票对所有人开放(无需是核心开发者)PEP8015:核心开发者;如果平局,将进行第二次投票,如果第二次投票仍然平局,PSF董事会(用于创建委员会和指导委员会)将做出选择PEP8016:核心开发人员;“如果出现平局,可以由候选人协商,或者随机选择”TermLengthandLimitsPEP8010:4.5年(leader,3个Python版本);3年任期(委员会)PEP8011:5年PEP8012:N/APEP8013:1个Python版本,无任期限制但是,如果理事会可以定期恢复,那就太好了”PEP8015:3年,轮流选举(每年1/3),无任期限制PEP8016:1个Python版本,无任期限制不信任投票PEP8010:可用于驱逐领导者,在理事会一致决定时发起,由所有核心开发者做出多数决议(未指定多数决议的门槛)PEP8011:N/APEP8012:N/APEP8013:Votingrequired超过2/3票,对于单个理事会成员PEP8014:1位长老,或一组10名核心开发人员,或PSF投票成员,可以申请立即投票,对于整个理事会PEP8015:N/APEP8016:投票requires2/3votes,forindividualmembersortheentirecommitteeteam/expertsPEP8010:对于个人PEP,“GUIDO与CoP协商(译注:TheCouncilofPythonistas,智囊团,为GUIDO提供工作人员建议)来确定专家候选人"PEP8011:工作组(3-5人),为三巨头提供建议,不一定是核心开发人员PEP8012:专家自组织为特定兴趣领域的子团队。这避免了多数投票和“委员会设计”。解散专家团队时,需要2/3以上的投票。PEP8013:N/APEP8014:N/APEP8015:Self-organizingPythonteam,thecommitteecanallowthemtoapprovetheirownPEP(PackagingTeam)),CoreDeveloperandContributorPEP8016:N/APEPProcessWorstSummarized(注解):作者自嘲?),ReviewEveryPEPPEP8010:PEP代表,GUIDO是PEP决策的最终权威PEP8011:三巨头和/或工作组?PEP8012:遵循当前的PEP流程。Proposer决定PEP的选题方向。提议者负责收集和综合反馈(来自整个社区)。然后由相关领域的专家汇总所有讨论,并开启为期14天的最终审核,审核结果不再需要社区投票。如果一个PEP争议很大,任何专家成员都可以发起动议否决它(需要2/3票)PEP8013:如果理事会不否决,PEP自动获得批准PEP8014:投票对所有Python用户开放(不仅仅是核心开发人员)。理事会宣布投票是否足以做出决定。它提出了一个决定。如果理事会通过上诉,获得多数票的一方演示PEP8015:委员会在PEP代表(通常来自Python团队)或核心开发人员之间进行投票,需要超过2/3的票数PEP8016:理事会可以直接必要时批准/拒绝PEP,但最好设置流程以避免做出这样的决定(例如,将决策权委托给团队或BDFL代表)核心开发人员提升PEP8010:N/APEP8011:N/APEP8012:核心开发者投票,每个-1算作否决权PEP8014:N/APEP8015:核心开发者投票,需要2/3票PEP8016:核心开发者投票,需要2/3票,理事会有否决权消除PEP8010:N/APEP8011:N/APEP8012:不信任投票,超过2/3票数PEP8013:N/APEP8014:N/APEP8015:实施临时禁止工作组=>移除核心开发者状态PEP8016:指导委员会投票,超过4/5票;不活跃成员没有投票权更新治理模型PEP8010:N/APEP8011:N/APEP8012:N/APEP8013:N/APEP8014:N/APEP8015:委托给核心开发PEP8016:委托给核心开发人员,2/3行为准则(CodeofConduct)PEP8010:行为准则支配所有互动和讨论PEP8011:三巨头必须遵守PSF行为准则PEP8012:依靠现有的PSF行为工作组(名为“版主”inPEP)PEP8013:N/APEP8014:N/APEP8015:RelyonExistingPSFBehaviorWorkingGroupPEP8016:Guidance鼓励委员会设立CoC流程,细节可灵活制定(原文为完了,以下内容由译者补充)名词解释:PEP:全称PythonEnhancementProposals(Python增强提案),目前已有近500个,涵盖了Python功能实现、规范和周边信息等各种内容.本文提出的7个提案都是针对新的治理模式,未来可能会增加这方面的提案。如果你想加深对PEP的理解,了解哪些提案是必读的,可以看我的《学习Python,怎能不懂点PEP呢?》。PSF:全称Python软件基金会(PythonSoftwareFoundation),一个非营利组织,其使命是促进Python社区的发展,负责组织各种社区活动,如开发Python的核心发行版,管理知识产权BDFL:全称是BenevolentDictatorForLife(仁慈的独裁者生命),曾特指GuidovanRossum,谁被赋予绝对的最终决策权。2018年7月12日,他宣布辞去这一职务。本文所有PEP都是关于如何选择新的BDFL以及配套的治理方案,不再指代特定的人。后记:这是我第一次尝试翻译工作,困难真的是知己知彼。然而,当翻译完成后,我得到的甜蜜喜悦真是知己知彼!由于原文大多是极其笼统的短句,而且有很多专有的表达方式,所以我的翻译策略是尽量表达意思。因此,难免会出现翻译错误和与原文有出入的情况。欢迎读者联系我(公众号:蟒猫)交流指正。本文翻译为个人行为,纯属交流学习之用,欢迎转载,但请务必注明出处,切勿用于商业或其他不良用途。----------------本文首发于微信公众号【蟒猫】,后台回复“爱学习”,送20+精选e-免费书籍。
