composer.lock is always read from home directory instead tests
Hi,
I am in the process of updating my code to use the latest version of the library. To ensure that the current working environment continues to function properly, I created another directory and installed the latest version of the library with Composer in this new directory. For this, I made multiple composer.json files in different directories so that my structure looks like this:
/my-project
/application
/vendor
composer.json
/tests
/vendor
composer.json
And autoload the vendor using:
require_once '/tests/vendor/autoload.php'
Now, When I tried to build an instance of the GoogleAdsClient object, I received the following error:
The grpc extension installed by Composer has a greater version than that installed by PECL. Upgrade the PECL extension to avoid issues caused by the version difference. For linux, run "sudo pecl install grpc".
To ensure I have the correct version of grpc, I checked with composer show and found that the version installed by PECL is greater than the one installed by Composer.
When I closely checked the Dependencies.php under Util, I noticed it was checking the composer.lock from the /my-project (the home directory of the project).
How can I tell the library to read files from /tests instead of the home directory /my-project?
Thanks,
I believe we cannot do that yet with the current version of the GoogleAdsClientBuilder class.
I'm considering allowing for bypassing that check (with users' own risks) when creating the GoogleAdsClient.
Hi @fiboknacky ,
Thanks for considering this, If you can guide how I can do as of now?
Thanks,
The quick fix for now is to comment out everything in getGrpcComposerVersion except for the last line return null;. That will make the client library skip comparing versions between composer.lock and the system package.