Hi all,
Just so's Marcus and I don't have to keep cross-posting here... The problems
of PECL vs core extensions are many, and exist with or without the PDO/CLA
debate.
Marcus (among others) says he wants to get as many extensions as possible
out of the core and into PECL. I agree fully with this as a long-term aim,
but feel strongly that the PECL infrastructure is not equipped to support it
well at present.
-
Distribution woes need to end. With the work Greg's been doing lately on
PHP_Archive/Phar, that's very close to being attainable now in the physical
'getting PECL'd extensions out to people' sense, but unless people are
running CLI or CGI or have access to their own php.ini they still can't do
much with those extensions. So we have to seriously consider how to
recommend extensions to hosts, other than by shipping them with the PHP
core. -
Maintenance status needs to be part of the equation.
-
Stability needs to be part of the equation.
-
Appropriateness to a given PHP branch needs to be part of the equation.
-
CS and documentation need to be part of the equation.
Thoughts?
- Steph
Thoughts?
It is also possible to have both. It is even a good thing for what
linux distributions told me about zip. About moving all extensions to
PECL, we already discussed this problem and the conclusion was to
continue like now. There was good reasons listed.
Cheers,
Hello Pierre,
basically you are saying that zip would not have been used by anybody if
you hadn't forced us by mail bombardment to include it. So now I am
wondering why you care so much what goes in and what goes out? After all it
is the RMs decision. And we might get asked or not.
marcus
Saturday, February 2, 2008, 9:38:04 PM, you wrote:
Thoughts?
It is also possible to have both. It is even a good thing for what
linux distributions told me about zip. About moving all extensions to
PECL, we already discussed this problem and the conclusion was to
continue like now. There was good reasons listed.
Cheers,
Best regards,
Marcus
basically you are saying that zip would not have been used by anybody if
you hadn't forced us by mail bombardment to include it.
What are you talking about? I post one proposal and it was accepted
after the only issue was resolved (which was a long discussions). You
are getting ridiculuous with your attacks Marcus, and I stay polite.
And no, it is not the RM decisions to choose what goes in or out,
despite your changing opinions about open source, openness and
PHP.net.
So now I am
wondering why you care so much what goes in and what goes out? After all it
is the RMs decision. And we might get asked or not.
What I was refering to is the possibility to have releases via
pecl.php.net and official PHP releases, on a regular basis.
--
Pierre
http://blog.thepimp.net | http://www.libgd.org
Hello Steph,
what I want is php-src as minimum you can depend on. And php-default as
release managers playground. The RM can then say what he thinks is mature
enough to make it into a release.
marcus
Saturday, February 2, 2008, 9:14:12 PM, you wrote:
Hi all,
Just so's Marcus and I don't have to keep cross-posting here... The problems
of PECL vs core extensions are many, and exist with or without the PDO/CLA
debate.
Marcus (among others) says he wants to get as many extensions as possible
out of the core and into PECL. I agree fully with this as a long-term aim,
but feel strongly that the PECL infrastructure is not equipped to support it
well at present.
- Distribution woes need to end. With the work Greg's been doing lately on
PHP_Archive/Phar, that's very close to being attainable now in the physical
'getting PECL'd extensions out to people' sense, but unless people are
running CLI or CGI or have access to their own php.ini they still can't do
much with those extensions. So we have to seriously consider how to
recommend extensions to hosts, other than by shipping them with the PHP
core.
- Maintenance status needs to be part of the equation.
- Stability needs to be part of the equation.
- Appropriateness to a given PHP branch needs to be part of the equation.
- CS and documentation need to be part of the equation.
Thoughts?
- Steph
Best regards,
Marcus
Hi Marcus,
what I want is php-src as minimum you can depend on. And php-default as
release managers playground. The RM can then say what he thinks is mature
enough to make it into a release.
What I want is a PHP core that is really core. By that I mean things like:
date, spl, pcre, zlib, filter, simplexml, core-ish stuff such as PDO (no PDO
drivers, unless we bundle SQLite as we could/should IMHO so there's a
working DB for all), and underlying libs like libxml and mysqlnd that will
make life easier for the many. I think what is distributed with PHP should
be built-in and enabled by default, and it should include the basic
essentials for making a simple website without anything else being added -
and nothing more.
Everything else - the fashionistas (JSON, xmlreader/writer) and the
downright useful for some but not all (fileinfo, json, com_dotnet, posix)
and the quirky stuff (pretty much anything Sara came up with) - should be in
PECL.
A release managers playground? Maybe we should look at PHP core + a
'recommended' PECL release that ships with it, and refer everyone to
pecl.php.net/pecl4win.php.net for anything else.
This assuming the problems I listed earlier are dealt with, natch.
- Steph
Steph Fox wrote:
Hi Marcus,
what I want is php-src as minimum you can depend on. And php-default as
release managers playground. The RM can then say what he thinks is mature
enough to make it into a release.What I want is a PHP core that is really core. By that I mean things
like: date, spl, pcre, zlib, filter, simplexml, core-ish stuff such as
PDO (no PDO drivers, unless we bundle SQLite as we could/should IMHO so
there's a working DB for all), and underlying libs like libxml and
mysqlnd that will make life easier for the many. I think what is
distributed with PHP should be built-in and enabled by default, and it
should include the basic essentials for making a simple website without
anything else being added - and nothing more.
This opens another can of worms :(
Why include installation specific stuff in the core. MySQL was dropped as the
default for a reason lets not reintroduce it.
Not bothering much WITH MySQL ( other than ensuring that SQL generated in my
projects will still run on it ) I see that this new mysqlnd module is intended
to SUPPORT PDO. Is THIS the way forward, building native drivers that can be
used via PDO or is it just a another indication that one needs both PDO and a
native driver?
Everything else - the fashionistas (JSON, xmlreader/writer) and the
downright useful for some but not all (fileinfo, json, com_dotnet,
posix) and the quirky stuff (pretty much anything Sara came up with) -
should be in PECL.A release managers playground? Maybe we should look at PHP core + a
'recommended' PECL release that ships with it, and refer everyone to
pecl.php.net/pecl4win.php.net for anything else.This assuming the problems I listed earlier are dealt with, natch.
- Steph
--
Lester Caine - G8HFL
Contact - http://home.lsces.co.uk/lsces/wiki/?page=contact
L.S.Caine Electronic Services - http://home.lsces.co.uk
MEDW - http://home.lsces.co.uk/ModelEngineersDigitalWorkshop/
Firebird - http://www.firebirdsql.org/index.php
Steph Fox wrote:
Hi Marcus,
what I want is php-src as minimum you can depend on. And php-
default as
release managers playground. The RM can then say what he thinks is
mature
enough to make it into a release.
What I want is a PHP core that is really core. By that I mean
things like: date, spl, pcre, zlib, filter, simplexml, core-ish
stuff such as PDO (no PDO drivers, unless we bundle SQLite as we
could/should IMHO so there's a working DB for all), and underlying
libs like libxml and mysqlnd that will make life easier for the
many. I think what is distributed with PHP should be built-in and
enabled by default, and it should include the basic essentials for
making a simple website without anything else being added - and
nothing more.This opens another can of worms :(
Why include installation specific stuff in the core. MySQL was
dropped as the default for a reason lets not reintroduce it.
Not bothering much WITH MySQL ( other than ensuring that SQL
generated in my projects will still run on it ) I see that this new
mysqlnd module is intended to SUPPORT PDO. Is THIS the way forward,
building native drivers that can be used via PDO or is it just a
another indication that one needs both PDO and a native driver?
I am also not sure if including mysqlnd in PHP core is the way to go.
However I would not be generally opposed to including it in the PHP
distribution.
So just to make sure that this list is also aware of what has spawned
out of the PDO discussion. One of the proposals has been to keep PDO
driver development in PECL and therefore no CLA'ed stuff would be in
php-src. The obvious problem is that currently PECL<>core do not
really have the necessary concepts in place to make this happen,
though the ideas necessary to make this work predate even PDOv1.
Very long ago some people have formulated the vision that a PHP
release would be similar to that of a Linux distribution.
PHP core ~ Linux Kernel
Various PECL extensions ~ Various OSS extensions
Some Linux Distributions also go so far to include some closed source
components. I doubt that we want to go there, but we might want to
include CLA'ed stuff. However that is beyond the discussion of this
thread. This thread is about discussing if there is a better way to
handle PECL packages.
Correct me if I am wrong or if I am missing something, but currently
things work more or less like this. I think its important that we get
an understanding of how things are right now and what the issues are,
before we go off and solve them (maybe with the above mentioned
approach):
- most new extensions these days begin their life in PECL
- generally PECL extensions are expected to follow internals CS (but
they are not really checked if they do so) - most extensions are not dramatically changed before inclusion to fit
PHP core, they either fit or they do not .. most extensions are
actually either developed with the idea of eventually being included
or they will most likely never make it into core (Steph already gave
an example, that some PECL extensions tend to be much liberal with the
use of Exceptions than is currently accepted in php-src) - if an extension is added to php-src, it is done through symlinking
the PECL and php-src CVS - a few extension are also removed from php-src .. I am not quite sure
how the process is there, but I presume the code is removed in php-src
and checked into PECL CVS - ... (please complete this list)
regards,
Lukas
Hello Lukas,
Sunday, February 3, 2008, 10:56:08 AM, you wrote:
Steph Fox wrote:
Hi Marcus,
what I want is php-src as minimum you can depend on. And php-
default as
release managers playground. The RM can then say what he thinks is
mature
enough to make it into a release.
What I want is a PHP core that is really core. By that I mean
things like: date, spl, pcre, zlib, filter, simplexml, core-ish
stuff such as PDO (no PDO drivers, unless we bundle SQLite as we
could/should IMHO so there's a working DB for all), and underlying
libs like libxml and mysqlnd that will make life easier for the
many. I think what is distributed with PHP should be built-in and
enabled by default, and it should include the basic essentials for
making a simple website without anything else being added - and
nothing more.This opens another can of worms :(
Why include installation specific stuff in the core. MySQL was
dropped as the default for a reason lets not reintroduce it.
Not bothering much WITH MySQL ( other than ensuring that SQL
generated in my projects will still run on it ) I see that this new
mysqlnd module is intended to SUPPORT PDO. Is THIS the way forward,
building native drivers that can be used via PDO or is it just a
another indication that one needs both PDO and a native driver?
I am also not sure if including mysqlnd in PHP core is the way to go.
However I would not be generally opposed to including it in the PHP
distribution.
So just to make sure that this list is also aware of what has spawned
out of the PDO discussion. One of the proposals has been to keep PDO
driver development in PECL and therefore no CLA'ed stuff would be in
php-src. The obvious problem is that currently PECL<>core do not
really have the necessary concepts in place to make this happen,
though the ideas necessary to make this work predate even PDOv1.
Very long ago some people have formulated the vision that a PHP
release would be similar to that of a Linux distribution.
PHP core ~ Linux Kernel
Various PECL extensions ~ Various OSS extensions
Some Linux Distributions also go so far to include some closed source
components. I doubt that we want to go there, but we might want to
include CLA'ed stuff. However that is beyond the discussion of this
thread. This thread is about discussing if there is a better way to
handle PECL packages.
- most new extensions these days begin their life in PECL
MySQLND was the last extension started in php-src and I don't even remember
when this was discussed (though in the current structure I like it there
pretty much). Anyway my idea is to start everything in PECL and
to to move everything out that can be moved out. And that includes all MySQL
extensions as well as SQLite. Only this way people will use the PELC
infrastructure. Otherwise we would just reduce functionality of PHP. And btw
nearly all linux distributions today offer a bunch of PECL extensions, and
for windows we offer DLLs for most PECL extensions for a long time now.
marcus
- generally PECL extensions are expected to follow internals CS (but
they are not really checked if they do so)- most extensions are not dramatically changed before inclusion to fit
PHP core, they either fit or they do not .. most extensions are
actually either developed with the idea of eventually being included
or they will most likely never make it into core (Steph already gave
an example, that some PECL extensions tend to be much liberal with the
use of Exceptions than is currently accepted in php-src)- if an extension is added to php-src, it is done through symlinking
the PECL and php-src CVS- a few extension are also removed from php-src .. I am not quite sure
how the process is there, but I presume the code is removed in php-src
and checked into PECL CVS
We move the directory (or would drop the link).
- ... (please complete this list)
regards,
Lukas
Best regards,
Marcus
Hi,
MySQLND was the last extension started in php-src and I don't even remember
when this was discussed (though in the current structure I like it there
pretty much).
Actually it was developed internally to MySQL and offered for inclusion
when it was stable. So the PECL in that case was svn.mysql.com.
I'll write about my opinion to the whole pecl<->core topic later
(breakfast first)
johannes
Hi Marcus,
Anyway my idea is to start everything in PECL and
to to move everything out that can be moved out. And that includes all
MySQL
extensions as well as SQLite. Only this way people will use the PELC
infrastructure. Otherwise we would just reduce functionality of PHP. And
btw
nearly all linux distributions today offer a bunch of PECL extensions, and
for windows we offer DLLs for most PECL extensions for a long time now.
The problem with this, as I wrote earlier, is that people relying on hosting
can't use them, and hosts tend not to know as much as they could about PHP
or its extensions. There does need to be a basic agreement here about what
PHP is without any additions. IMHO that should be the minimum necessary to
build a simple website, ie even if your host knows nothing about PHP it's
still possible to do something useful with it. I suggested SQLite as a way
of ensuring that there is some database in PHP regardless of whether the
host has added something or not. PDO should be built-in anyway. Neither is
the case under doze @ present - both are separate entities that have to be
explicitly enabled, i.e. there is no intrinsic database support in PHP. And
yes, you do get Windows hosting these days.
Also, we can't rely on linux distributions/the availability of DLLs on
php.net for distribution. There needs to be a single simple cross-platform
method for getting hold of extensions for PHP - but I think Greg's so close
to achieving that, it isn't really an issue. The problem of zero QA, is.
- Steph
Hi Marcus,
Anyway my idea is to start everything in PECL and
to to move everything out that can be moved out. And that includes
all MySQL
extensions as well as SQLite. Only this way people will use the PELC
infrastructure. Otherwise we would just reduce functionality of
PHP. And btw
nearly all linux distributions today offer a bunch of PECL
extensions, and
for windows we offer DLLs for most PECL extensions for a long time
now.The problem with this, as I wrote earlier, is that people relying on
hosting can't use them, and hosts tend not to know as much as they
could about PHP or its extensions. There does need to be a basic
agreement here about what PHP is without any additions. IMHO that
should be the minimum necessary to build a simple website, ie even
if your host knows nothing about PHP it's still possible to do
something useful with it. I suggested SQLite as a way of ensuring
that there is some database in PHP regardless of whether the host
has added something or not. PDO should be built-in anyway. Neither
is the case under doze @ present - both are separate entities that
have to be explicitly enabled, i.e. there is no intrinsic database
support in PHP. And yes, you do get Windows hosting these days.Also, we can't rely on linux distributions/the availability of DLLs
on php.net for distribution. There needs to be a single simple cross-
platform method for getting hold of extensions for PHP - but I think
Greg's so close to achieving that, it isn't really an issue. The
problem of zero QA, is.
I am not sure if I misunderstood some other persons proposal, but at
least my proposal was that the final thing we ship as version xyz of
PHP would include a set of PECL extensions along with core that we
deem as necessary for the bulk of our users solving the web problem.
As such we could even publish a list of additional extensions we
recommend to hosters to also install, though the question is if we can
also QA them as part of the release process.
regards,
Lukas
Hi Lukas,
I am not sure if I misunderstood some other persons proposal, but at
least my proposal was that the final thing we ship as version xyz of PHP
would include a set of PECL extensions along with core that we deem as
necessary for the bulk of our users solving the web problem.
That's exactly what happens now, under doze at least. It doesn't solve the
web problem because there are so many extensions shipped with the core.
Every PHP release is accompanied by the core extensions and SAPIs as part of
the core bundle, all PECL extensions available as a separate bundle, and
absolutely no advice about the status of those extensions.
As such we could even publish a list of additional extensions we
recommend to hosters to also install, though the question is if we can
also QA them as part of the release process.
I don't know if publishing a list would be half as useful as marking stuff
'stable', 'actively maintained'... if the pecl commands in the PEAR
installer actually worked under doze, we could easily do all this. (It would
be even better if you didn't actually need to install PEAR to use the PEAR
installer.)
- Steph
regards,
Lukas
Hello Lukas,
same here. I proposed php-src with absolute minimum. And php-default as
the release state. Where the RM has the last say in what goes in and what
not.
The rest of the discussion is once again how easy it is to get more than the
default distribution onto hosters machines. But a) I couldn't care less, b)
it is absolutely a discussion on its own and can addressed somewhere and
somewhen else.
marcus
Sunday, February 3, 2008, 7:05:07 PM, you wrote:
Hi Marcus,
Anyway my idea is to start everything in PECL and
to to move everything out that can be moved out. And that includes
all MySQL
extensions as well as SQLite. Only this way people will use the PELC
infrastructure. Otherwise we would just reduce functionality of
PHP. And btw
nearly all linux distributions today offer a bunch of PECL
extensions, and
for windows we offer DLLs for most PECL extensions for a long time
now.The problem with this, as I wrote earlier, is that people relying on
hosting can't use them, and hosts tend not to know as much as they
could about PHP or its extensions. There does need to be a basic
agreement here about what PHP is without any additions. IMHO that
should be the minimum necessary to build a simple website, ie even
if your host knows nothing about PHP it's still possible to do
something useful with it. I suggested SQLite as a way of ensuring
that there is some database in PHP regardless of whether the host
has added something or not. PDO should be built-in anyway. Neither
is the case under doze @ present - both are separate entities that
have to be explicitly enabled, i.e. there is no intrinsic database
support in PHP. And yes, you do get Windows hosting these days.Also, we can't rely on linux distributions/the availability of DLLs
on php.net for distribution. There needs to be a single simple cross-
platform method for getting hold of extensions for PHP - but I think
Greg's so close to achieving that, it isn't really an issue. The
problem of zero QA, is.
I am not sure if I misunderstood some other persons proposal, but at
least my proposal was that the final thing we ship as version xyz of
PHP would include a set of PECL extensions along with core that we
deem as necessary for the bulk of our users solving the web problem.
As such we could even publish a list of additional extensions we
recommend to hosters to also install, though the question is if we can
also QA them as part of the release process.
regards,
Lukas
Best regards,
Marcus
Hi Marcus,
The rest of the discussion is once again how easy it is to get more than
the
default distribution onto hosters machines. But a) I couldn't care less,
That's... a bit remiss of you :)
b)
it is absolutely a discussion on its own and can addressed somewhere and
somewhen else.
No, this is why I opened this thread. The 'somewhere and somewhen else' part
has been the problem for the last <insert wild guess figure> years.
- Steph
Hi,
same here. I proposed php-src with absolute minimum. And php-default as
the release state. Where the RM has the last say in what goes in and what
not.
He can decide alone if something is stable enough to get in but he
can't decide alone which features or extension is accepted or not. It
was never the case and will hopefully never be the case.
The rest of the discussion is once again how easy it is to get more than the
default distribution onto hosters machines. But a) I couldn't care less, b)
it is absolutely a discussion on its own and can addressed somewhere and
With the risk to repeat myself (and some other having said the same),
the biggest advantage PHP has so far is that you get everything you
may need with the default install. That's also why so many ISP does
not provide anything else but what is enabled by default.
It is yet another major mistake to try to solve the maintainance
problem (or anything related to php extensions) without keeping this
point in mind. If you don't care about what our users do with PHP, I
miserably fail to see why we should listen your proposals.
Which better place do you have in mind to discuss how to improve the
way we distribute PHP and how to make the hosting companies and system
administrators life easier than on internals?
--
Pierre
http://blog.thepimp.net | http://www.libgd.org
With the risk to repeat myself (and some other having said the same),
the biggest advantage PHP has so far is that you get everything you
may need with the default install.
This hasn't been true of the Windows distribution for the last few years. I
think it should be - I think the default install under doze should offer the
same as the default install everywhere else. Outside of any other
considerations, think of all those poor PHP newbies testing out a default
install locally and then howling that SQLite doesn't work. Most of the help
forums will tell them they have it installed - but they don't. They have it
available, which is not the same thing.
- Steph
With the risk to repeat myself (and some other having said the same),
the biggest advantage PHP has so far is that you get everything you
may need with the default install.This hasn't been true of the Windows distribution for the last few years.
Good point but I admit that I never understood why our windows
releases have been so different from the source releases, from a
configuration point of view. Many default extensions are (were) not
enabled. But that's not a big problem and can be easily fixed no? :)
--
Pierre
http://blog.thepimp.net | http://www.libgd.org
Good point but I admit that I never understood why our windows
releases have been so different from the source releases, from a
configuration point of view. Many default extensions are (were) not
enabled. But that's not a big problem and can be easily fixed no? :)
It's not a big problem so long as everyone agrees on what should be enabled
by default.
Assuming the aim is to have everything not enabled by default move to
PECL, that's quite a big deal.
- Steph
Good point but I admit that I never understood why our windows
releases have been so different from the source releases, from a
configuration point of view. Many default extensions are (were) not
enabled. But that's not a big problem and can be easily fixed no? :)It's not a big problem so long as everyone agrees on what should be enabled
by default.
What should be enabled by default on windows should be the same as on
linux (and the windows specific extensions like com), imho.
Assuming the aim is to have everything not enabled by default move to
PECL, that's quite a big deal.
That's another topic and I tend to disagree (more later on that).
--
Pierre
http://blog.thepimp.net | http://www.libgd.org
Assuming the aim is to have everything not enabled by default move to
PECL, that's quite a big deal.That's another topic and I tend to disagree (more later on that).
I'll wait... but I suspect all the arguments against that are based on PECL
as it currently is, with all its distribution problems et al.
- Steph
Hi Lukas,
Correct me if I am wrong or if I am missing something, but currently
things work more or less like this. I think its important that we get
an understanding of how things are right now and what the issues are,
before we go off and solve them (maybe with the above mentioned
approach):
- most new extensions these days begin their life in PECL
- generally PECL extensions are expected to follow internals CS (but
they are not really checked if they do so)- most extensions are not dramatically changed before inclusion to fit
PHP core, they either fit or they do not .. most extensions are
actually either developed with the idea of eventually being included
or they will most likely never make it into core (Steph already gave
an example, that some PECL extensions tend to be much liberal with the
use of Exceptions than is currently accepted in php-src)- if an extension is added to php-src, it is done through symlinking
the PECL and php-src CVS- a few extension are also removed from php-src .. I am not quite sure
how the process is there, but I presume the code is removed in php-src
and checked into PECL CVS- ... (please complete this list)
-
No QA.
-
Steph
I am also not sure if including mysqlnd in PHP core is the way to go.
However I would not be generally opposed to including it in the PHP
distribution.
There's a technical reason for that: It needs to be statically buildin
to work properly. Same reason why ext/libxml is there actually.
--Jani
Everything else - the fashionistas (JSON, xmlreader/writer) and the downright
useful for some but not all (fileinfo, json, com_dotnet, posix) and the quirky
stuff (pretty much anything Sara came up with) - should be in PECL.
I see another issue after reading this, and that is that it makes it
much harder for users to depend on specific extensions just being always
available by default. It's important for application distributers to
have this core set of extensions to rely on. It's annoying enough that
some distributions (gentoo, freebsd) already use --disable-all and their
users then bugging us (or me) with "you should check that SPL is enabled
in your code".
regards,
Derick
At 04:33 AM 2/4/2008, Derick Rethans wrote:
Everything else - the fashionistas (JSON, xmlreader/writer) and
the downright
useful for some but not all (fileinfo, json, com_dotnet, posix)
and the quirky
stuff (pretty much anything Sara came up with) - should be in PECL.I see another issue after reading this, and that is that it makes it
much harder for users to depend on specific extensions just being always
available by default. It's important for application distributers to
have this core set of extensions to rely on. It's annoying enough that
some distributions (gentoo, freebsd) already use --disable-all and their
users then bugging us (or me) with "you should check that SPL is enabled
in your code".
Just poking up my head to concur with Derick. What one
person thinks of as 'fashionistas', another person will think of as
absolutely core and necessary -- for example, I use xmlreader/writer
in almost every piece of code I put out. If it were suddenly part of
a PECL, a whole bunch of things I've written would break instantly.
Yes, it's easy enough to work around, but backwards-compatibility
will make for a happy PHP community.
--->Ben
Hello Ben,
None of this is necessary though. What I proposed was moving extension
development from php-src to PECL an dthen bundle what we see fit into the
distribution just as we do now, whith the RM having the last say what goes
in and what not. In my proposal we would only put stuff into php-srec that
is the base for other stuff. For instance libxml is tthe base for all other
xml extensions. So you and most other users would get a relase build from
the selection on php-default. And that will most likely include your
xmlreader and writer, just as they are today in php-src.
marcus
Monday, February 4, 2008, 10:42:39 AM, you wrote:
At 04:33 AM 2/4/2008, Derick Rethans wrote:
Everything else - the fashionistas (JSON, xmlreader/writer) and
the downright
useful for some but not all (fileinfo, json, com_dotnet, posix)
and the quirky
stuff (pretty much anything Sara came up with) - should be in PECL.I see another issue after reading this, and that is that it makes it
much harder for users to depend on specific extensions just being always
available by default. It's important for application distributers to
have this core set of extensions to rely on. It's annoying enough that
some distributions (gentoo, freebsd) already use --disable-all and their
users then bugging us (or me) with "you should check that SPL is enabled
in your code".
Just poking up my head to concur with Derick. What one
person thinks of as 'fashionistas', another person will think of as
absolutely core and necessary -- for example, I use xmlreader/writer
in almost every piece of code I put out. If it were suddenly part of
a PECL, a whole bunch of things I've written would break instantly.
Yes, it's easy enough to work around, but backwards-compatibility
will make for a happy PHP community.
--->Ben
Best regards,
Marcus
Hello Ben,
None of this is necessary though. What I proposed was moving
extension
development from php-src to PECL an dthen bundle what we see fit
into the
distribution just as we do now, whith the RM having the last say
what goes
in and what not. In my proposal we would only put stuff into php-
srec that
is the base for other stuff. For instance libxml is tthe base for
all other
xml extensions. So you and most other users would get a relase build
from
the selection on php-default. And that will most likely include your
xmlreader and writer, just as they are today in php-src.
Right .. the advantage would be that fixes and feature additions could
be more easily pushed to end users via PECL independent of php-src
releases. The aim is not to reduce the functionality of php-src
releases.
regards,
Lukas
Just poking up my head to concur with Derick. What one
person thinks of as 'fashionistas', another person will think of as
absolutely core and necessary
+1
I don't think this list will ever reach concensus on what "should" be
in core, at least not without a LOT of discussion that will ultimately
end up in a solution involving politics more than technology...
Just Thinking Aloud:
PERHAPS, a distribution of a "skinny" PHP with everything in PECL, and
a "fat" one where everything anybody on the Dev Team wants gets linked
in statically would be better?
Then nobody has to fight for their extension to be included; it will
be in the "fat" one.
And the camp that wants "core" to be minimal gets what they want.
Everybody's happy, except that there's now two binaries to choose from
for the initial download to document... :-)
--
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some indie artist.
http://cdbaby.com/from/lynch
Yeah, I get a buck. So?
Hi Derick,
I see another issue after reading this, and that is that it makes it
much harder for users to depend on specific extensions just being always
available by default. It's important for application distributers to
have this core set of extensions to rely on. It's annoying enough that
some distributions (gentoo, freebsd) already use --disable-all and their
users then bugging us (or me) with "you should check that SPL is enabled
in your code".
Well, you should, while it's possible to disable it!
Consider a distribution that has only the essentials. Consider also a
relatively small bundle of PECL extensions that ships alongside it. Say we
classify them: everything that currently ships with core would be class A1
or whatever, as would anything else in PECL that is stable and considered
likely to be useful to a wide range of users. Anything in that bundle is
"recommended", and we make it very plain to sysadmins that they should
install any of that bundle supported by their system. It includes things
like (most) PDO drivers, SOAP, sqlite, zip, curl, json... all things that
are currently shipped with the core but not necessarily (under doze at
least) enabled by default. We educate PHP users to insist on 'the A1 pack'.
We also make it possible to operate PHP without 'the A1 pack', but I do
just mean 'possible'. (In other words it should be possible to write a basic
website using PHP as it comes, without adding or enabling anything.)
If everything in PECL were classified, it'd be much easier for people to
figure out what to load and when. A simple 'justification' line alongside
the classification would be immensely helpful, assuming the info in
package.xml is made obvious via the installer. You'd need a few extra
sections in package.xml, e.g:
<version>2.0</version>
<status>stable</status>
<classification>
<rank>A2</rank>
<reason>specialist interest</reason>
</classification>
<maintenance>
<level>active</level>
<lastfix>10/01/08</lastfix>
<bugsopen>5</bugsopen>
</maintenance>
That tells users and sysadmins alike everything they need to know about that
extension and allows them to make an informed decision about installing it,
or not, as the case may be. Some of that info could even be autogenerated...
Anything not in 'the A1 pack' would need to be downloaded individually,
via a system we don't have yet (again, speaking as a Windows user). Another
thing would be to offer downloads by classification, e.g. 'pecl install A1'.
- Steph
regards,
Derick
Steph Fox wrote:
Hi Derick,
I see another issue after reading this, and that is that it makes it
much harder for users to depend on specific extensions just being always
available by default. It's important for application distributers to
have this core set of extensions to rely on. It's annoying enough that
some distributions (gentoo, freebsd) already use --disable-all and their
users then bugging us (or me) with "you should check that SPL is enabled
in your code".Well, you should, while it's possible to disable it!
Consider a distribution that has only the essentials. Consider also a
relatively small bundle of PECL extensions that ships alongside it. Say
we classify them: everything that currently ships with core would be
class A1 or whatever, as would anything else in PECL that is stable and
considered likely to be useful to a wide range of users. Anything in
that bundle is "recommended", and we make it very plain to sysadmins
that they should install any of that bundle supported by their system.
It includes things like (most) PDO drivers, SOAP, sqlite, zip, curl,
json... all things that are currently shipped with the core but not
necessarily (under doze at least) enabled by default. We educate PHP
users to insist on 'the A1 pack'. We also make it possible to operate
PHP without 'the A1 pack', but I do just mean 'possible'. (In other
words it should be possible to write a basic website using PHP as it
comes, without adding or enabling anything.)If everything in PECL were classified, it'd be much easier for people to
figure out what to load and when. A simple 'justification' line
alongside the classification would be immensely helpful, assuming the
info in package.xml is made obvious via the installer. You'd need a few
extra sections in package.xml, e.g:<version>2.0</version>
<status>stable</status>
<classification>
<rank>A2</rank>
<reason>specialist interest</reason>
</classification>
<maintenance>
<level>active</level>
<lastfix>10/01/08</lastfix>
<bugsopen>5</bugsopen>
</maintenance>
As a side note, Pyrus development is continuing (will be restarting once
the phar work slows a bit). There are several things I want to do for
pecl that we don't do now. Here's the "off the top of my head" list:
- build_dir - instead of using a random temporary directory for
building, so those temp files hang around, making it easier to
debug/patch (providing "pyrus make-clean" to clean up would be a piece
of cake as well. - any changes you all work out like Steph's proposal for additions to
package.xml, although I would recommend instead putting those in a
special file within package.xml that is human-readable and machine
parseable that pyrus would look for, so that the exts can still be
installed by the PEAR installer.
Greg
I see another issue after reading this, and that is that it makes it
much harder for users to depend on specific extensions just being always
available by default. It's important for application distributers to
have this core set of extensions to rely on. It's annoying enough that
some distributions (gentoo, freebsd) already use --disable-all and their
users then bugging us (or me) with "you should check that SPL is enabled
in your code".Well, you should, while it's possible to disable it!
Uh, no? Most of those things (pcre and SPL) are absolutely necessary - I
find it strange enough that they can actually be disabled. I refuse to
make hacks in code just because some distributions fuck up the default
installed extensions.
Consider a distribution that has only the essentials. Consider also a
relatively small bundle of PECL extensions that ships alongside it. Say we
classify them: everything that currently ships with core would be class A1 or
whatever, as would anything else in PECL that is stable and considered likely
to be useful to a wide range of users. Anything in that bundle is
"recommended", and we make it very plain to sysadmins that they should install
any of that bundle supported by their system. It includes things like (most)
PDO drivers, SOAP, sqlite, zip, curl, json... all things that are currently
shipped with the core but not necessarily (under doze at least) enabled by
default. We educate PHP users to insist on 'the A1 pack'. We also make it
possible to operate PHP without 'the A1 pack', but I do just mean
'possible'. (In other words it should be possible to write a basic website
using PHP as it comes, without adding or enabling anything.)
You really think that would work? You forget that for most shared
hosters they just install PHP so that they can say they support it, but
actually don't give a ratsass about what is actually supported.
regards,
Derick
--
Derick Rethans
http://derickrethans.nl | http://ezcomponents.org | http://xdebug.org
You forget that for most shared
hosters they just install PHP so that they can say they support it, but
actually don't give a ratsass about what is actually supported.
I totally agree, most hosts just install what comes as default with a
distribution, they don't care or even bother with PECL in 99% of cases in my
experience.
Regards
Marco
Hi both,
I totally agree, most hosts just install what comes as default with a
distribution, they don't care or even bother with PECL in 99% of cases in
my
experience.
Well - that can't be entirely true or there'd be next to no MySQL support
out there!
I just think we make it needlessly difficult for people
(including/especially hosts) to find their way around PECL at present. Maybe
a better way to go would be to start distributing an 'A1 pack' (there has to
be a better name) before moving anything more out to it from the core
distribution. At least that way there'd be the possibility of moving things
out of core - at present if you do that you're just consigning extensions to
oblivion.
- Steph
Well - that can't be entirely true or there'd be next to no MySQL support
out there!
I knew that would come back and bite me on the ass as soon as I posted! :-)
MySQL support is one of the noteable exceptions as its considered core to
web-hosts (In their eyes PHP and MySQL are one) other things are totally
different.
I just think we make it needlessly difficult for people
(including/especially hosts) to find their way around PECL at present.
Maybe
a better way to go would be to start distributing an 'A1 pack' (there has
to
be a better name) before moving anything more out to it from the core
distribution. At least that way there'd be the possibility of moving
things
out of core - at present if you do that you're just consigning extensions
to
oblivion.
I think one of the reasons hosts don't like / use PECL is trust, they trust
what comes with the PHP core packages and consider anything else a security
risk. Maybe a combination of better distribution, package details, stability
(beta / alpha) etc and maybe something that deals with compatibility. IE,
compatible with PHP 5.2.1 - 5.3.0 for example. Not sure how many of the
larger bulk hosting companies monitor these lists but maybe trying to foster
more enagement from the bulk hosters in their concerns etc could be useful?
Again these are just the experiences I have with the hosts i've had to deal
with whilst trying to develop an app that will run anywhere (not an easy
task I can tell you!).
Regards
Marco
Well - that can't be entirely true or there'd be next to no MySQL support
out there!I knew that would come back and bite me on the ass as soon as I posted! :-)
MySQL support is one of the noteable exceptions as its considered core to
web-hosts (In their eyes PHP and MySQL are one) other things are totally
different.I just think we make it needlessly difficult for people
(including/especially hosts) to find their way around PECL at present.
Maybe
a better way to go would be to start distributing an 'A1 pack' (there has
to
be a better name) before moving anything more out to it from the core
distribution. At least that way there'd be the possibility of moving
things
out of core - at present if you do that you're just consigning extensions
to
oblivion.I think one of the reasons hosts don't like / use PECL is trust,
The main reason (from my experiences) for the ISP is lazynes. They
don't care about what the users may need or not but simply run
configure, make make install, or use the <xyz> distribtutions default
package to run common applications like phpmyadmin or wordpress.
Cheers,
Hi Pierre,
The main reason (from my experiences) for the ISP is lazynes. They
don't care about what the users may need or not but simply run
configure, make make install, or use the <xyz> distribtutions default
package to run common applications like phpmyadmin or wordpress.
That's a heck of an assumption to make, given that we're presenting non-PHP
users with 100+ packages and no information...!
- Steph
Cheers,
Hi Pierre,
The main reason (from my experiences) for the ISP is lazynes. They
don't care about what the users may need or not but simply run
configure, make make install, or use the <xyz> distribtutions default
package to run common applications like phpmyadmin or wordpress.That's a heck of an assumption to make, given that we're presenting non-PHP
users with 100+ packages and no information...!
By the way:
http://www.nexen.net/articles/dossier/18038-base_configuration_for_php_5.2.5.php
--
Pierre
http://blog.thepimp.net | http://www.libgd.org
By the way:
http://www.nexen.net/articles/dossier/18038-base_configuration_for_php_5.2.5.php
Thanks for that, Pierre. But I think those stats add to the argument for
making PECL easier to deal with, rather than diminishing it.
- Steph
--
Pierre
http://blog.thepimp.net | http://www.libgd.org
By the way:
http://www.nexen.net/articles/dossier/18038-base_configuration_for_php_5.2.5.php
Thanks for that, Pierre. But I think those stats add to the argument for
making PECL easier to deal with, rather than diminishing it.
- Steph
Ha, PDO_MSSQL didn't even make it onto the rare list. Am I the only
one daft enough to try and get Doctrine to work with MSSQL? Seems like
it!
--
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"
Hi Marco,
I think one of the reasons hosts don't like / use PECL is trust, they
trust
what comes with the PHP core packages and consider anything else a
security
risk. Maybe a combination of better distribution, package details,
stability
(beta / alpha) etc and maybe something that deals with compatibility. IE,
compatible with PHP 5.2.1 - 5.3.0 for example.
This is precisely what I'm suggesting. Groups of extensions, classified in
terms of general usefulness + stability, released alongside PHP releases (no
question about compatibility that way.) In doze terms that would translate
to a smaller bundle of .dlls (as opposed to the 100-ish we currently get if
we download the PECL bundle), in *nix terms it would probably equate to
either a group 'pecl install' command or a bundle of rpms (or both).
Everyone can still use the routes they already use to get hold of the more
esoteric bits and pieces, but there'd be a group of recommended extensions
handy that hosts at least shouldn't be afraid to install. That in turn
should make it easier for users to get those extensions enabled.
Not sure how many of the
larger bulk hosting companies monitor these lists but maybe trying to
foster
more enagement from the bulk hosters in their concerns etc could be
useful?
Just check the list archives. Tho' I agree it would be helpful if those same
people would butt in at this point.
Again these are just the experiences I have with the hosts i've had to
deal
with whilst trying to develop an app that will run anywhere (not an easy
task I can tell you!).
Not an easy task, and made harder by the fact that stuff moves in and out of
core from/to a place hosts don't generally go.
- Steph
Regards
Marco
I'd like everything in PECL. Even the core. And yes, it is quite doable.
--Jani
Hello Steph,
what I want is php-src as minimum you can depend on. And php-default as
release managers playground. The RM can then say what he thinks is mature
enough to make it into a release.marcus
Saturday, February 2, 2008, 9:14:12 PM, you wrote:
Hi all,
Just so's Marcus and I don't have to keep cross-posting here... The problems
of PECL vs core extensions are many, and exist with or without the PDO/CLA
debate.Marcus (among others) says he wants to get as many extensions as possible
out of the core and into PECL. I agree fully with this as a long-term aim,
but feel strongly that the PECL infrastructure is not equipped to support it
well at present.
- Distribution woes need to end. With the work Greg's been doing lately on
PHP_Archive/Phar, that's very close to being attainable now in the physical
'getting PECL'd extensions out to people' sense, but unless people are
running CLI or CGI or have access to their own php.ini they still can't do
much with those extensions. So we have to seriously consider how to
recommend extensions to hosts, other than by shipping them with the PHP
core.
- Maintenance status needs to be part of the equation.
- Stability needs to be part of the equation.
- Appropriateness to a given PHP branch needs to be part of the equation.
- CS and documentation need to be part of the equation.
Thoughts?
- Steph
Best regards,
Marcus
--
Patches/Donations: http://pecl.php.net/~jani/
Distribution woes need to end. With the work Greg's been doing lately on
PHP_Archive/Phar, that's very close to being attainable now in the physical
'getting PECL'd extensions out to people' sense, but unless people are running
CLI or CGI or have access to their own php.ini they still can't do much with
those extensions. So we have to seriously consider how to recommend extensions
to hosts, other than by shipping them with the PHP core.Maintenance status needs to be part of the equation.
Stability needs to be part of the equation.
Appropriateness to a given PHP branch needs to be part of the equation.
CS and documentation need to be part of the equation.
Thoughts?
Yeah, my main concern is actually not with the one above, except for 2)
perhaps. The brilliant thing to have everything in core, is that it gets
checked out, updated, etc like all other standard parts. Becaus of this
compile errors and other related issues are quickly discovered - this
is especially important when it comes to OS-differences.
regards,
Derick
Maintenance status needs to be part of the equation.
Stability needs to be part of the equation.
Appropriateness to a given PHP branch needs to be part of the
equation.CS and documentation need to be part of the equation.
Thoughts?
It seems to me that broad classifications of common usage patterns
might be part of the equation.
A shared hosting setup and a distributed server farm and a dev setup
might all have different recommended extensions, no?
Sure, somebody setting up a shared host or distributed server farm
SHOULD do their research and figure out what should/shouldn't be in
there, but the PHP Dev Team could probably knock up a "starter list"
and save them a great deal of time...
--
Some people have a "gift" link here.
Know what I want?
I want you to buy a CD from some indie artist.
http://cdbaby.com/from/lynch
Yeah, I get a buck. So?
Steph Fox wrote:
- Distribution woes need to end. With the work Greg's been doing lately
on PHP_Archive/Phar, that's very close to being attainable now in the
physical 'getting PECL'd extensions out to people' sense, but unless
people are running CLI or CGI or have access to their own php.ini they
still can't do much with those extensions. So we have to seriously
consider how to recommend extensions to hosts, other than by shipping
them with the PHP core.
Steph, Greg
In interests of clarity for all, can you explain what you anticipate
will change for PECL with Phar/Pyrus for Windows and non-Windows?
Chris
--
Christopher Jones, Oracle
Email: christopher.jones@oracle.com Tel: +1 650 506 8630
Blog: http://blogs.oracle.com/opal/ Free PHP Book: http://tinyurl.com/f8jad
Christopher Jones wrote:
Steph Fox wrote:
- Distribution woes need to end. With the work Greg's been doing lately
on PHP_Archive/Phar, that's very close to being attainable now in the
physical 'getting PECL'd extensions out to people' sense, but unless
people are running CLI or CGI or have access to their own php.ini they
still can't do much with those extensions. So we have to seriously
consider how to recommend extensions to hosts, other than by shipping
them with the PHP core.Steph, Greg
In interests of clarity for all, can you explain what you anticipate
will change for PECL with Phar/Pyrus for Windows and non-Windows?
That's a great question. I have not written any support yet for pecl in
pyrus, as I would like it to be far better. For instance, should
pecl4win start building package versions instead of just from CVS, then
we could easily install on windows directly from pecl4win.
One change that is planned for unix (and not yet implemented) is a
concrete build directory, a place where source files are extracted. As
you know, currently the pear installer simply extracts to a temporary
directory, and builds, then erases the files. This is great when the
build succeeds, but when it fails, it makes debugging completely
impossible. It also makes patching much more difficult.
I have said many times in less formal settings that I expect far more
input on how pecl will work with pyrus than we have been getting for the
PEAR installer. So, let me say it formally: Pyrus will be far more
pecl-friendly, but I will need real input from internals developers to
make the thing truly useful.
Now that I'm getting better versed in how internals/pecl works, I will
also be much better equipped to respond to suggestions than I was a year
ago even, so I'm confident we'll get something very nice.
Thanks,
Greg
Hi Chris,
In interests of clarity for all, can you explain what you anticipate
will change for PECL with Phar/Pyrus for Windows and non-Windows?
From my PoV as a Windows user, the primary case for optimisim is based on
the fact that local PEAR installs recently started working properly on
Windows via the PEAR installer. I take that as a welcome sign of maturity in
the original installer script.
Secondary is that Greg's Phar format's coming along really well - it's
possible to run the same phar created with the extension + default stub in
any PHP setting, CLI or web. You don't need to have anything installed other
than PHP itself, and you don't need to unpack a phar to run the application
contained within it. The PHP_Archive-based phars we've been seeing for the
PEAR installer have similar qualities, but I suspect the whole PEAR
inter-dependency thing is a big turnoff for many - so phar's been an
invisible good idea for a long while. That's not necessarily a bad thing, it
means it's had time to evolve.
It would be nice (Greg may not agree here) to have the PECL installer script
completely independent of PEAR classes - at present it throws a hissy fit if
Tar_Archive isn't installed, for example, which is reasonable enough for a
PEAR installation but a complete pain in the butt if you just wanted to pick
up runkit. There's no good reason I know of not to slip tar extraction
functionality directly into the phar stub. PHP's built-in getopt()
is
cross-platform from 5.3 on, albeit less than perfect, so we can probably
just about get away without Console_Getopt now. Unless I'm missing something
major, we don't need to know a whole lot about the clientside environment
for PECL either - just the platform, PHP version, extension_dir() and the
path to a writable temp directory. So it should be possible to drop the PEAR
association and simply drop something like pecl.phar into the top-level PHP
directory in releases and snaps; you'd type "php pecl.phar" to open the
application and direct commands thereafter, or stick it in htdocs and type
http://localhost/pecl.phar if you'd prefer your installation via a form. If
you're building PHP fresh out of CVS you can check out the whole of PECL
anyway.
The situation with the PHP_Archive-based phar currently used for the PEAR
installer is that the installer script in it offers PECL release src
packages and installs them on demand, though I gather this is still a little
rough around the edges. The equivalent binary download for Windows isn't in
place at all, but AFAICS there's no real reason it couldn't be made to work,
so long as there's a sane form of tagging somewhere along the line so that a
specific PHP version would be offered appropriate PECL binaries. (I would
imagine this might require release binaries to be made available via
pecl.php.net - leaving pecl4win for snapshots - but that's just a wild
thought at present.)
If you can tag individual packages you can also tag groups, so it's not too
big a leap from 'appropriate binary release' to 'appropriate selection of
binaries'. The only thing that can't reasonably be automated is updating the
PHP INI file to load them - and that's not because it's technically
difficult.
Basically I think the technology is pretty much in place, between the PEAR
channels and phar, to make pecl installs a trivial matter across all
platforms. It's mostly a case of getting the PECL infrastructure to work
with it, which is a much tougher task because it needs the PHP core/PECL
community to agree to that in principle, figure out the best approach and
then help make it happen.
- Steph
Chris
--
Christopher Jones, Oracle
Email: christopher.jones@oracle.com Tel: +1 650 506 8630
Blog: http://blogs.oracle.com/opal/ Free PHP Book:
http://tinyurl.com/f8jad