Re: [PEAR-QA] Volunteering to take over CodeGen_PECL

[email protected] (Christian Moellenberg) Sun, 14 Oct 2012 23:50:47 +0200
Newsgroups php.pear.qa
Message-ID <[email protected]>
Hi Matthew,

Yes, by namespace support I mean generating namespaced PECL code.

About changes breaking backward compatibility: I will see what I can do
without breaking anything. Moving on to using exceptions would be a nice
thing though...

An alternative to opening up an entirely new package would be to provide
the necessary changes to CodeGen etc. so they could be integrated by the
maintainer (if he has the time). Well, okay - first things first.

Anyway, we must solve one problem before I can really start: It seems that
CodeGen_PECL hasn't been moved to github yet. At least the link you gave
below results in a 404... Can you help?

Regards,
Christian

Matthew Fonda wrote on Sun, 14 Oct 2012 11:13:26 -0700:

> Hi Christian,
>
> Please see responses inline:
>
> On Sat, Oct 13, 2012 at 3:06 AM, Christian Moellenberg
> <[email protected]> wrote:
>> Hi all,
>>
>> My name is Christian Moellenberg and I work as a software engineer
>> in the telecom business in Germany.
>>
>> Having used PHP since 2004 or so, I recently got interested in how
>> to write extensions for PHP. So I read what I could find on the web
>> and studied also S. Golemon's great book, then started experimenting
>> with the PEAR tools, CodeGen and GodeGen_PECL.
>>
>> When I downloaded the packages I found that CodeGen_PECL has open
>> bugs but is unmaintained. Also, I seemed to find one or two more
>> bugs in the code that haven't been recorded yet. So I thought why
>> not start to repair things and, if all goes well, take over the
>> package altogether? ;-)
>>
> PEAR always welcomes new contributors. Most PEAR packages are now on
> GitHub, which makes contributing really easy. Simply fork the package
> (https://github.com/pear/CodeGen_PECL) and commit your changes. You
> can then submit a pull request to get your changes back into the
> package. Continue to follow this process and someone can eventually
> give you maintainership of the package.
>
>> Things I plan to do:
>> - Test and record bugs
>> - Fix open bugs
> Excellent!
>
>> - Add PHP 5.3+ support (namespaces)
> If this is referring to updating CodeGen_PECL to generate namespaced
> PECL code, then this sounds like a great addition. If you are
> referring to updating the PHP code by moving it into namespaces, then
> this cannot be done as it is a BC break.
>
>> - Get rid of PEAR_Error, use PEAR_Exception instead
>>    (this will simplify the code a lot, but likely affect the parent
>>    package CodeGen and siblings of CodeGen_PECL)
> These changes break BC and therefore would not be allowed.
>
>> - Replace Console_Getopt (deprecated) with Console_GetoptPlus
>> - Provide an XSchema file for extension.xml
>>    (the current distro doesn't have one, and the referenced DTD
>>    seems to be missing)
> Sounds good!
>
>> - Discuss what can / should be done to support PHP 6
> PHP 6 does not currently exist, so nothing to worry about this.
>
>> Things I need (and definitely want) to learn:
>> - to use GIT
>> - to set up unit testing and provide proper tests
>>
> I think your changes all sound like great additions, but as mentioned
> above, some of the changes break BC, which is not allowed in stable
> packages. As such, there's an alternative approach you could take
> here. Instead of working on CodeGen_PECL, create a new package
> CodeGen_PECL2 that has all of the improvements you mentioned. Once
> it's ready, you can then propose it as a new package.
>
> Cheers,
> --Matthew