The original discussion: Q144
workOnTask() is not implemented in https://we.phorge.it/source/arcanist/browse/master/src/work/ArcanistWorkEngine.php$208.
Because of that, it's impossible to automatically link diffs to tasks in arcanist:
$ arc work T7 ... [2024-07-24 05:09:31] EXCEPTION: (Exception) TODO: Implement this workflow. at [<arcanist>/src/work/ArcanistWorkEngine.php:208] arcanist(head=master, ref.master=6250296648fa), libletterty(head=main, ref.main=492f9f3a9684) #0 ArcanistWorkEngine::workOnTask(string) called at [<arcanist>/src/work/ArcanistWorkEngine.php:66] #1 ArcanistWorkEngine::execute() called at [<arcanist>/src/workflow/ArcanistWorkWorkflow.php:90] #2 ArcanistWorkWorkflow::runWorkflow(PhutilArgumentParser) called at [<arcanist>/src/workflow/ArcanistWorkflow.php:227] #3 ArcanistWorkflow::executeWorkflow(PhutilArgumentParser) called at [<arcanist>/src/toolset/ArcanistPhutilWorkflow.php:21] #4 ArcanistPhutilWorkflow::execute(PhutilArgumentParser) called at [<arcanist>/src/parser/argument/PhutilArgumentParser.php:492] #5 PhutilArgumentParser::parseWorkflowsFull(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:171] #6 ArcanistRuntime::executeCore(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:37] #7 ArcanistRuntime::execute(array) called at [<arcanist>/support/init/init-arcanist.php:6] #8 require_once(string) called at [<arcanist>/bin/arc:10]
Arcanist automatically links a branch that contains a task id in the name with the respective task when running arc diff. So, it only remains to implement the auto-generation of a branch name from the task id. For example, arc work T15121 would take T15121's name ("Contributor Agreement"), convert it to a valid branch name ("T15121-contributor-agreement"), and then follow the same steps that arc work T15121-contributor-agreement would have done.
We have patched it on our side and have been using it successfully. We'll submit a diff with the fix in case the owners of the main Phorge repository would want to merge it.
Feature Description
Starting point | Command | What Should Happen |
---|---|---|
master | arc work T15993 | Creating new branch T15993-support-for-arc-work-t12345-something-something, based on master, and checkout there |
(the branch of T15993 from the previous line) | arc work T15993 | Still on that branch |
(the branch of T15993 from the previous line) | arc work T15187 | Creating new branch T15187-fix-arcanist-something-something, based on T15993, and checkout there |
master | arc work --start stable T15100 | Creating new branch T15100-feature-request-option-to-measure-WIP, based on stable, and checkout there |