Closed claytonrcarter closed 6 months ago
@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 https://github.com/deployphp/deployer/pull/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.
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 cb28eb82ff7549c888127ae29cb49024d2f2ca00 – 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 https://github.com/deployphp/deployer/compare/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