@@ -58,14 +58,22 @@ defmodule Mix.Task do
5858
5959 @requirements ["app.config"]
6060
61- Tasks typically depend on the `"app.config"` task, when they
62- need to access code from the current project with all apps
63- already configured, or the "app.start" task, when they also
64- need those apps to be already started:
65-
66- @requirements ["app.start"]
67-
68- You can also run tasks directly with `run/2`.
61+ A task will typically depend on one of the following tasks:
62+
63+ * "loadpaths" - this ensures dependencies are available
64+ and compiled. If you are publishing a task as part of
65+ a library to be used by others, and your task does not
66+ need to interact with the user code in any way, this is
67+ the recommended requirement
68+
69+ * "app.config" - additionally compiles and loads the runtime
70+ configuration for the current project. If you are creating
71+ a task to be used within your application or as part of a
72+ library, which must invoke or interact with the user code,
73+ this is the minimum recommended requirement
74+
75+ * "app.start" - additionally starts the supervision tree of
76+ the current project and its dependencies
6977
7078 Finally, set `@recursive true` if you want the task to run
7179 on each umbrella child in an umbrella project.
0 commit comments