Page MenuHomeSolus

Arcanist errors with PHP 7.4.13
Closed, InvalidPublic


I updated to PHP 7.4.13 locally.
Unfortunately arc diff outputs an error:

[2020-12-24 07:55:56] ERROR 8192: implode(): Passing glue string after array is deprecated. Swap the parameters at [/usr/share/php/libphutil/src/utils/utils.php:1706]
arcanist(), phutil()
  #0 implode(array, string) called at [<phutil>/src/utils/utils.php:1706]
  #1 phutil_build_http_querystring_from_pairs(array) called at [<phutil>/src/utils/utils.php:1678]
  #2 phutil_build_http_querystring(array) called at [<phutil>/src/future/http/HTTPSFuture.php:656]
  #3 HTTPSFuture::formatRequestDataForCURL() called at [<phutil>/src/future/http/HTTPSFuture.php:280]
  #4 HTTPSFuture::isReady() called at [<phutil>/src/future/Future.php:37]
  #5 Future::resolve(NULL) called at [<phutil>/src/future/FutureProxy.php:34]
  #6 FutureProxy::resolve() called at [<phutil>/src/conduit/ConduitClient.php:64]
  #7 ConduitClient::callMethodSynchronous(string, array) called at [<arcanist>/src/workflow/ArcanistWorkflow.php:332]
  #8 ArcanistWorkflow::authenticateConduit() called at [<arcanist>/scripts/arcanist.php:356]

So for newer PHP versions we would need a newer or a patched arcanist version.

I've built a newer arcanist version locally against the stable branch. I had to remove all the patches for the build process to work but at least arc diff works. If wanted I could make a diff for my locally made changes, but someone more experienced with arcanist than I would need to finish it.

Event Timeline

kaktuspalme updated the task description. (Show Details)Dec 24 2020, 8:28 AM
Girtablulu edited projects, added Software, Plumbing; removed Lacks Project.
JoshStrobl closed this task as Invalid.Jan 2 2021, 12:55 PM
JoshStrobl removed JoshStrobl as the assignee of this task.
JoshStrobl added a subscriber: JoshStrobl.

All of the patches we have are intentional and need to be rebased, likely on top of an updated arcanist.

Should you update arcanist and rebase the patches, you can use arcanist itself to validate that it still functions. If you don't have the expertise to update that PHP codebase then it may be wiser for someone else with broader PHP expertise to handle it and PHP itself.