# DefaultInfo

{% dynamic setvar source_file "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/DefaultInfoApi.java" %} {% dynamic setvar version "8.2.0" %} {% dynamic setvar original_path "/rules/lib/providers/DefaultInfo" %} {% include "_buttons.html" %} A provider that gives general information about a target's direct and transitive files. Every rule type has this provider, even if it is not returned explicitly by the rule's implementation function. Each `DefaultInfo` instance has the following fields:

- `files`
- `files_to_run`
- `data_runfiles`
- `default_runfiles`

See the rules page for extensive guides on how to use this provider.

## Members

- DefaultInfo
- data_runfiles
- default_runfiles
- files
- files_to_run

## DefaultInfo

    DefaultInfo DefaultInfo(files=None, runfiles=None, data_runfiles=None, default_runfiles=None, executable=None)

The `DefaultInfo` constructor.

### Parameters

Parameter | Description
--- | ---
`files` | depset; or `None`; default is `None` A `depset` of `File` objects representing the default outputs to build when this target is specified on the bazel command line. By default it is all predeclared outputs.
`runfiles` | runfiles; or `None`; default is `None` runfiles descriptor describing the files that this target needs when run (via the `run` command or as a tool dependency).
`data_runfiles` | runfiles; or `None`; default is `None` It is recommended that you avoid using this parameter (see "runfiles features to avoid") runfiles descriptor describing the runfiles this target needs to run when it is a dependency via the `data` attribute.
`default_runfiles` | runfiles; or `None`; default is `None` It is recommended that you avoid using this parameter (see "runfiles features to avoid") runfiles descriptor describing the runfiles this target needs to run when it is a dependency via any attribute other than the `data` attribute.
`executable` | File; or `None`; default is `None` If this rule is marked `executable` or `test`, this is a `File` object representing the file that should be executed to run the target. By default it is the predeclared output `ctx.outputs.executable` but it is recommended to pass another file (either predeclared or not) explicitly.

## data_runfiles

    runfiles DefaultInfo.data_runfiles

runfiles descriptor describing the files that this target needs when run in the condition that it is a `data` dependency attribute. Under most circumstances, use the `default_runfiles` parameter instead. See "runfiles features to avoid" for details. May return `None`.

## default_runfiles

    runfiles DefaultInfo.default_runfiles

runfiles descriptor describing the files that this target needs when run (via the `run` command or as a tool dependency). May return `None`.

## files

    depset DefaultInfo.files

A `depset` of `File` objects representing the default outputs to build when this target is specified on the bazel command line. By default it is all predeclared outputs. May return `None`.

## files_to_run

    FilesToRunProvider DefaultInfo.files_to_run

A `FilesToRunProvider` object containing information about the executable and runfiles of the target. May return `None`.