Restrucutred `crate_universe` dependency macros (#1208)
* Restrucutred `crate_universe` dependency macros
* Regenerate documentation
* Fixed load issue in crate_universe dependencies
diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel
index 94f2e62..8ad16b6 100644
--- a/WORKSPACE.bazel
+++ b/WORKSPACE.bazel
@@ -6,9 +6,9 @@
rust_register_toolchains(include_rustc_srcs = True)
-load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
-crate_deps_repository(bootstrap = True)
+crate_universe_dependencies(bootstrap = True)
load("@rules_rust//proto:repositories.bzl", "rust_proto_repositories")
diff --git a/crate_universe/3rdparty/BUILD.bazel b/crate_universe/3rdparty/BUILD.bazel
index d6d92ce..befa424 100644
--- a/crate_universe/3rdparty/BUILD.bazel
+++ b/crate_universe/3rdparty/BUILD.bazel
@@ -1,4 +1,4 @@
-load("//crate_universe:crates.bzl", "crate_deps_target")
+load("//crate_universe:repositories.bzl", "crate_deps_target")
package(default_visibility = ["//visibility:public"])
diff --git a/crate_universe/crates.bzl b/crate_universe/crates.bzl
index 752b8d1..cf694e8 100644
--- a/crate_universe/crates.bzl
+++ b/crate_universe/crates.bzl
@@ -1,70 +1,8 @@
-"""A module defining dependencies of the `cargo-bazel` Rust target"""
+"""**DEPRECATED** - Instead, use `@rules_rust//crate_universe:repositories.bzl"""
-load("@rules_rust//rust:defs.bzl", "rust_common")
-load("//crate_universe:deps_bootstrap.bzl", "cargo_bazel_bootstrap")
-load("//crate_universe/3rdparty:third_party_deps.bzl", "third_party_deps")
-load("//crate_universe/3rdparty/crates:crates.bzl", _vendor_crate_repositories = "crate_repositories")
-load("//crate_universe/private:crate.bzl", "crate")
-load("//crate_universe/private:crates_repository.bzl", "crates_repository")
-load("//crate_universe/private:crates_vendor.bzl", "crates_vendor")
-load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps")
-load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps")
+load(":repositories.bzl", "crate_universe_dependencies")
-USE_CRATES_REPOSITORY = False
-
-_REPOSITORY_NAME = "crate_index"
-
-_ANNOTATIONS = {
- "libgit2-sys": [crate.annotation(
- gen_build_script = False,
- deps = ["@libgit2"],
- )],
- "libz-sys": [crate.annotation(
- gen_build_script = False,
- deps = ["@zlib"],
- )],
-}
-
-_MANIFESTS = [
- "@rules_rust//crate_universe:Cargo.toml",
- "@rules_rust//crate_universe/tools/cross_installer:Cargo.toml",
- "@rules_rust//crate_universe/tools/urls_generator:Cargo.toml",
-]
-
-def crate_deps_repository(rust_version = rust_common.default_version, bootstrap = False):
- """Define dependencies of the `cargo-bazel` Rust target
-
- Args:
- rust_version (str, optional): The version of rust to use when generating dependencies.
- bootstrap (bool, optional): If true, a `cargo_bootstrap_repository` target will be generated.
- """
- third_party_deps()
-
- cargo_bazel_bootstrap(rust_version = rust_version)
-
- if USE_CRATES_REPOSITORY:
- crates_repository(
- name = _REPOSITORY_NAME,
- annotations = _ANNOTATIONS,
- generator = "@cargo_bazel_bootstrap//:cargo-bazel" if bootstrap else None,
- lockfile = "@rules_rust//crate_universe:Cargo.Bazel.lock",
- manifests = _MANIFESTS,
- rust_version = rust_version,
- )
-
- else:
- _vendor_crate_repositories()
-
- crates_vendor_deps()
- cross_installer_deps()
-
-def crate_deps_target(name = "crates_vendor", vendor_path = "crates"):
- crates_vendor(
- name = name,
- repository_name = _REPOSITORY_NAME,
- annotations = _ANNOTATIONS,
- manifests = _MANIFESTS,
- vendor_path = vendor_path,
- mode = "remote",
- tags = ["manual"],
- )
+def crate_deps_repository(**kwargs):
+ # buildifier: disable=print
+ print("`crate_deps_repository` is deprecated. See setup instructions for how to update: https://bazelbuild.github.io/rules_rust/crate_universe.html#setup")
+ crate_universe_dependencies(**kwargs)
diff --git a/crate_universe/crates_deps.bzl b/crate_universe/crates_deps.bzl
index 5883d50..b6a7a1f 100644
--- a/crate_universe/crates_deps.bzl
+++ b/crate_universe/crates_deps.bzl
@@ -1,7 +1,7 @@
"""Transitive dependencies of the `cargo-bazel` Rust target"""
load("@crate_index//:defs.bzl", _repository_crate_repositories = "crate_repositories")
-load("//crate_universe:crates.bzl", "USE_CRATES_REPOSITORY")
+load("//crate_universe:repositories.bzl", "USE_CRATES_REPOSITORY")
def crate_repositories():
if USE_CRATES_REPOSITORY:
diff --git a/crate_universe/defs.bzl b/crate_universe/defs.bzl
index 41e4e5f..50ced14 100644
--- a/crate_universe/defs.bzl
+++ b/crate_universe/defs.bzl
@@ -11,18 +11,18 @@
After loading `rules_rust` in your workspace, set the following to begin using `crate_universe`:
```python
-load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
-crate_deps_repository()
+crate_universe_dependencies()
```
Note that if the current version of `rules_rust` is not a release artifact, you may need to set additional
-flags such as [`bootstrap = True`](#crate_deps_repository-bootstrap) on the `crate_deps_repository`
+flags such as [`bootstrap = True`](#crate_universe_dependencies-bootstrap) on the `crate_universe_dependencies`
call above or [crates_repository::generator_urls](#crates_repository-generator_urls) in uses of `crates_repository`.
## Rules
-- [crate_deps_repository](#crate_deps_repository)
+- [crate_universe_dependencies](#crate_universe_dependencies)
- [crates_repository](#crates_repository)
- [crates_vendor](#crates_vendor)
- [crate.annotation](#crateannotation)
@@ -161,8 +161,8 @@
"""
load(
- "//crate_universe:crates.bzl",
- _crate_deps_repository = "crate_deps_repository",
+ "//crate_universe:repositories.bzl",
+ _crate_universe_dependencies = "crate_universe_dependencies",
)
load(
"//crate_universe/private:crate.bzl",
@@ -186,7 +186,7 @@
)
crate = _crate
-crate_deps_repository = _crate_deps_repository
+crate_universe_dependencies = _crate_universe_dependencies
crates_repository = _crates_repository
crates_vendor = _crates_vendor
render_config = _render_config
diff --git a/crate_universe/repositories.bzl b/crate_universe/repositories.bzl
new file mode 100644
index 0000000..c131d78
--- /dev/null
+++ b/crate_universe/repositories.bzl
@@ -0,0 +1,70 @@
+"""A module defining dependencies of the `cargo-bazel` Rust target"""
+
+load("@rules_rust//rust:defs.bzl", "rust_common")
+load("//crate_universe:deps_bootstrap.bzl", "cargo_bazel_bootstrap")
+load("//crate_universe/3rdparty:third_party_deps.bzl", "third_party_deps")
+load("//crate_universe/3rdparty/crates:crates.bzl", _vendor_crate_repositories = "crate_repositories")
+load("//crate_universe/private:crate.bzl", "crate")
+load("//crate_universe/private:crates_repository.bzl", "crates_repository")
+load("//crate_universe/private:crates_vendor.bzl", "crates_vendor")
+load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps")
+load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps")
+
+USE_CRATES_REPOSITORY = False
+
+_REPOSITORY_NAME = "crate_index"
+
+_ANNOTATIONS = {
+ "libgit2-sys": [crate.annotation(
+ gen_build_script = False,
+ deps = ["@libgit2"],
+ )],
+ "libz-sys": [crate.annotation(
+ gen_build_script = False,
+ deps = ["@zlib"],
+ )],
+}
+
+_MANIFESTS = [
+ "@rules_rust//crate_universe:Cargo.toml",
+ "@rules_rust//crate_universe/tools/cross_installer:Cargo.toml",
+ "@rules_rust//crate_universe/tools/urls_generator:Cargo.toml",
+]
+
+def crate_universe_dependencies(rust_version = rust_common.default_version, bootstrap = False):
+ """Define dependencies of the `cargo-bazel` Rust target
+
+ Args:
+ rust_version (str, optional): The version of rust to use when generating dependencies.
+ bootstrap (bool, optional): If true, a `cargo_bootstrap_repository` target will be generated.
+ """
+ third_party_deps()
+
+ cargo_bazel_bootstrap(rust_version = rust_version)
+
+ if USE_CRATES_REPOSITORY:
+ crates_repository(
+ name = _REPOSITORY_NAME,
+ annotations = _ANNOTATIONS,
+ generator = "@cargo_bazel_bootstrap//:cargo-bazel" if bootstrap else None,
+ lockfile = "@rules_rust//crate_universe:Cargo.Bazel.lock",
+ manifests = _MANIFESTS,
+ rust_version = rust_version,
+ )
+
+ else:
+ _vendor_crate_repositories()
+
+ crates_vendor_deps()
+ cross_installer_deps()
+
+def crate_deps_target(name = "crates_vendor", vendor_path = "crates"):
+ crates_vendor(
+ name = name,
+ repository_name = _REPOSITORY_NAME,
+ annotations = _ANNOTATIONS,
+ manifests = _MANIFESTS,
+ vendor_path = vendor_path,
+ mode = "remote",
+ tags = ["manual"],
+ )
diff --git a/crate_universe/tools/cross_installer/BUILD.bazel b/crate_universe/tools/cross_installer/BUILD.bazel
index ecf6616..1b0aaf3 100644
--- a/crate_universe/tools/cross_installer/BUILD.bazel
+++ b/crate_universe/tools/cross_installer/BUILD.bazel
@@ -32,6 +32,7 @@
srcs = [
"BUILD.bazel",
"Cargo.toml",
+ "cross_installer_deps.bzl",
],
visibility = ["//crate_universe/tools:__pkg__"],
)
diff --git a/docs/WORKSPACE.bazel b/docs/WORKSPACE.bazel
index 1c5a736..8878edb 100644
--- a/docs/WORKSPACE.bazel
+++ b/docs/WORKSPACE.bazel
@@ -11,9 +11,9 @@
rust_register_toolchains(include_rustc_srcs = True)
-load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
-crate_deps_repository()
+crate_universe_dependencies()
load("@rules_rust//proto:repositories.bzl", "rust_proto_repositories")
diff --git a/docs/crate_universe.md b/docs/crate_universe.md
index 54066cd..9422dd0 100644
--- a/docs/crate_universe.md
+++ b/docs/crate_universe.md
@@ -13,18 +13,18 @@
After loading `rules_rust` in your workspace, set the following to begin using `crate_universe`:
```python
-load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
-crate_deps_repository()
+crate_universe_dependencies()
```
Note that if the current version of `rules_rust` is not a release artifact, you may need to set additional
-flags such as [`bootstrap = True`](#crate_deps_repository-bootstrap) on the `crate_deps_repository`
+flags such as [`bootstrap = True`](#crate_universe_dependencies-bootstrap) on the `crate_universe_dependencies`
call above or [crates_repository::generator_urls](#crates_repository-generator_urls) in uses of `crates_repository`.
## Rules
-- [crate_deps_repository](#crate_deps_repository)
+- [crate_universe_dependencies](#crate_universe_dependencies)
- [crates_repository](#crates_repository)
- [crates_vendor](#crates_vendor)
- [crate.annotation](#crateannotation)
@@ -352,12 +352,12 @@
string: A json encoded string of all inputs
-<a id="#crate_deps_repository"></a>
+<a id="#crate_universe_dependencies"></a>
-## crate_deps_repository
+## crate_universe_dependencies
<pre>
-crate_deps_repository(<a href="#crate_deps_repository-rust_version">rust_version</a>, <a href="#crate_deps_repository-bootstrap">bootstrap</a>)
+crate_universe_dependencies(<a href="#crate_universe_dependencies-rust_version">rust_version</a>, <a href="#crate_universe_dependencies-bootstrap">bootstrap</a>)
</pre>
Define dependencies of the `cargo-bazel` Rust target
@@ -367,8 +367,8 @@
| Name | Description | Default Value |
| :------------- | :------------- | :------------- |
-| <a id="crate_deps_repository-rust_version"></a>rust_version | The version of rust to use when generating dependencies. | <code>"1.59.0"</code> |
-| <a id="crate_deps_repository-bootstrap"></a>bootstrap | If true, a <code>cargo_bootstrap_repository</code> target will be generated. | <code>False</code> |
+| <a id="crate_universe_dependencies-rust_version"></a>rust_version | The version of rust to use when generating dependencies. | <code>"1.59.0"</code> |
+| <a id="crate_universe_dependencies-bootstrap"></a>bootstrap | If true, a <code>cargo_bootstrap_repository</code> target will be generated. | <code>False</code> |
<a id="#render_config"></a>
diff --git a/examples/crate_universe/WORKSPACE.bazel b/examples/crate_universe/WORKSPACE.bazel
index 40b4b08..f78b777 100644
--- a/examples/crate_universe/WORKSPACE.bazel
+++ b/examples/crate_universe/WORKSPACE.bazel
@@ -11,9 +11,9 @@
rust_register_toolchains(include_rustc_srcs = True)
-load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
+load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
-crate_deps_repository()
+crate_universe_dependencies()
load("@rules_rust//crate_universe:crates_deps.bzl", "crate_repositories")