到目前为止,如果您是Ruby编程社区的一员,您可能已经听说过将RuboCop重命名的提议以及随之而来的不愉快事件。我真的很难为这篇文章想出一个名字,因为我有很多话题想要触及(例如,OSS管理的负担,尊重和遵守曾经定义Ruby社区的规范,创造一个安全的协作环境,关于名字的最终决定,等等),但我现在的时间相当有限。这个通用标题已经是我能做的最好的了,但是我希望你能原谅我,把重点放在内容上。再一次提醒我命名是(非常)困难的。
我真的不想重复/复述所发生的一切。GitHub问题和周围的Twitter对话应该会给你带来一个好消息。还有一篇很好的摘要,作者是蒂姆·莱利(Tim Riley),你可以细读。你现在重读这篇文章的目的是为这个话题提供一些总结,并为我们提供一条前进的道路。
嗯,可以肯定地说,昨天我感到相当痛苦和愤怒,因为我以为对我最初关于这个主题的信息缺乏回应意味着建议重新命名该项目的问题已经解决。1然后我在周日早上突然醒来,发现Twitter和GitHub上有很多消息,其中一些人(主观上)对我有攻击性和敌意。
在没有与我们的团队讨论任何细节的情况下,匆忙创建了两个RuboCop分支,这让我相当失望。还有一些关于我的领导风格和我逃避责任的笼统嘲讽言论,这肯定激怒了我。特别是,我想把政治排除在RuboCop之外的愿望产生了很多批评,最重要的是,我已经度过了非常糟糕的一周,看起来事情肯定会变得更糟。
我花了一整天的时间思考我到底应该如何处理这件事,同时,我对通过各种渠道获得的惊人数量的支持感到非常惊喜。然而,令我失望的是,一些人在试图为我辩护的同时,采取了不尊重和咄咄逼人的语气。那不是红宝石的方式!不管情况如何,不管我们有什么分歧,我都坚信我们应该始终以体谅、同情和尊重的态度对待彼此。结果,我完成了对RuboCop行为准则的逾期采纳,不得不第一次锁定并主持GitHub对话(或者至少我觉得这是第一次)。
我个人向所有在GitHub和各种社交媒体上经历过任何尖酸刻薄和敌意的人道歉。我绝对不会批准或容忍我以任何身份参与的任何项目中的这种行为。一如既往,我对Ruby社区寄予厚望,希望我们能做得更好。尽管如此,Ruby的戏剧往往掩盖了友善、友好、合作和理解的精神。
显然我自己可以做得更好。尽管我尽了最大努力,但我还是用讽刺或讽刺的方式回应了推特上的几句尖刻的言论。有人指责我寻求同情和廉价的宣传,但如果你真的了解我,你就会知道我脾气很暴躁,在我认为是人身攻击的情况下,我需要付出很大努力才能克制自己的反应。毕竟,我只是一个人,我和其他人一样,也有性格缺陷。
RuboCop将继续使用它的名字。我已经分享了我关于这个问题的论点,我在此不再重复了。RuboCop的核心团队支持这一决定,我们都认为这是总体上最好的行动方针。作为管家,我们的职责之一就是权衡每一项建议的利弊,当我们提出理想的解决方案时,我们会做出妥协,这会让每个人都高兴,不要轻描淡写。考虑到在8年的时间里,我们甚至不能在默认配置等基本问题上达成普遍共识,人们应该明白,找到每个人都喜欢的解决方案几乎是不可能的。这没什么大不了的。
也就是说,我们还致力于创造一个每个人都感到舒适的安全协作环境。我觉得Zee Spencer提出的创建友好的、高度兼容的RuboCop fork(称为rbhint)的方法以最小的破坏性解决了giHub标签中列出的问题。以下是Zee对hiside a的简短描述:“我用我的叉子rbhint的目标不是取代RuboCop,而是做工作,根据美国的现实重新构建这个项目。就像Ubuntudoesn不会取代Debian一样,只是为了家庭使用而重新架构它。
这对我来说当然没问题,我会鼓励和他有相同观点的人来帮助他,就当这是我对他努力的官方认可吧。
我还想提醒大家RuboCop的兄弟项目Standard,它已经存在很长一段时间了。虽然它与RuboCop自己的哲学略有不同,但它的名字是中性的(标准?)。我认为对于那些对代码样式没有强烈偏好的人来说,这是一个很好的选择,他们宁愿让工具为他们挑选一些可靠的默认值。
就我而言,项目名称的话题到这里就结束了,我希望每个人都会尊重我们(RuboCop的团队)的决定,让我们专注于为您交付更好的工具。我也希望我们友好和乐于助人的RuboCop可以帮助恢复人们对“警察”这个词的一些好感。
这并不是什么新鲜事-OSS开发人员(特别是那些参与更大项目的开发人员)面临着巨大的压力,他们的工作几乎得不到赏识和支持,(最常见的)最终结果是大量的倦怠和沮丧。这已经不是第一次有围绕RuboCop的恶毒交锋和那些不同意我管理方式的人对我进行人身攻击了。因此,RuboCop逐渐成为我最不喜欢的项目之一,而当我在2012年开始工作时,RuboCop一直是我最喜欢的项目。我希望每个人都能理解OSS是爱的产物,如果你设法将这种爱从一个项目中抽走,你就是在扼杀它的本质。
重读里奇·希基的文章“开源不是关于你”很有趣。当这篇文章第一次发表时,我觉得Rich有点太消极了,对他对OSS开发的看法有点失望,但两年后,我肯定更同情他的观点。OSS世界中有一种强烈的权利文化,从长远来看,这是非常有害的,因为它所做的一切都会驱使人们远离他们的项目。
RuboCop的下载量接近1亿次,在过去的8年里,我很容易就把2000多个小时的时间花在了这个项目上。我只能猜测其他核心贡献者是如何花费更多时间的,但可以肯定的是,我们看到的是10000左右的时间。3 RuboCop仍然有名义上的主要企业赞助商,考虑到我和其他主要贡献者一直在这个项目上投入的时间,它得到的捐款只是沧海一粟。然而,人们对RuboCop的期望一直在增长(例如,人们希望更加关注向后兼容性,更多的配置灵活性,更好的性能)。你不需要是一个数学天才就能意识到这是不可持续的,人们应该调整他们的期望或他们的支持水平(代码/文档贡献,捐款等)。
我觉得奇怪和可悲的是,我们的大多数赞助商都是个人(我们很感谢他们的支持!),然而他们工作的公司却是第一批从工具中受益的人,这些工具赋予开发人员更高的生产力。他们从这些工具中免费受益。这并不是RuboCop所特有的问题,它已经广为人知一段时间了,但无论如何这都是一个超级痛苦的问题。为什么我们不讨论如何解决这个问题,而是更改一个工具的名称?
我从来没有想过我会发现自己置身于一部如此规模的红宝石戏剧的中心,但我们就在这里,我决定最终把这当作一次积极的经历,专注于我学到的所有新东西,以及可以从中学到的东西。不过,我并没有马上做出决定。这就是为什么我很高兴在写这篇文章之前花了一些时间整理我的想法。
今天早些时候,我的一个朋友开玩笑说,成为RuboCop的首席维护者可能是Ruby领域压力最大的OSS“工作”。我非常肯定Matz是我们编程世界中压力最大的工作,但我还是被我朋友的话逗乐了,这句话让我印象深刻。我很同情每一个在皮棉工具上工作的人!
我非常感谢所有表示支持RuboCop的人,特别是我。现在您应该知道了,您是我仍在OSS项目中工作的主要原因。特别感谢RuboCop的AmazingCore团队的关爱和支持!
今天我要告诉你们的就这些。现在是我们回去工作的时候了,让RuboCop 1.0成为现实。我的目标是这周晚些时候发货。
这就是我关闭车票的原因。我回答说,我认为我们不应该重新命名这个项目,我等了一两天,由于没有更多的回复,我认为这就是它。-↩。
当涉及到代码样式时,很多人都有强烈的意见,并会相当激烈地争辩以支持他们的观点。想象一下,在成百上千个这样的讨论中,…。↩。
sloccount工具估计,仅主RuboCop repo的开发就花费了31个人/年,开发成本为4,200,000美元(使用的算法我不太理解)。不管这些估计的准确性如何,这都是一项巨大的努力!↩