This week, phabricator changed the terminology it uses for managing dependencies between tasks. What has been called "Blocking"/"Blocked by" is now called "Parent"/"Subtask". Ignoring phab terminology for a minute, here are the two basic cases these terms are covering:

1. Sequential dependencies. For example, if "Implement feature X" needed to be complete before "Document feature X", then the implementation task would Block the document task, and the document task would be blocked by the implement task.

2. Composition relationships/task breakdown. For example, if "deploy feature X" consisted of "implement feature X" and "document feature X", then the deploy task might be a parent, while the implement and document tasks would be subtasks.

Until recently, phab has used the blocking/blocked by term to cover both cases. A parent task would be blocked by its subtasks. There was a command to create a subtask, which would create the appropriate blocking relationships.

Now, phab uses the parent/subtask terminology to cover both cases. In the sequential tasks case, the endpoint would be considered the parent, so in the example above, "document" would be the parent, and "implement" would be its subtask. Note that a task may have multiple "parents".

A nice feature they added is the ability to manage the parent/subtask relationship from either end. While editing a task, you can change its subtasks or its parents. Previously, you could only edit one direction.

I created T139181 as a task to update our wiki phab documentation.

Kevin Smith
Agile Coach, Wikimedia Foundation