79 lines
3.0 KiB
Markdown
Executable File
79 lines
3.0 KiB
Markdown
Executable File
<!-- Generated with Stardoc: http://skydoc.bazel.build -->
|
|
|
|
Skylib module containing utilities for Bazel modules and module extensions.
|
|
|
|
<a id="modules.as_extension"></a>
|
|
|
|
## modules.as_extension
|
|
|
|
<pre>
|
|
modules.as_extension(<a href="#modules.as_extension-macro">macro</a>, <a href="#modules.as_extension-doc">doc</a>)
|
|
</pre>
|
|
|
|
Wraps a WORKSPACE dependency macro into a module extension.
|
|
|
|
Example:
|
|
```starlark
|
|
def rules_foo_deps(optional_arg = True):
|
|
some_repo_rule(name = "foobar")
|
|
http_archive(name = "bazqux")
|
|
|
|
rules_foo_deps_ext = modules.as_extension(rules_foo_deps)
|
|
```
|
|
|
|
|
|
**PARAMETERS**
|
|
|
|
|
|
| Name | Description | Default Value |
|
|
| :------------- | :------------- | :------------- |
|
|
| <a id="modules.as_extension-macro"></a>macro | A [WORKSPACE dependency macro](https://bazel.build/rules/deploying#dependencies), i.e., a function with no required parameters that instantiates one or more repository rules. | none |
|
|
| <a id="modules.as_extension-doc"></a>doc | A description of the module extension that can be extracted by documentation generating tools. | `None` |
|
|
|
|
**RETURNS**
|
|
|
|
A module extension that generates the repositories instantiated by the given macro and also
|
|
uses [`use_all_repos`](#use_all_repos) to indicate that all of those repositories should be
|
|
imported via `use_repo`. The extension is marked as reproducible if supported by the current
|
|
version of Bazel and thus doesn't result in a lockfile entry.
|
|
|
|
|
|
<a id="modules.use_all_repos"></a>
|
|
|
|
## modules.use_all_repos
|
|
|
|
<pre>
|
|
modules.use_all_repos(<a href="#modules.use_all_repos-module_ctx">module_ctx</a>, <a href="#modules.use_all_repos-reproducible">reproducible</a>)
|
|
</pre>
|
|
|
|
Return from a module extension that should have all its repositories imported via `use_repo`.
|
|
|
|
Example:
|
|
```starlark
|
|
def _ext_impl(module_ctx):
|
|
some_repo_rule(name = "foobar")
|
|
http_archive(name = "bazqux")
|
|
return modules.use_all_repos(module_ctx)
|
|
|
|
ext = module_extension(_ext_impl)
|
|
```
|
|
|
|
|
|
**PARAMETERS**
|
|
|
|
|
|
| Name | Description | Default Value |
|
|
| :------------- | :------------- | :------------- |
|
|
| <a id="modules.use_all_repos-module_ctx"></a>module_ctx | The [`module_ctx`](https://bazel.build/rules/lib/builtins/module_ctx) object passed to the module extension's implementation function. | none |
|
|
| <a id="modules.use_all_repos-reproducible"></a>reproducible | The value of the `reproducible` parameter to pass to the [`extension_metadata`](https://bazel.build/rules/lib/builtins/extension_metadata.html) object returned by this function. This is safe to set with Bazel versions that don't support this parameter and will be ignored in that case. | `False` |
|
|
|
|
**RETURNS**
|
|
|
|
An [`extension_metadata`](https://bazel.build/rules/lib/builtins/extension_metadata.html)
|
|
object that, when returned from a module extension implementation function, specifies that all
|
|
repositories generated by this extension should be imported via `use_repo`. If the current
|
|
version of Bazel doesn't support `extension_metadata`, returns `None` instead, which can
|
|
safely be returned from a module extension implementation function in all versions of Bazel.
|
|
|
|
|