Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:95729 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 93019 invoked from network); 7 Sep 2016 10:00:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Sep 2016 10:00:24 -0000 Authentication-Results: pb1.pair.com header.from=rowan.collins@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=rowan.collins@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.82.50 as permitted sender) X-PHP-List-Original-Sender: rowan.collins@gmail.com X-Host-Fingerprint: 74.125.82.50 mail-wm0-f50.google.com Received: from [74.125.82.50] ([74.125.82.50:37286] helo=mail-wm0-f50.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 1D/CB-18051-535EFC75 for ; Wed, 07 Sep 2016 06:00:22 -0400 Received: by mail-wm0-f50.google.com with SMTP id w12so22437359wmf.0 for ; Wed, 07 Sep 2016 03:00:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding; bh=qKxcPMUwsZn6ctGBYyczGmZbBsqar82UnbhSrS37oHg=; b=XQu1BJUFVSn+G3JUFdSQuwx35cGd4eH0H4SLf6mQklNngpuFq+9y+e/VcN6h6FXgT2 jFnXhxwPiTHhmi86Sovp5gykz3BfJjyEqsWEGzkSJutCDleGaIq8txG92MpFbLLcs8Al pZAkcXiRgqYul31JXq46uP8Y/Q3MMr9NqHVkliFRGzGb8GCejiZpXNm1YaqQrNE4eMcF 2Pbrj4Bq73lmZpBhxm6h40tSwc+C5aj44K/u0BCp/ppdTs/pah9vbYSfVvC5ocmpg1ni M/9XIrh8yuO6topU+5pL0pijKpqpIsaThLA1ItG0Og5J5cPeZWbbZHdrla60QKw/mLCl 1aiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=qKxcPMUwsZn6ctGBYyczGmZbBsqar82UnbhSrS37oHg=; b=JTJwbUOB4S/rEyoeSrUt09XATVMlMZppNhtCX3s8IYsuh838cSBZMHCVoleesuIMIe +FYYfVWh4ZdTrsyDhWnJ5rsSYKxTYBQMWjvMiZ6keqktyIaq5C9rhHoRAXZriWw5BLWe LaN/XuhV7xKuUgvAGoSnnFE1vOg/zdtf5DzsERAd5/9g7KSx639VhI/HWo5TF47POf0S GPppLhZHtP8NHgm1jRGyPp5UN2X2Vn/x4z2DqcNj7r/YVGZhjYMjvPlqSO7SnHNwnpZB s/rleWivMi/oAZiTrAqmmvoMOqCUvCGEj9LjxCG5rcMgOwlFpvehb8m2tFFKX4C79seL 32SQ== X-Gm-Message-State: AE9vXwMhJJVlhnZ6osKrzwHec4M77UR/1w+2pZbzoLGPg1TCJNnUFvidPSR9xMnqwRDZZA== X-Received: by 10.194.150.40 with SMTP id uf8mr8133900wjb.119.1473242405185; Wed, 07 Sep 2016 03:00:05 -0700 (PDT) Received: from [192.168.0.98] ([93.188.182.58]) by smtp.gmail.com with ESMTPSA id 12sm14547217wjx.42.2016.09.07.03.00.03 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Sep 2016 03:00:04 -0700 (PDT) To: internals@lists.php.net References: <780c8f3d-bc26-37ff-893d-54be8d438c73@lsces.co.uk> Message-ID: <7ecffe19-f7be-7b51-f952-013812851c2c@gmail.com> Date: Wed, 7 Sep 2016 10:58:17 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <780c8f3d-bc26-37ff-893d-54be8d438c73@lsces.co.uk> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC] Deprecate PEAR/PECL & Replace with composer/pickle From: rowan.collins@gmail.com (Rowan Collins) On 07/09/2016 10:33, Lester Caine wrote: > This does highlight the different approach to handling things in a > production environment over a development one. The problems I have seen > IS when composer.lock gets replaced by mistake, or when an update picks > up a change to a package that was not actually the one expected. Running > around then like headless chicks trying to work out what is wrong is > much like the problems when a hosting site simply switches from PHP5.3 > to 5.4 without warning. How is this any different from PEAR, or any other package or dependency management system? Managing the versions of shared libraries is a notoriously difficult problem - ever hear of "DLL hell"? If anything, the Composer approach is simpler to deploy, because you can create a tar ball of the whole project with a populated vendor directory, and copy it straight to production. (I believe that's possible with PEAR, too, but not when using the standard shared-library configuration.) Or you can copy the composer.lock file (probably by committing to version control) and run "composer install" and get the same versions you had before without needing to manually go through a deployment checklist. I think the bigger difference is in the style - and number - of dependencies people are pulling in. PEAR packages, in my experience, have a very strict compatibility policy, and most are at this point very stable simply because they're not at the cutting edge of development. So setting up a production server with a slightly different version of Cache_Lite is unlikely to cause that many problems. The problems come when you're composing your application out of many dozens of small libraries, all actively developed, and some not being as careful as they should with stability. That's not Composer's fault, and if running your own PEAR channel was still common, you'd get the same thing. Regards, -- Rowan Collins [IMSoP]