Hi,
First off thank you for the work you put into this library I do really appreciate it but,
I have recently updated multiple machines using the couchbase php-sdk just to find out that
a new dependency was added that is not automatically installed with the upgrade.
Please for the future, use proper semver to prevent these kind of changes to go into a minor version,
and don’t label such breaking changes as:
<< This is the GA release of the 2.2.4 SDK. It is a maitenance release
with several fixes: >>
It’s not a maintenance release if it requires you to change the system that is using this library.
This breakage wasn’t intended, and rather bug, and not API change. Our versions numbers are more about API, so we will fix the issue in next release, and increase major version when we will introduce backwards incompatible changes to interfaces.
In this case, no API was changed. A dependency was added which semver explicitly allows for. Also, the addition was documented. In other words, we did follow semver.org’s spec.
That said, It’s been more problematic than we thought for folks. We didn’t see the same problems in our environment. So we’re planning to remove it under PCBC-443.
I don’t know if you thought about it, but from the perspective here a more pragmatic approach than moving everything into C would also be ok, if not preferred: Moving the PHP part to the “user space”. The PHP part of the SDK could be a normal Composer package.
Pros:
No need for PCS
Not really much work.
The performance problems are gone. The PHP files are only compiled if needed. An opcode cache can further speed up things.
No need for separate stubs and stub updates in IDEs like PhpStorm any more. The IDE can fetch the information needed from the package and it is always up to date.
The users of the PHP SDK must often have look in the implementation of the SDK, because the API documentation is so rudimentary. They would have the information directly in the IDE.
At least theoretically the chance for code contributions from the user community increases, as the users are PHP developers and more likely will contribute PHP code.
Cons:
The installation process has two parts: Installing the C Wrapper and getting the PHP classes. It can be more work to sync the versions of the both parts.