Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:104054 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 926 invoked from network); 3 Feb 2019 09:39:08 -0000 Received: from unknown (HELO tbjjbihbhebb.turbo-smtp.net) (199.187.174.11) by pb1.pair.com with SMTP; 3 Feb 2019 09:39:08 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=php.net; s=turbo-smtp; x=1549779582; h=DomainKey-Signature:Received: Received:MIME-Version:References:In-Reply-To:From:Date: Message-ID:Subject:To:Cc:Content-Type; bh=abrEFPkKa+p9+884I/Pxz+ Z8iCY1Nkg0OycRkVUFxl8=; b=fvBEK5OAJMcIO549OEENnQbn+S7NvMxwUVSJAn EjXESUPlixHEwFW/5+k8evVtFlhvJ+4qVlO2An3C5+6lbdl9d0DjTgfEZI7ue7Sf Myosws5P8jKD5tHGG57OL8A6C0X+OGOIx7yl0/6a8GClWUT/IM7a1OLRPT3Ir0R5 aKyPY= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=turbo-smtp; d=php.net; h=Received:Received:X-TurboSMTP-Tracking:X-Gm-Message-State:X-Google-Smtp-Source:X-Received:MIME-Version:References:In-Reply-To:From:Date:X-Gmail-Original-Message-Id:Message-ID:Subject:To:Cc:Content-Type; b=UKnNLiu5NG21wdXMazwxHaRwp9PcBv02jjkUVrHFfIQLrxHSix/wzv6N04brBn nGLCE1b0a7b6fgUbnO0RhzBoplpdtRTRydVUMuy/1BR98xjPKlrlFTOghX8O+iVp KAVH7guKLdV5/C3BVEF849HmXO0SeeeHxTaLK+8MUK8ps=; Received: (qmail 30490 invoked from network); 3 Feb 2019 06:19:41 -0000 Received: X-TurboSMTP-Tracking: 4828667132 X-Gm-Message-State: AHQUAuZs87aZko9Fx+HH5gJX2dd4zF/LFmMPD+Bq2nqsAPXqg5Owjbjb Ge3VRGN0FCYVoi+Q+QsfngrNeKnTtNGZGttrwKE= X-Google-Smtp-Source: AHgI3IZXgtJSIS24T8vCdaKdHwC1wHlKuGbbGIQELZCgs27izHrbaILxZgO9QB7PaRIWVo5MMgL3YVQbxOWTFon/N2U= X-Received: by 2002:aed:22a3:: with SMTP id p32mr2149823qtc.337.1549174780753; Sat, 02 Feb 2019 22:19:40 -0800 (PST) MIME-Version: 1.0 References: <03f401d4b96b$18b9dc60$4a2d9520$@php.net> In-Reply-To: Date: Sun, 3 Feb 2019 08:19:25 +0200 X-Gmail-Original-Message-Id: Message-ID: To: Dan Ackroyd Cc: PHP internals Content-Type: multipart/alternative; boundary="000000000000807e190580f75c2f" Subject: Re: [PHP-DEV] RFC: RFC Workflow & Voting (2019 update) From: zeev@php.net (Zeev Suraski) --000000000000807e190580f75c2f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Feb 1, 2019 at 7:14 PM Dan Ackroyd wrote: > On Thu, 31 Jan 2019 at 13:44, Zeev Suraski wrote: > > > > Without further ado, an RFC that=E2=80=99s attempting to comprehensivel= y solve > many of the issues that have plagued our RFC process since it was hastily > introduced in 2011: > > Hi Zeev, > > Please can you very clearly state what problem you are trying to solve > by changing the rules about who can vote. > > Without presenting the problem, and why your solution is the correct > one, it's not obvious that the change being proposed is either needed > or the right one choice. > Fair enough, I've heard that question from several others. I'll use your email to clarify my motivation for the RFC, primarily on the voting eligibility part - in slightly more detail than my reply to Nikita on the other thread. Beginning with the latter, the reality of things that the Voting RFC of 2011 was written in what was supposed to codify, and also structure a bit more the already existing process of decision making that we had prior to it. The structuring was mainly through the introduction of a voting process, as well as some elements such as a mandatory discussion period. However, it quickly became apparent that this RFC, that was written with a certain 'working knowledge' of what was already happening de-facto, and assuming these would continue - became treated as if it was the U.S. constitution, and whatever wasn't in it - did not exist. Moreover - even elements which were in fact in it (such as the voting eligibility), became ignored - exclusively for the simple reason of the way the Wiki software, used for voting, was implemented. Edge cases came up over the years in all sorts of manners. The most recent edge case which isn't handled by the terse, laconic 2011 Voting RFC is the Abolishing Narrow Margins RFC, which went straight from de-facto hibernation into a "we're about to vote" stage overnight. But there were many others (and yes, one of the common ones was 'how do we choose between 50%+1 and 2/3', but it was by no means the only one). The goal here is to provide clear cut answers to these cases, instead of leaving it up to the RFC author to decide. Over the years, it became clear that RFC authors had not only the ability to decide what goes into the RFC, but to also decide much of the process surrounding the discussion and acceptance of the RFC - filling the major voids that were present in the terse 2011 Voting RFC on demand. In terms of Voting Eligibility, here's what was written in the original RFC= : ---quote--- There's no way around this 'small' issue. Changes made to the PHP language will affect millions of people, and theoretically, each and every one of them should have a say in what we do. For obvious reasons, though, this isn't a practical approach. The proposal here is for two audiences to participate in the voting process= : - People with php.net VCS accounts that have contributed code to PHP: - Representatives from the PHP community, that will be chosen by those with php.net VCS accounts - Lead developers of PHP based projects (frameworks, cms, tools, etc.) - regular participant of internals discussions ---end quote--- Now, there are several things you can tell from the way this topic is treated that are evident from this text. First, that the topic of Voting Eligibility wasn't taken lightly, nor was there any intention to provide a very low bar on who gets to vote. Secondly, which is a lot more unfortunate, it's very terse and laconic - like the rest of the RFC - e.g., when stating how the folks from the the 2nd group of eligible voters will be chosen - even though it's evident that the idea was that they *will* be chosen, in one way or another; Heck, even the first group is open to interpretation from the way it's written (although the intention was clear) - code contributors to PHP - was supposed to mean folks that truly contributed code to PHP, and not every person with a VCS account (it's clearly a subset, even from the poor way it's written). Bear in mind that Pierre Joye, that promoted this RFC - believed that we will be able to figure these parts out as we go along. De-facto, what happened was very different - overnight, because of the way the Wiki software was implemented, anybody with a VCS account became an eligible voter, with the same weight as Rasmus, myself, Nikita, or whomever else. This was never the intention. What was the intention? In a nutshell: - Code contributors to php-src get a vote - Everyone with a VCS account (wider audience) get the ability to choose folks that are beyond the first group, that will also get a vote (with the assumption that the number of folks elected in this way will not be nearly as high as the number of folks with VCS accounts, and in fact, a lot lower than the first group of code contributors - essentially, it was to bring outside voices, but not effectively overtake and marginalize the voice of the code contributors). Regrettably, how that was to take place was left out of that laconic RFC - in the belief that "we'll figure it out". The goal of the voting eligibility section in the updated RFC is to clarify this. It's clear we have more work to do in this front here - but ignoring this elephpant in the room shouldn't be an option anymore. It's just as important, and arguably a lot more important, than the voting thresholds. To me, the two are clearly interlinked, as is the potential question of a quorum. The barrier to obtaining a vote today is ridiculously low. Mostly anybody I spoke with that I shared how easy it was to get a vote that's equal to a person that's been contributing for years and has proven knowledge about PHP for ages - was shocked. And indeed, our system where a person can become an eligible voter almost overnight has no parallels (to the best of my knowledge) in any other major OS project. Virtually all of them are some form of meritocracy, and yes, that's despite all of them having impact on millions of users. The situation where an open source project effects millions of users isn't uncommon - it's standard in virtually all major OS projects - and yet, none of them makes it this easy to have voting rights, literally overnight, and with 100% equivalence to folks who have contributed for years - the way PHP de-facto does. We were *supposed* to be more advanced than other projects, by providing folks that aren't code contributors with a way to also influence votes - and I still think it's worth exploring ways of doing it. But at no point was the intention to lower the bar so much, providing a vote for anybody with a VCS account (which is very, very easy to get) with a vote. This is unfair to ones who actually take the time and effort to work on the project itself. Additionally, giving a vote to members of PHP-Fig is not a good idea > for multiple reasons. > I'm not sold on it being a good idea either, especially seeing the level of controversy it stirred here (by the way - it accounts for most of the controversy on this thread, as far as I can tell - I think that the general idea of voting eligibility was actually supported by many folks replying to this thread, mainly because it's common sense and is present in all other major OS projects). I think we need to either come up with a mechanism - that's reasonably well-defined - to bring the 'voice of the masses' into the voting process, that would not be biased towards one particular group - or we simply stick with the first group only, with the reasonable assumption that they'll factor in what they hear from these masses during the discussion period as they come to vote. That's mostly how all other major OS projects work. Another option might be going back to elements in the 2011 RFC (while clearly clarifying it). Perhaps, defining some sort of a voting/election process where code-contributors can elect non-code-contributors that will also have a vote is a way to go. What I definitely don't want to repeat, though, is having open-ended definitions. I'll reply to more elements in this thread later tonight - had an unusually busy weekend... Zeev --000000000000807e190580f75c2f--