On Mon, Mar 24, 2008 at 6:05 PM, Steph Fox <[EMAIL PROTECTED]> wrote:
> >> We already have three sets of rules for that (PEAR rules, php-src rules, > >> version_compare() rules). Basically if version_compare() can deal with > >> it, > >> it's in - I don't see how any other approach can be justified, since it > >> may > >> mean messing up someone's long-adopted system. > > > > It has nothing to do with version_compare, absolutely nothing. What > > I'm saying is only what PEAR already does successfully since years. It > > works very well, it is clear and does not allow some random confusing > > versions like 0.1.0-stable. > > Neither does version_compare(). The only problem I've found with it is that > it doesn't recognize 1.0.0 and 1.0 as the same value, That's a know issue and that's also why we recommend to use the x.y.z form and not the x.y short version. > but that's only a > problem if you change existing patterns. (Bear in mind that there are > existing patterns for everything that ever had a PECL release, which should > be honoured if the 'pecl' command is to keep working.) Also, I've found > nothing in PECL that deems itself 'stable' at 0.1.0, so I think that's a bit > of a red herring. People seem to have been very good about that on the > whole. Yes, it is what we call the common sense. However it would be even better to document this common sense so packager (linux distros), new developers and users will know it. > OK, here's a plan. How about we allow 'core' as a version tag (for use in > MINFO and RC stuff only - package.xml obviously won't use it, and PECL > package releases shouldn't either). So you'd have a version string like > '1.5.0-core' in phpinfo() and in the .dll for core extensions, and in both > cases the PHP version information is also available. A $Revision or $Id > string in MINFO would also be useful in core extensions, purely from the > bug-tracking PoV. > This way you can easily see 1) the package release version, 2) whether or > not it ships with PHP (and which version), and 3) when the code was last > updated. We also avoid Johannes' problem of needing PECL release packages in > a PHP release at a time when this isn't an option. It may do it. $Revision will still be there (as almost every extension provides it) but it is not very useful (see previous mails). As a summay, we have the following cases: 1. a PECL package is now in core and will be maintained only there. The PECL homepage has to say it 2. a PECL package is now in core and will still be maintained in PECL. For each PHP releases, a PECL release could be done as well so the versions can be matched 3. a PECL package is now in core and will still be maintained in PECL. Core and PECL has two completely different roadmaps, I have no idea how to actually solve this case :) > We also avoid Johannes' problem of needing PECL release packages in > a PHP release at a time when this isn't an option. About merging a PECL release in a PHP release at packaging time (packaging PHP release), if it is possible to detect whether we are building an extension inside php-src or using phpize (via pecl or manually) then it would be possible to add the "-core" postfix via a simple #ifdef (I'll love to do it for zip). > > Well, if a package has not been touched, it won't be built and the old > > dll will be kept no? > > No. We have new PHP versions every now and again... I obviously meant to do not build it again for a given PHP version. > >> These aren't necessarily > >> stable, but that's a whole separate issue... we need a way to clearly > >> mark > >> orphaned packages, both for pear/pyrus and for pecl.php.net. > > > > PEAR already has a nice system for that, I think we can use it as it > > is now. It has been proven to work very well since years. > > Feel free to adapt it to PECL :) That's what I partially did earlier (x.y.z+1 , x.y+1.z, x+1.y.z). I'll add the relevant part to the RFC and merge the points we already agreed on. > > It is a non issue as the versions available in the dllinfo is not that > > useful. But to apply a patch to a set of random branches is not really > > a good idea even if it works for many extensions. > > I'm not 'applying a patch to a set of random branches'.... tsk! For example HEAD can be a random branch as well. It was not badly meant but only a possible source of errors/confusions. > > Yes, that's a real problem in PECL. One cause was to move dead > > extensions from php-src to pecl/ instead of a orphaned repository. It > > also affects only CVS users as long as these packages do not have any > > pecl.php.net entry (without releases for example). What would be the > > best way to deal with dead or orphaned extensions? A separate > > extensions for dead extensions and add a file "REAME.ORPHANED" for the > > orphaned extension? > > I think just ORPHANED, like we already have CREDITS and EXPERIMENTAL. > (Elizabeth will disagree - has already - but I really don't see a better way > of approaching this.) ORPHANED may do it as well. > > That brings me to the next problem (we can discuss it in a separate > > RFC :), but for the record: > > - dead extension: useless extension like php4 dom or axis (not in pecl > > anymore) > > - orphaned extension: could still be useful but no active maintainer > > (for example event) > > The problem there is that it's not always possible to know the difference. > How do we know if an extension is 'dead', what are the criteria for that? There is many obvious cases: - a given extension is hosted somewhere else - the service used or targeted by the extension does not exist anymore - the extension is superseded by core features (php4 dom for example) It has to be discussed on a case by case basis anyway but for the vast majority, it is rather obvious. > And should they be removed? (My instinct says 'yes' but thousands may > disagree with me.) Also, who gets to make that decision? Having the code still readable somewhere is a good thing. We can simply move them in pecldeadext repository. Cheers, -- Pierre http://blog.thepimp.net | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php