Hi Pierre,
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.
Yes, that's the plan. But, one thing at a time...
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).
I know, but it gives a *bit* of a clue in what would otherwise be a void.
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
This doesn't make a lot of sense to me - if they're symlinked, changes made
in php-src ext/whatever are really going into PECL CVS. There's no reason
there couldn't be a PECL release of a symlinked core package, either (in
fact pecl/hash should probably have one following Solar Designer's patch).
Or do you mean non-symlinked packages? If so, are there any PECL packages
currently in core that are in this situation?
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
This would be the ideal scenario all round, but enforcing it may be
problematic!
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 :)
Isn't that what CVS branches are for?
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).
Cool :) For the RC stuff I just checked whether the path to the extension
src included 'pecl' or not.
> 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.
It doesn't seem to care about mtime anyway, so I was wrong too:
http://cvs.php.net/viewvc.cgi/pecl/fribidi/
http://pecl4win.php.net/ext.php/php_fribidi.dll
>> 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.
Thanks!
> 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.
No... it won't be, because in all cases where there is symlinking, all
affected branches of the same extension will have the same version number -
based on the most recent PECL release and tagged with -core. I'm only
looking at 5_2, 5_3 and HEAD here, no more than that.
> 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.
Should I start adding these now, where it's very obvious? And should there
be some note inside the ORPHANED file to say what the extension needs? To go
back to fribidi again (because it's a simple extension that hasn't been
touched in 4 years and I know Tal's not likely to come back to it), there's
a single compiler warning due to snprintf() changes in PHP and no tests at
all. Nothing wrong with the extension itself, it works fine - but it _is_
orphaned.
> 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.
What a horrible name :) How about pecl_graveyard?
- Steph
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
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php