| --- |
| 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.6.0/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.6.0/rules/lib/builtins/depset); or `None`; default is `None` A [`depset`](/versions/8.6.0/rules/lib/builtins/depset) of [`File`](/versions/8.6.0/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.6.0/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.6.0/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.6.0/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.6.0/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.6.0/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.6.0/rules/lib/builtins/File); or `None`; default is `None` If this rule is marked [`executable`](/versions/8.6.0/rules/lib/globals/bzl#rule.executable) or [`test`](/versions/8.6.0/rules/lib/globals/bzl#rule.test), this is a [`File`](/versions/8.6.0/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.6.0/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.6.0/rules/lib/builtins/depset) of [`File`](/versions/8.6.0/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.6.0/rules/lib/providers/FilesToRunProvider) object containing information about the executable and runfiles of the target. |
| May return `None`. |