Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:113861 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 61232 invoked from network); 30 Mar 2021 11:49:38 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 30 Mar 2021 11:49:38 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 02FBD180504 for ; Tue, 30 Mar 2021 04:46:54 -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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, SPF_HELO_NONE,SPF_NONE autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from mail-qk1-f194.google.com (mail-qk1-f194.google.com [209.85.222.194]) (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 04:46:53 -0700 (PDT) Received: by mail-qk1-f194.google.com with SMTP id g20so15508812qkk.1 for ; Tue, 30 Mar 2021 04:46:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=newclarity-net.20150623.gappssmtp.com; s=20150623; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=ZH7R0RUR9gQmedcswGHjrXU+tvP1aFnwggqNApmTm44=; b=dBFnqn4iD/oBd+rr6+UqfG5jVXwYARlg7TmAeE553l03TAVMZcUAjEUyN/9yGq3Kar vG04myB9tdj6SDOhxML6IVr3rm9azcQvC0QjIWuIu+zv6btFV+k0ovYRKcTNO2TDo3w5 LW1otBrPjVcuvgJb4T24eSPg82sWUlZFuAetmXGz8BdPw1lyNWLJ+O7tQBQ3MpatxgYE jCaZAWfyuPn+1BFPLrjOBDOKPDDZGJs2R81aeIdKrUUR5w56l8MS4q1HUlO3iI1iKMc2 uayaLVJXA8A6eqaC462eaFWMD7t/vamfk9KJfZNDezSswReNbThQMskCEqcjvx4w1Wwz Y1nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=ZH7R0RUR9gQmedcswGHjrXU+tvP1aFnwggqNApmTm44=; b=iT/sPPIQtBIQLKNhYkEfmOQ4iJRdXLVzCDmVvYRyynIw48olgzTEXCiUl568Cug0zi TuIxQYA27lmRTrCZ0aqaIGUDm8/QsoZCSGEKil4YBFv4kJrT2w4PkgJeFBsu8Xu4UPbv eW09VPcp42sIg3/PK+SeYakVV9A12ElTo6VpMBBvzlgXKNSZWQ2uW7ncdNTT4vULMmNh osKwGnAZNri8DtTBIqop9RAoj3W1ATFK/2jIOXi9LewC1Od3kuzTc4bB55pDgEMIDzRr wKP5ql8hGw/5jwhARjkoJzoAoeXvmh+6dq3X/fUjhUaJbjLFqMYN5zNTfJiddWjZivSh 6DXw== X-Gm-Message-State: AOAM531kKb98bf3rgoIzUb3hbqf5EFLCAQ7sA6NHYNJs8CwcVHhA02qS Z4AlUxlPoySztH5Gw90B97kC6w== X-Google-Smtp-Source: ABdhPJwg2D7O8H5TE3tmkTov+Lh5Zs/XeXv+qa3wm1cbGzmLSZjiIaArjFwHCeEbPPl4eki41UTPWA== X-Received: by 2002:a05:620a:1497:: with SMTP id w23mr21845703qkj.260.1617104811831; Tue, 30 Mar 2021 04:46:51 -0700 (PDT) Received: from [192.168.1.239] (c-24-98-254-8.hsd1.ga.comcast.net. [24.98.254.8]) by smtp.gmail.com with ESMTPSA id a14sm15662904qkc.47.2021.03.30.04.46.49 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Mar 2021 04:46:50 -0700 (PDT) Message-ID: Content-Type: multipart/alternative; boundary="Apple-Mail=_BACC223F-A2DB-450E-B207-AC4449D886AC" Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\)) Date: Tue, 30 Mar 2021 07:46:48 -0400 In-Reply-To: Cc: PHP Internals To: Derick Rethans References: <6c3d7c13-d7cd-c1cc-5876-2b8c200a017c@gmail.com> X-Mailer: Apple Mail (2.3608.120.23.2.4) Subject: Re: [PHP-DEV] Changes to Git commit workflow From: mike@newclarity.net (Mike Schinkel) --Apple-Mail=_BACC223F-A2DB-450E-B207-AC4449D886AC Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Mar 30, 2021, at 5:51 AM, Derick Rethans wrote: >=20 > On 30 March 2021 10:43:41 BST, Max Semenik = wrote: >> On Tue, Mar 30, 2021 at 3:29 AM Stanislav Malyshev >> >> wrote: >>=20 >>> Hi! >>>=20 >>> 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: >>>=20 >>> 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) - 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: >>>=20 >>> 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. >>>=20 >>> None of these are critical, and we could start small and build it >>> incrementally, of course. >>>=20 >>=20 >> We don't even have to use bots - GitHub allows you to require passing >> CI >> and/or approving reviews to merge. >=20 > 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? >=20 > Or for things like new timezone definitions, which is now automated, = and would then require a pointless PR?=20 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. I have actually been developing GitOps pipelines for my current client = since February. If you are unfamiliar with GitOps you might consider reading about from = the links below? =20 ---------------- Also, I just googled and found these, so I cannot endorse them having = never used them, but they apparently show what can be done with GitHub = PR and Merge Automation: =E2=80=94 Bulldozer is an auto-merge bot: https://github.com/palantir/bulldozer = =20 =E2=80=94 BorsNG is a merge bot for GitHub pull requests https://bors.tech/ =E2=80=94 Policy-bot evidentially allows merge rules to be declaratively = specified, a real plus because then everyone who needs to know could see = how the approval process works and who has access, at least by group: https://github.com/palantir/policy-bot = =E2=80=94 Heres a simply article showing how to automate with Javascript = and Probot: = https://freeletics.engineering/2019/09/09/automating-your-github-routine.h= tml = =20 Hope this helps. -Mike [1] = https://docs.github.com/en/github/administering-a-repository/managing-a-br= anch-protection-rule [2] https://www.weave.works/technologies/gitops/ = [3] https://www.gitops.tech/ =20 [4] https://harness.io/blog/devops/what-is-gitops/ = >=20 > It sounds like an annoying hurdle. >=20 > cheers, > Derick >=20 > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: https://www.php.net/unsub.php >=20 --Apple-Mail=_BACC223F-A2DB-450E-B207-AC4449D886AC--