blob: 7e4a595a58b2d500e022482d21327ea6f516ea74 [file]
---
title: 'DefaultInfo'
---
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](https://bazel.build/versions/8.5.1/extending/rules) page for extensive guides on how to use this provider.
## Members
* [DefaultInfo](#DefaultInfo)
* [data\_runfiles](#data_runfiles)
* [default\_runfiles](#default_runfiles)
* [files](#files)
* [files\_to\_run](#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](/versions/8.5.1/rules/lib/builtins/depset); or `None`; default is `None` A [`depset`](/versions/8.5.1/rules/lib/builtins/depset) of [`File`](/versions/8.5.1/rules/lib/builtins/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](/versions/8.5.1/rules/lib/builtins/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](/versions/8.5.1/rules/lib/builtins/runfiles); or `None`; default is `None` **It is recommended that you avoid using this parameter (see ["runfiles features to avoid"](https://bazel.build/versions/8.5.1/extending/rules#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](/versions/8.5.1/rules/lib/builtins/runfiles); or `None`; default is `None` **It is recommended that you avoid using this parameter (see ["runfiles features to avoid"](https://bazel.build/versions/8.5.1/extending/rules#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](/versions/8.5.1/rules/lib/builtins/File); or `None`; default is `None` If this rule is marked [`executable`](/versions/8.5.1/rules/lib/globals/bzl#rule.executable) or [`test`](/versions/8.5.1/rules/lib/globals/bzl#rule.test), this is a [`File`](/versions/8.5.1/rules/lib/builtins/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"](https://bazel.build/versions/8.5.1/extending/rules#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`](/versions/8.5.1/rules/lib/builtins/depset) of [`File`](/versions/8.5.1/rules/lib/builtins/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`](/versions/8.5.1/rules/lib/providers/FilesToRunProvider) object containing information about the executable and runfiles of the target.
May return `None`.