Re: Re: results of work
| From: | Dan Scott | Date: | Sat, 24 Sep 2005 11:28:01 +0000 |
| Subject: | Re: Re: results of work | ||
| References: | 1 2 3 4 | Groups: | php.pecl.dev |
| Request: | Send a blank email to pecl-dev+get-2984@lists.php.net to get a copy of this message | ||
On 9/23/05, Greg Beaver <cellog@php.net> wrote:
> Dan Scott wrote:
> > On 9/23/05, Sara Golemon <pollita@php.net> wrote:
> >
> >>>I was somewhat surprised at the number of invalid package.xml files in
> >>>there. I added a ton of validation to package.xml 1.0 stuff - there are
> >>>some serious problems that have been present in every PEAR version, like
> >>>allowing PHP dependencies that just don't work, and so on.
> >>>
> >>
> >>Do you have a specific list of which package.xml files are invalid?
> >>
> >
> >
> > xmllint says imagick and cyrus are the guilty parties (lacking basic
> > well-formedness, anyways; if there's a DTD for package.xml it would
> > make a validity-testing script a little easier to run).
>
> Sure thing, you can choose from
> http://pear.php.net/dtd/package-1.0
> http://pear.php.net/dtd/package-1.0.xsd
>
> Greg
>
Excellent -- in that case the following command turns up _tons_ of
validation errors:
find pecl -name package.xml -exec xmllint --dtdvalid
http://pear.php.net/dtd/package-1.0 --noout {} \;
The "xmllint" command might be a good one to suggest on the PEAR
package.xml docs for developers to validate their package.xml files.
I've fixed pecl/ibm_db2/package.xml to comply with the DTD.
Oddly enough, I don't believe any of the examples in
http://pear.php.net/manual/en/developers.packagedef.php
would be valid
package.xml files. For example, the major problem that
ibm_db2/package.xml had was that I had placed the file names as CDATA
inside the <file></file> element -- this follows the documentation to
the letter. However, the DTD only allows the <file> element to contain
<replace> elements, and specifies that the file name has to be set as
the name attribute of <file>.
The second problem ibm_db2 had was that the DTD requires a <license>
element inside every <release> element, while the documentation omits
that element from its example.
Thanks for the pointers,
Dan