Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:120167 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 63487 invoked from network); 1 May 2023 11:20:59 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 1 May 2023 11:20:59 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id CF6BE180044 for ; Mon, 1 May 2023 04:20:58 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.5 required=5.0 tests=BAYES_40, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 1 May 2023 04:20:58 -0700 (PDT) Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-50b37f3e664so3447428a12.1 for ; Mon, 01 May 2023 04:20:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682940057; x=1685532057; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=RvzDbmyHsjZHXMuPOEj3ysW86grScnWOSNPanrzLvKc=; b=mGLtQ8f4VJM49RFzKCWHkcy5mQQfB5KTh7YtdJHAaQDaHE5kQbrrEw0Hme6pL2N0X/ dF/uojIyjXvYKArrxxLp0AK81vhuPhVr2TdqVDSeD82VHY2vjpxnG4bDphWktnEBm4qy S/3wOnu4OxJvLMzpyx0UZqLiNUgkMR5kJrXy8LG1oOIzHAJz8RXXSMGnIXJZ71godRcl fMLVc7ordxZXO3lBocD5hQKdJ0zDhf7PPQbjJ0AoB4DjM9jQ9+3FKIve76Z69MQUfhWb OhzWsoC5LU/kV/owx8Ncz5b5FIscIJBNoKC1kTeQcGVKjwX76DgxcNsh3zXg7XnsIfH+ LH1Q== X-Gm-Message-State: AC+VfDwGsqU9FJKX400Ha6kFkXvA+vk6x2E4HZ5Y15wYjkGopb8JMthY 6HQtXhDw/Thf9AOtc822K3rE2xOIeked/ujM5R0V78RarKo= X-Google-Smtp-Source: ACHHUZ6gkJfHi62PqhncOokO0sJUFLogSfrPuR9Wzqqyobx4NQlsW5Hkxz2/m8qONBaDlqaKoTmW372/Vu74kgwhrU0= X-Received: by 2002:a05:6402:785:b0:506:70c9:b870 with SMTP id d5-20020a056402078500b0050670c9b870mr5662571edy.3.1682940056748; Mon, 01 May 2023 04:20:56 -0700 (PDT) MIME-Version: 1.0 Date: Mon, 1 May 2023 12:20:45 +0100 Message-ID: To: PHP internals list Content-Type: multipart/alternative; boundary="00000000000042c86405faa004bc" Subject: Current RFC process and project decisions From: bukka@php.net (Jakub Zelenka) --00000000000042c86405faa004bc Content-Type: text/plain; charset="UTF-8" Hi, First of all the intention of this email is to try to clarify and later better define the current RFC process and project decision processes. The ultimate goal is to have a single document that would define project bylaws and except other things be a guide for new contributors to quickly get an idea how the project decisions are done. Currently the RFC voting in defined in [1]. This defines all necessary details about a discussion, proposing changes and voting. However it doesn't say anything about the actual proposals so it can be more or less anything impacting PHP. Also it doesn't say anything about implications of the accepting of the idea (e.g. if it needs be merged) or when it should be used. There is another accepted RFC about release process [2] that defines better for what RFC should be used. Specifically it states that it should be used for the features in the following sentence: > New features or additions to the core should go through the RFC process. It is important to note that the RFC specifically states "SHOULD" and not "MUST" which is something that has been probably applied to many smaller features that didn't go through RFC over the years. It is not exactly clear if this is actually allowed as there is a conflicting note regarding release cycle that kind of says that the feature can get to the next release as long as it gets accepted: > The shorter release cycle also ensures that a given feature can get into the next release, as long as the RFC has been accepted. This could be taken that only RFC accepted feature can go to the next release which kind of conflict with the "SHOULD" above. As you can see it's pretty vague and not exactly something that has been really accepted in practice. The fact is that there is also no definition of the feature so if we took it to the extreme, it could mean any technical change would also need an RFC. I think we all agree that would be really inconvenient so that's something that we should probably better clarify. We then have rules for RMs but they are mainly based around releases. I think it would be good to define that part as well but will leave it aside for now as it is much clearer and less impacting the core development. The only important thing to note is that RM decides about bugs going to the release. It seems that in the current definition, the RFC is just for blocking rejected features to get to the next release rather than requiring accepted features to be in the next release. It means if the RFC is accepted, it can get to the next release but it does not mean that it must get to the next release. Obviously if RFC is rejected, it means that it cannot get to the next release. The implication of that is that to fully accept the feature, it requires someone to merge it and no one to revert it... It means it requires some sort of consensus between core developers or at least no objections from some core developers. This is largely undefined as almost always the core developers would follow the decision in RFC but technically there is nothing in our process that would require them to do so. In terms of conflicts between developers, the RFC does not even have much meaning because of the above. It could be used just as some sort of poll and honour the decision as such but it has no deciding factor in it. This is at least how I understand the linked RFCs so please comment if you think that the analysis is incorrect or I missed anything. I think it would be good to define this somewhere so we can potentially make tweaks into it in the future. The idea is to maybe create a single document in the wiki collecting both linked RFCs with extended clarifications and maybe mirror it in git so the future proposal are easier to do. Thoughts? [1] https://wiki.php.net/rfc/voting [2] https://wiki.php.net/rfc/releaseprocess Cheers Jakub --00000000000042c86405faa004bc--