code: public void addDependencyTaskGroup(TaskGroup dependencyTaskGroup) {
          if (dependencyTaskGroup.proxyTaskGroupWrapper.isActive()) {
              dependencyTaskGroup.proxyTaskGroupWrapper.addDependentTaskGroup(this);
          } else {
              DAGraph<TaskItem, TaskGroupEntry<TaskItem>> dependencyGraph = dependencyTaskGroup;
              super.addDependencyGraph(dependencyGraph);
          }
      }
docs: Mark root of this task task group depends on the given task group's root.
  This ensure this task group's root get picked for execution only after the completion
  of all tasks in the given group.
  
  @param dependencyTaskGroup the task group that this task group depends on