I have a new solution for all of these requests that you might want to check out:
It automatically sets the dates of a dependent task if its earlier dependency task is marked complete.
It automatically adjusts the dates of a dependent task if its earlier dependency task is shifted.
It lets you set a general duration for a task instead of a specific due date; then it uses the duration to automatically set and maintain the due date.
It allows you to set a start date for a project and it then automatically sets all of the dates for all of the project’s tasks appropriately.