Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:113866 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 81390 invoked from network); 30 Mar 2021 13:58:42 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 30 Mar 2021 13:58:42 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 7B2421804D0 for ; Tue, 30 Mar 2021 06:55:59 -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=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 30 Mar 2021 06:55:59 -0700 (PDT) Received: by mail-ej1-f51.google.com with SMTP id kt15so24936837ejb.12 for ; Tue, 30 Mar 2021 06:55:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qAFW1wuop+O2Dg3XlgfQWI1fJeT+svRfrA2duNtcL6M=; b=WeAfxRYJMx5bqikqLh6qD8dUGna9rqZo/XRQA0aWagg+ppWsmsMUfewRHwiGGCOcDA QiIR+KXb9CBmgbvcbKZ8Z/LhhgOycGeEfGmHMWXQmi94E0TCGEPdNMLz5EFPPUVIeCT2 UO8penIDZKFrbtrYpVGAAPfdo5x5i9j9DPetsNA7IStf7OIuCpNju8NQCA/ba6AFxj+E +HA2bM7VG/Z++8TTEH8VmSr5JQBT7jCYQjcpT/XU0vipK9nLVzixOgmS3duarinGzrJf iB1UqXwHIM0W/OMH03wDedANnbZjZLu8XB5mJrUBFAwXDnEgrlDtQ+Pt6SFC22EPNqFE tsHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qAFW1wuop+O2Dg3XlgfQWI1fJeT+svRfrA2duNtcL6M=; b=nI0dY5J7mt1O8FlT6UQnklAEinSjVhszFJJ7dtJo4aQMz6ReD5usviSfdX07mVh7WJ 8qWoTAHlYy5AzxXX01NIiO8OCHs1aikIVoMEobPyzsgBUEKa5S6SHd3JbfOZTwB5UsHO pb1IviyC39sGtZrzxJA4It2hln4OaR4K79oii1HAH1NHYYDJiC52MM+vOjud6kV9rcYl a/bgF6gJwKlcjgYq1H8psu4vkLiMAGvKN0ZWs9sPigpKjxI+YAPNCyg1fezWxec9dW2y hcNqGgSAO8S0fBWTGnIl2JYihpUR5uUAl/TjKsmP1DxwAZO9uQzY5ODEoxZqvoBnVJto YS/Q== X-Gm-Message-State: AOAM531fxL/PQWrJsWSEi1wn9ZnuEq0CXP0m4Pvlv74jdGKzDIdU8zAZ IxiIxHm/J3m5gJNNKRdDI6r0B86uxb7Rhac1ce8= X-Google-Smtp-Source: ABdhPJzAW8KxvygLup4/+PrIXdnYARnkPRYnpbHAxp56EapJ5YLB38FcBbOKo74Xnb24Pnm21vWZJH+1KwQEei2BFQU= X-Received: by 2002:a17:906:fcd2:: with SMTP id qx18mr32474302ejb.327.1617112557904; Tue, 30 Mar 2021 06:55:57 -0700 (PDT) MIME-Version: 1.0 References: <6c3d7c13-d7cd-c1cc-5876-2b8c200a017c@gmail.com> In-Reply-To: Date: Tue, 30 Mar 2021 14:55:46 +0100 Message-ID: To: Mike Schinkel Cc: Jakub Zelenka , PHP Internals Content-Type: multipart/alternative; boundary="00000000000093671e05bec15bc5" Subject: Re: [PHP-DEV] Changes to Git commit workflow From: george.banyard@gmail.com ("G. P. B.") --00000000000093671e05bec15bc5 Content-Type: text/plain; charset="UTF-8" On Tue, 30 Mar 2021 at 14:34, Mike Schinkel wrote: > > > > On Mar 30, 2021, at 8:29 AM, Jakub Zelenka wrote: > > > > > > > > On Tue, Mar 30, 2021 at 1:21 PM Jakub Zelenka bukka@php.net>> wrote: > > > > > > On Tue, Mar 30, 2021 at 12:47 PM Mike Schinkel > wrote: > > > > > > > On Mar 30, 2021, at 5:51 AM, Derick Rethans derick@php.net>> wrote: > > > > > > On 30 March 2021 10:43:41 BST, Max Semenik > wrote: > > >> On Tue, Mar 30, 2021 at 3:29 AM Stanislav Malyshev > > >> > > > >> wrote: > > >> > > >>> Hi! > > >>> > > >>> On 3/29/21 4:49 AM, Max Semenik wrote: > > >>>> Would it also make sense if direct pushes (bypassing the pull > > >> requests > > >>>> system) were disallowed completely? I can see multiple problems > > >> with > > >>> direct > > >>>> pushes: > > >>> > > >>> This is possible. In fact, there are Git bots that make it easier > > >> (e.g. > > >>> prow: https://github.com/kubernetes/test-infra/tree/master/prow < > https://github.com/kubernetes/test-infra/tree/master/prow>) - I > > >> am > > >>> using such system over Github at my $DAYJOB and it's generally > > >> working > > >>> well. It even has its own built-in karma-like system. However, it has > > >>> some downsides, as the experience shows: > > >>> > > >>> 1. Quick management patches, typofixes, release management patches, > > >> etc. > > >>> become more high friction processes. > > >>> 2. Setup and configuration of such system involves some time > > >> investment > > >>> by some knowledgeable people, and it has certain learning curve > > >> (though > > >>> once it is set up, it's pretty easy to use). > > >>> 3. Somebody knowledgeable needs to maintain it, as periodically bots > > >> can > > >>> get stuck and need a gentle kick to continue. > > >>> 4. CI needs to be very stable and clean for having CI pass as gateway > > >> to > > >>> merge, otherwise a flaky test can block all work in the repo for > > >> days. > > >>> 5. Managing multiple active branches can be a pain. > > >>> > > >>> None of these are critical, and we could start small and build it > > >>> incrementally, of course. > > >>> > > >> > > >> We don't even have to use bots - GitHub allows you to require passing > > >> CI > > >> and/or approving reviews to merge. > > > > > > How well does that work for merging up fixes from an older bug fix > branch up through PHP 7.4, PHP 8.0, and then into master? > > > > > > Or for things like new timezone definitions, which is now automated, > and would then require a pointless PR? > > > > Accepting some PRs can be automated. Repos can be protects on Github > via per-branch rules[1] where permissions and requirements can be assigned. > > > > PRs are actually a foundational component of GitOps[2] which is an > emerging best practice for managing infrastructure. It was initially for > Kubernetes deployments but has become recognized as being beneficial[3] for > automating software CI/CD[4] and other workflows. > > > > > > The problem is that this is not gonna easily work with the current PHP > workflow and merging changes up. For example currently if you merge PR to > PHP-7.4 and then you merge PHP-7.4 to PHP-8.0, you get most of the time > conflict in NEWS that needs to be manually resolved. We would have to make > the bot that is able to resolve those conflicts or come up with a different > way how to handle NEWS. However sometimes there are code conflicts as well > which the bot cannot resolve. I think the only solution would be to stop > merging the branches up, do PR's always against master and then just > cherry-pick the commit to lower branches (it could be potentially done by > bot automatically in some / most cases) but again that would require some > changes in the NEWS handling and possibly other things. > > > > > > Actually if we needed to do cherry-pick that conflicts, we would still > need PR's for lower branches like having multiple PR's for the same thing > that requires conflicting implementation (cannot be cherry-picked by bot). > > > > Think having everything going through the PR's has certainly benefit as > we could require reviews for each PR which would be certainly good for > security. A similar worklfow is done in OpenSSL for example except it's a > bit different flow there because there are not too many fixes and changes > in lower branches. > > > > When you speak of NEWS, do you mean this? > > https://github.com/php/web-news > > -Mike > No he is talking about the NEWS file at the root of every branch which is the changelog for what bugfixes have been applied to the branch. Regards, George P. Banyard --00000000000093671e05bec15bc5--