Re: dependencies and applications

From: Date: Thu, 21 Aug 2003 17:59:41 +0000
Subject: Re: dependencies and applications
References: 1 2 3  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-20321@lists.php.net to get a copy of this message
It seems to me that this is the best solution: PEAR 1.x (3 or 4, it should be soon IMO) the following happens: # pear install MDB This goes into the current MDB place aswell as MDB/1.0/ # pear install MDB2 This goes *only* into MDB/2.0/ This then has the following affects: Note that when I say current version I don't mean current at any given moment in time, I mean at this moment in time, so any package currently in PEAR being used. * BC is fully kept till we want to break it (this could even be left indefinately if you see fit pierre!) * Only one "extraneous" copy of the package need be kept (in that current version goes into current place and new place) * New scripts can start using MDB/1.0/ or MDB/2.0/ as appropriate * By adopting this as early as possible, we ensure the longest possible migration period * When we eventually move to PEAR 2.0 and break BC we can still do the E_USER_NOTICE as suggested * All this can be achieved in the package.xml... theres no need to work anything in to PEAR... check this out: For Current version we have: <filelist>
    <!-- For Current Directory Structure -->
    <dir name="/" baseinstalldir="PEAR">
        <file role="php">Info.php</file>
    </dir>
    <dir name="/tests">
        <file role="php">pear_info.php</file>
    </dir>
    <!-- New Directory Structure -->
    <dir name="/1.0">
        <file role="php">Info.php</file>
    </dir>
    <dir name="/1.0/tests">
        <file role="php">pear_info.php</file>
    </dir>
</filelist> For the new major version we have: <filelist>
    <!-- New Directory Structure *only* -->
    <dir name="/" baseinstalldir="PEAR/2.0">
        <file role="php">Info.php</file>
    </dir>
    <dir name="/tests">
        <file role="php">pear_info.php</file>
    </dir>
</filelist> Because we've been using MDB as the example in all this I think something has been overlooked, all packages in a given category will go into the same 1.0 and 2.0 folder, for example, PEAR_Info 2.0 and PEAR 2.0 will both be in PEAR/2.0/ - this means that we can even have PEAR 1.0 and 2.0 installed (what if you use PEAR_Info that was created before PEAR 2.0 then it might need some stuff in 1.0, this is something we *do* need. Think PEAR_Error also) Just tossing this into the air. This *really* seems like the least messy, easily implementable (its all on the individual package developers, and if they don't publish a new version of something by PEAR 2.0 perhaps it should be moved to siberia anyways), backwards and forwards compatible solution with the most amount of migration time. - Davey

« previous php.pear.dev (#20321) next »