-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Breaking change in v7.3.2 & v7.3.3 for cachetool
task
#3741
Comments
@infabo please, take a look. |
I gonna submit a PR patch later today. I already was afraid of a side effect like this one. |
@claytonrcarter Please have a look at #3742 if this PR fixes the issue. |
Thank you both for the fix! @antonmedv Is there any chance we'll be getting a new point release soon to fix this publicly? |
Yes, will release Deployer today. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi, we recently updated from 7.3.1 to 7.3.3 and found that our very "default" cachetool usage stopped working. (The only cachetool config we have set is
set('bin/cachetool', 'vendor/bin/cachetool')
so use the composer installed version.) The issue was introduced by #3684 – where is caused a loud failure – and then tweaked by cb28eb8 – where it now causes a silent failure.The issue is that the
cachetool
setting is''
(empty string) by default (see https://github.com/deployphp/deployer/blob/master/contrib/cachetool.php#L50) but the new changes incachetool_options
(see diff of 7.3.1...master at v7.3.1...master#diff-3ff1b6689a573050ee941e9cf0474c9f96a4ff7697a386d9c1af6b320fc10ce6) mean that this default value leads to no invocations ofcachetool
:cachetool
starts as''
['']
foreach ... if
)cachetool_options
cachetool:clear:opcache
iterates over this array, doing nothing because it's emptyBased on the code, it seems that this will affect any of the
cachetool:*
tasks, as they all iterate overcachetool_options
, but I have only experienced it withcachetool:clear:opcache
Workaround
I have found that
set('cachetool_args', ' ');
is an effective workaround for the time being. Note that it needs the second arg to be a non-empty string of only whitespace.Possible Fixes
I'm sorry, but I don't have the time or wherewithal to test and submit a fix for this at this time. The options that jump out at me, though, are:
(array)get('cachetool');
, and doif ($options === '') { return [''] }
, then cast(array) $options
when it's given to the foreachforeach
to something like$return[] = empty($option) ? '' : "--fcgi={$option}"
Thank you!
Upvote & Fund
The text was updated successfully, but these errors were encountered: