Skip to content

Commit 863e668

Browse files
committed
Clarify docs on tasks requirements
1 parent 54516c5 commit 863e668

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

lib/mix/lib/mix/task.ex

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)