Re: [PDO] Re: PDO 2: Request for Comments
[email protected] (Lukas Kahwe Smith)
| Newsgroups | php.pdo |
|---|---|
| Message-ID | <[email protected]> |
On 29.01.2008, at 08:57, Lukas Kahwe Smith wrote: > > On 29.01.2008, at 03:29, David Coallier wrote: > >> Ben Ramsey has suggested a rather sexy way of handling this CLA >> problem. I'll repeat it in case some missed it but briefly. PDO >> Core&Specs being not CLAd and the specific vendor drivers being CLAd. >> I believe this is a GREAT compromise and since the community don't >> seem to want to have to sign a CLA for PDO development, perhaps the >> vendor specific drivers could be also hosted elsewhere with their own >> bug reporting tools et al ? >> >> Considering what Bill mentioned about being able to write their own >> code on their sides (http://news.php.net/php.pdo/37) That means that >> in theory the vendors could have their specific drivers hosted on >> their boxes and we (the community) could implement our own PDO >> drivers >> and there wouldn't be any IP conflicts (Considering that no one stole >> code from anyone of course) > > Yes, I think this idea does have some merit, though there are some > challenges to overcome here too. Some on our side (syncing changes > with the core PHP distribution, leveraging a proxy to feed php.net > changes back to the external vendors) and some on their side (like > accepting that the core of PDO and the specs are not CLA'ed). We talked about this on IRC a bit. Some notes: 1) If we decide that we do not have a core PDO package, it might make the legal situation a lot easier for outside vendors. This could also make things faster (less overhead), but it creates all sorts of issues: - how to still be able to have multiple pdo drivers loaded, while having an overlap in class names - code duplication could lead to even more inconsistencies (is a spec and tests enough, more on this in 2)) - code duplication means duplicate efforts 2) Do we need to define reference implementations? I tend to think that PDOv2_SQLITE would be a good candidate since its easily bundled and available for all without additional installation/maintenance of some outside component. While SQLITE covers a lot of aspects, it does not cover everything we might want to cover in the specs. I guess this point is really independent of this entire CLA debate, as the problem of different interpretations of a spec is always given. However if we have different vendors writing drivers in their own repo, then it magnifies the problems of what happens if there are oversights in the specs. Will IBM change its driver to match Oracles or vice versa? 3) If we do go this route, it means that php.net would vouch for the third party drivers the second they are bundled with PHP core. This means that we still need to keep tabs on the code (which is hard if we only bulk sync before a release). Also we would need to still be able to provide support to end users etc. 4) Another issue that will frequently cause needs for updates in the drivers are changes in internal API's. While this will in some cases be straight forward, this might in some cases require larger changes in the code. PHP.net would then either have to quickly adapt the code as necessary or wait until the relevant vendor has adapted things. If we adapt the code, then the changes will obviously be lost on the next sync. What are other issues? What are the benefits in simplifying the legal situation? Is there even a chance that the spec (and a core PDO package) we maintained outside of CLA coverage and still have the vendors be able to contribute drivers? regards, Lukas