As someone frequently grooming task boards on behalf of teams, I want to automate sorting tasks into matching columns, so that I don't disrupt team workflows or send unwanted notifications.
Teams frequently use Milestones as quarterly Kanban boards/boundaries for work. For instance: https://phabricator.wikimedia.org/project/view/4458/ and https://phabricator.wikimedia.org/project/manage/4717/. When the quarter turns over, some tasks remain, and need to be carried over from one quarterly board to another (assuming the work continues). Typically, the boards have exactly the same columns (when a new Milestone is created, the columns are imported to the new board from the previous in the series). Occasionally, this is not true (a team might iterate a change in process between quarters), but that is atypical.
Right now, this process means batch-editing the tasks (ideally silently), importing columns from the old board to the new board, and then manually "restoring" the tasks to the new-but-the-same columns on the new board. This results in
- a delay of work,
- as well as notifications for anyone who has those activated for when tasks change columns.
- It is also is awkward to do, especially with Milestones. Normally, Phabricator boards can be cross-tagged, so even if a new board is made and meant to be identical in columns and task-locations a user can simply tag the tasks to the new board and use the first board as a reference. With Milestones, the tasks are exclusive between Milestones (because Milestones are also columns), so after a batch-edit (in this case, really a "batch-move") the original layout is destroyed.
- The only way to have the original reference for tasks-in-columns is to have an untouched tab open separately (since it won't live update, only when the page is refreshed), or take screenshots.
Ideally, there would be a mechanism that would look for identically-named columns between boards (esp Milestones on the same board), and if the column names match (which they would in an "import" scenario) the tasks are automatically distributed to the respective column. In the example links above, the columns are things like "Upcoming" or "Doing" or "Needs QA" etc. This should also respect any silencing command that the batch edit required (e.g. "make-silent --id"), so that silent edits aren't only silent for the changes but also for when the tasks move between columns.