Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:99073 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 34189 invoked from network); 17 May 2017 14:28:44 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 17 May 2017 14:28:44 -0000 Authentication-Results: pb1.pair.com smtp.mail=sammyk@sammykmedia.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=sammyk@sammykmedia.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain sammykmedia.com designates 74.125.82.48 as permitted sender) X-PHP-List-Original-Sender: sammyk@sammykmedia.com X-Host-Fingerprint: 74.125.82.48 mail-wm0-f48.google.com Received: from [74.125.82.48] ([74.125.82.48:34374] helo=mail-wm0-f48.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id A5/14-21791-B1E5C195 for ; Wed, 17 May 2017 10:28:43 -0400 Received: by mail-wm0-f48.google.com with SMTP id 70so2993906wmq.1 for ; Wed, 17 May 2017 07:28:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sammykmedia-com.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:from:date:message-id:subject:to; bh=ZdZH5Rscl0yBYTXSUh54EKGl6uhuKi8KcCYH/lFN6jg=; b=OJlpf47uLNasjJEiiabTAF8xv/Nzu8PmIDlP6d7Feb87OmBWuPWq+BwRBhC11aFiJq vKnKHghCbq8p5qhVLraK217FM+1zjkeWVG1BwdQ4FRh3UVTzM1r5ywlwlCzqDn/ZCh19 vbVsc5rsG6Y/78zts/5n1jhm2POv3HPCZAVM4gaq7VU5jSyx5s6Kyu6N34W0i87SL3ef vjKnzI2Pb73UWXM7ktp9JiAHGT3s7LPkcBOicIFfh221ICw3LaIVdCS7TNkDS0oZcogn fhucvR9wyuzAWyw/q6ZYhEkhgtmxbMYxlajeoN9SuBBjcNydqWGCE1dHr6hP8XaccJAO tZ9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=ZdZH5Rscl0yBYTXSUh54EKGl6uhuKi8KcCYH/lFN6jg=; b=VuhPwiswmXJHMuDaBuU7o1kLI3r/7jPVxViuh7R0WqDauyhe0YtS6hypberTiFc4a9 5a1nMcKtiuQWW3uyrZNZupaWGj+K9iBOER1Dp3GdlGFs7DFGR5uvpslS3dhJxr33imOd FA4p54JpCKEJ01jJyIw4htoBt6Qn5afC25B4SuQr9MwnK0/qhPZxEWFSXdiauQNBvG2K EcadF+9GIF72T2eheK80fY+WspRj4iv8k+lJsQ2TXu7Z0aFdm+A3HUiHwbhF0iDMRVwl /Q39GR0OM5I74PsDYzs/l7Hajji0lExyME/OoSwdCU9AqkRQApja2YgoWWiHIYrIWmPn GUhQ== X-Gm-Message-State: AODbwcBGFGzaDWVDs3E0EBWYX710PWRKvfTvKgkunivu960rbVodKeNL 3hHs32zE8eNmx1jGbshXGuVrLHkOWr3VJnA= X-Received: by 10.28.211.9 with SMTP id k9mr11311543wmg.51.1495031320137; Wed, 17 May 2017 07:28:40 -0700 (PDT) MIME-Version: 1.0 Sender: sammyk@sammykmedia.com Received: by 10.223.154.199 with HTTP; Wed, 17 May 2017 07:28:39 -0700 (PDT) X-Originating-IP: [198.0.240.198] Date: Wed, 17 May 2017 09:28:39 -0500 X-Google-Sender-Auth: BXo6YCeHaNXddZbddiovSvQ2Axc Message-ID: To: PHP Internals Content-Type: multipart/alternative; boundary="001a1146edfac3e96b054fb91a96" Subject: Implement formal process for run-tests.php refactor From: me@sammyk.me (Sammy Kaye Powers) --001a1146edfac3e96b054fb91a96 Content-Type: text/plain; charset="UTF-8" Hello internals folks! As you may already know, run-tests.php is an old legacy app that is in serious need of a refactor. Some things that are badly needed amongst other things are: - Better maintainability - Unit tests - Concurrency - Prettier output I have seen numerous attempts of rewriting run-tests from scratch after some rallying at a UG or PHP conference only to see the initial excitement die off. The general advice for refactoring legacy apps is to not start with a clean slate, rather refactor a little bit at a time. We should treat run-tests as we would any other legacy app. We need a structured process to allow the run-tests app to get refactored a little bit at a time. I propose the following (open to discussion of course). 1) Create a new run-tests karma with access to php-src.git/run-tests.php (and hopefully the soon-to-be created php-src.git/run-tests folder). 2) Elect 2-3 people and grant the new run-tests karma to them. They will champion the PR's that incrementally improve run-tests. 3) The new run-tests champions (we'll call them "champions" because, why not?) will run the entire test suite ensuring that the refactor didn't inadvertently break the functionality and if all good, merge. (We might be able to get a solid Docker container or an automated CI process for an end-to-end test - thoughts?) 4) The run-tests champions could be elected for a year-long term with the possibility of being reelected for another year commitment. This would help prevent run-test champion drop-off (because sometimes, life happens). Once we get a process in place, I've drafted up a possible proposal of next steps to get run-tests refactoring kicked off: https://github.com/SammyK/run-tests#proposed-refactoring-path It's time to circle the wagons on run-tests! :) Thanks, Sammy Kaye Powers sammyk.me 230 S Clark St #194 Chicago, IL 60604 --001a1146edfac3e96b054fb91a96--