PHP 5.1.0 is out. There is alot of good stuff in this release and it is a major milestone. May PHP 5.1.2 be as successful as PHP 4.1.2.
I say 5.1.2 because it looks like there are is going to be at least one, possibly two bug fix releases to follow. There is a bit of a kerfuffle about the introduction of a date class into PHP 5.1rc6, which conflicts with the current PEAR date class. Unfortunately, the naming conflict is not (yet) documented in the upgrade notes which I praised in my PHP 6 post just a couple of days ago.
Ok, so reserving common class names in the release candidate just before the release, during a major holiday week (in the US at least) is probably a mistake. I don’t disagree with PHP reserving the Date class. Honestly, anyone using that name should half expect it. However, I don’t think anyone likes surprises, especially late in a release cycle. But, people are not machines and sometimes mistakes are made. (To use another cliche, sometimes sausage making is not pretty.)
Some people are pointing to this naming conflict as evidence of the dire need for namespace support in PHP. Fair enough.
So in this case the process for detecting backward compatibility breaks relied on a large group of people testing their applications through a rapid succession of release candidates. Since I agree with the rapid succession of release candidates, I have to see the weak part of the process as relying on people to test stuff. After all, people aren’t machines.
However, machines ARE machines and automated compatibility testing could have caught this. I have a corpus of PHP code with automated tests that I could donate to a BC testing lab. I’m sure other people do. I can’t necessarily download a new release candidate and run it every other day, but I could package my code up and send it someplace to be run. Where can I send it?
(Yeah, I know calling for BC testing lab without volunteering to run it is the open source equivalent of the unfunded mandate. But hey, its my blog and I’ll suggest, complain or critique if I want to. )
One last thing, don’t let a few minor issues overshadow the good hard work that went into this release.