Skip to content

Commit 628e85e

Browse files
authored
Restrucutred crate_universe dependency macros (bazelbuild#1208)
* Restrucutred `crate_universe` dependency macros * Regenerate documentation * Fixed load issue in crate_universe dependencies
1 parent e3d67a0 commit 628e85e

File tree

10 files changed

+101
-92
lines changed

10 files changed

+101
-92
lines changed

WORKSPACE.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ rules_rust_dependencies()
66

77
rust_register_toolchains(include_rustc_srcs = True)
88

9-
load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
9+
load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
1010

11-
crate_deps_repository(bootstrap = True)
11+
crate_universe_dependencies(bootstrap = True)
1212

1313
load("@rules_rust//proto:repositories.bzl", "rust_proto_repositories")
1414

crate_universe/3rdparty/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("//crate_universe:crates.bzl", "crate_deps_target")
1+
load("//crate_universe:repositories.bzl", "crate_deps_target")
22

33
package(default_visibility = ["//visibility:public"])
44

crate_universe/crates.bzl

Lines changed: 6 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,8 @@
1-
"""A module defining dependencies of the `cargo-bazel` Rust target"""
1+
"""**DEPRECATED** - Instead, use `@rules_rust//crate_universe:repositories.bzl"""
22

3-
load("@rules_rust//rust:defs.bzl", "rust_common")
4-
load("//crate_universe:deps_bootstrap.bzl", "cargo_bazel_bootstrap")
5-
load("//crate_universe/3rdparty:third_party_deps.bzl", "third_party_deps")
6-
load("//crate_universe/3rdparty/crates:crates.bzl", _vendor_crate_repositories = "crate_repositories")
7-
load("//crate_universe/private:crate.bzl", "crate")
8-
load("//crate_universe/private:crates_repository.bzl", "crates_repository")
9-
load("//crate_universe/private:crates_vendor.bzl", "crates_vendor")
10-
load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps")
11-
load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps")
3+
load(":repositories.bzl", "crate_universe_dependencies")
124

13-
USE_CRATES_REPOSITORY = False
14-
15-
_REPOSITORY_NAME = "crate_index"
16-
17-
_ANNOTATIONS = {
18-
"libgit2-sys": [crate.annotation(
19-
gen_build_script = False,
20-
deps = ["@libgit2"],
21-
)],
22-
"libz-sys": [crate.annotation(
23-
gen_build_script = False,
24-
deps = ["@zlib"],
25-
)],
26-
}
27-
28-
_MANIFESTS = [
29-
"@rules_rust//crate_universe:Cargo.toml",
30-
"@rules_rust//crate_universe/tools/cross_installer:Cargo.toml",
31-
"@rules_rust//crate_universe/tools/urls_generator:Cargo.toml",
32-
]
33-
34-
def crate_deps_repository(rust_version = rust_common.default_version, bootstrap = False):
35-
"""Define dependencies of the `cargo-bazel` Rust target
36-
37-
Args:
38-
rust_version (str, optional): The version of rust to use when generating dependencies.
39-
bootstrap (bool, optional): If true, a `cargo_bootstrap_repository` target will be generated.
40-
"""
41-
third_party_deps()
42-
43-
cargo_bazel_bootstrap(rust_version = rust_version)
44-
45-
if USE_CRATES_REPOSITORY:
46-
crates_repository(
47-
name = _REPOSITORY_NAME,
48-
annotations = _ANNOTATIONS,
49-
generator = "@cargo_bazel_bootstrap//:cargo-bazel" if bootstrap else None,
50-
lockfile = "@rules_rust//crate_universe:Cargo.Bazel.lock",
51-
manifests = _MANIFESTS,
52-
rust_version = rust_version,
53-
)
54-
55-
else:
56-
_vendor_crate_repositories()
57-
58-
crates_vendor_deps()
59-
cross_installer_deps()
60-
61-
def crate_deps_target(name = "crates_vendor", vendor_path = "crates"):
62-
crates_vendor(
63-
name = name,
64-
repository_name = _REPOSITORY_NAME,
65-
annotations = _ANNOTATIONS,
66-
manifests = _MANIFESTS,
67-
vendor_path = vendor_path,
68-
mode = "remote",
69-
tags = ["manual"],
70-
)
5+
def crate_deps_repository(**kwargs):
6+
# buildifier: disable=print
7+
print("`crate_deps_repository` is deprecated. See setup instructions for how to update: https://bazelbuild.github.io/rules_rust/crate_universe.html#setup")
8+
crate_universe_dependencies(**kwargs)

crate_universe/crates_deps.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Transitive dependencies of the `cargo-bazel` Rust target"""
22

33
load("@crate_index//:defs.bzl", _repository_crate_repositories = "crate_repositories")
4-
load("//crate_universe:crates.bzl", "USE_CRATES_REPOSITORY")
4+
load("//crate_universe:repositories.bzl", "USE_CRATES_REPOSITORY")
55

66
def crate_repositories():
77
if USE_CRATES_REPOSITORY:

crate_universe/defs.bzl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@ Crate Universe is a set of Bazel rule for generating Rust targets using Cargo.
1111
After loading `rules_rust` in your workspace, set the following to begin using `crate_universe`:
1212
1313
```python
14-
load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
14+
load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
1515
16-
crate_deps_repository()
16+
crate_universe_dependencies()
1717
```
1818
1919
Note that if the current version of `rules_rust` is not a release artifact, you may need to set additional
20-
flags such as [`bootstrap = True`](#crate_deps_repository-bootstrap) on the `crate_deps_repository`
20+
flags such as [`bootstrap = True`](#crate_universe_dependencies-bootstrap) on the `crate_universe_dependencies`
2121
call above or [crates_repository::generator_urls](#crates_repository-generator_urls) in uses of `crates_repository`.
2222
2323
## Rules
2424
25-
- [crate_deps_repository](#crate_deps_repository)
25+
- [crate_universe_dependencies](#crate_universe_dependencies)
2626
- [crates_repository](#crates_repository)
2727
- [crates_vendor](#crates_vendor)
2828
- [crate.annotation](#crateannotation)
@@ -161,8 +161,8 @@ rust_test(
161161
"""
162162

163163
load(
164-
"//crate_universe:crates.bzl",
165-
_crate_deps_repository = "crate_deps_repository",
164+
"//crate_universe:repositories.bzl",
165+
_crate_universe_dependencies = "crate_universe_dependencies",
166166
)
167167
load(
168168
"//crate_universe/private:crate.bzl",
@@ -186,7 +186,7 @@ load(
186186
)
187187

188188
crate = _crate
189-
crate_deps_repository = _crate_deps_repository
189+
crate_universe_dependencies = _crate_universe_dependencies
190190
crates_repository = _crates_repository
191191
crates_vendor = _crates_vendor
192192
render_config = _render_config

crate_universe/repositories.bzl

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
"""A module defining dependencies of the `cargo-bazel` Rust target"""
2+
3+
load("@rules_rust//rust:defs.bzl", "rust_common")
4+
load("//crate_universe:deps_bootstrap.bzl", "cargo_bazel_bootstrap")
5+
load("//crate_universe/3rdparty:third_party_deps.bzl", "third_party_deps")
6+
load("//crate_universe/3rdparty/crates:crates.bzl", _vendor_crate_repositories = "crate_repositories")
7+
load("//crate_universe/private:crate.bzl", "crate")
8+
load("//crate_universe/private:crates_repository.bzl", "crates_repository")
9+
load("//crate_universe/private:crates_vendor.bzl", "crates_vendor")
10+
load("//crate_universe/private:vendor_utils.bzl", "crates_vendor_deps")
11+
load("//crate_universe/tools/cross_installer:cross_installer_deps.bzl", "cross_installer_deps")
12+
13+
USE_CRATES_REPOSITORY = False
14+
15+
_REPOSITORY_NAME = "crate_index"
16+
17+
_ANNOTATIONS = {
18+
"libgit2-sys": [crate.annotation(
19+
gen_build_script = False,
20+
deps = ["@libgit2"],
21+
)],
22+
"libz-sys": [crate.annotation(
23+
gen_build_script = False,
24+
deps = ["@zlib"],
25+
)],
26+
}
27+
28+
_MANIFESTS = [
29+
"@rules_rust//crate_universe:Cargo.toml",
30+
"@rules_rust//crate_universe/tools/cross_installer:Cargo.toml",
31+
"@rules_rust//crate_universe/tools/urls_generator:Cargo.toml",
32+
]
33+
34+
def crate_universe_dependencies(rust_version = rust_common.default_version, bootstrap = False):
35+
"""Define dependencies of the `cargo-bazel` Rust target
36+
37+
Args:
38+
rust_version (str, optional): The version of rust to use when generating dependencies.
39+
bootstrap (bool, optional): If true, a `cargo_bootstrap_repository` target will be generated.
40+
"""
41+
third_party_deps()
42+
43+
cargo_bazel_bootstrap(rust_version = rust_version)
44+
45+
if USE_CRATES_REPOSITORY:
46+
crates_repository(
47+
name = _REPOSITORY_NAME,
48+
annotations = _ANNOTATIONS,
49+
generator = "@cargo_bazel_bootstrap//:cargo-bazel" if bootstrap else None,
50+
lockfile = "@rules_rust//crate_universe:Cargo.Bazel.lock",
51+
manifests = _MANIFESTS,
52+
rust_version = rust_version,
53+
)
54+
55+
else:
56+
_vendor_crate_repositories()
57+
58+
crates_vendor_deps()
59+
cross_installer_deps()
60+
61+
def crate_deps_target(name = "crates_vendor", vendor_path = "crates"):
62+
crates_vendor(
63+
name = name,
64+
repository_name = _REPOSITORY_NAME,
65+
annotations = _ANNOTATIONS,
66+
manifests = _MANIFESTS,
67+
vendor_path = vendor_path,
68+
mode = "remote",
69+
tags = ["manual"],
70+
)

crate_universe/tools/cross_installer/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ filegroup(
3232
srcs = [
3333
"BUILD.bazel",
3434
"Cargo.toml",
35+
"cross_installer_deps.bzl",
3536
],
3637
visibility = ["//crate_universe/tools:__pkg__"],
3738
)

docs/WORKSPACE.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ rules_rust_dependencies()
1111

1212
rust_register_toolchains(include_rustc_srcs = True)
1313

14-
load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
14+
load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
1515

16-
crate_deps_repository()
16+
crate_universe_dependencies()
1717

1818
load("@rules_rust//proto:repositories.bzl", "rust_proto_repositories")
1919

docs/crate_universe.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ Crate Universe is a set of Bazel rule for generating Rust targets using Cargo.
1313
After loading `rules_rust` in your workspace, set the following to begin using `crate_universe`:
1414

1515
```python
16-
load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
16+
load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
1717

18-
crate_deps_repository()
18+
crate_universe_dependencies()
1919
```
2020

2121
Note that if the current version of `rules_rust` is not a release artifact, you may need to set additional
22-
flags such as [`bootstrap = True`](#crate_deps_repository-bootstrap) on the `crate_deps_repository`
22+
flags such as [`bootstrap = True`](#crate_universe_dependencies-bootstrap) on the `crate_universe_dependencies`
2323
call above or [crates_repository::generator_urls](#crates_repository-generator_urls) in uses of `crates_repository`.
2424

2525
## Rules
2626

27-
- [crate_deps_repository](#crate_deps_repository)
27+
- [crate_universe_dependencies](#crate_universe_dependencies)
2828
- [crates_repository](#crates_repository)
2929
- [crates_vendor](#crates_vendor)
3030
- [crate.annotation](#crateannotation)
@@ -352,12 +352,12 @@ Define information for extra workspace members
352352
string: A json encoded string of all inputs
353353

354354

355-
<a id="#crate_deps_repository"></a>
355+
<a id="#crate_universe_dependencies"></a>
356356

357-
## crate_deps_repository
357+
## crate_universe_dependencies
358358

359359
<pre>
360-
crate_deps_repository(<a href="#crate_deps_repository-rust_version">rust_version</a>, <a href="#crate_deps_repository-bootstrap">bootstrap</a>)
360+
crate_universe_dependencies(<a href="#crate_universe_dependencies-rust_version">rust_version</a>, <a href="#crate_universe_dependencies-bootstrap">bootstrap</a>)
361361
</pre>
362362

363363
Define dependencies of the `cargo-bazel` Rust target
@@ -367,8 +367,8 @@ Define dependencies of the `cargo-bazel` Rust target
367367

368368
| Name | Description | Default Value |
369369
| :------------- | :------------- | :------------- |
370-
| <a id="crate_deps_repository-rust_version"></a>rust_version | The version of rust to use when generating dependencies. | <code>"1.59.0"</code> |
371-
| <a id="crate_deps_repository-bootstrap"></a>bootstrap | If true, a <code>cargo_bootstrap_repository</code> target will be generated. | <code>False</code> |
370+
| <a id="crate_universe_dependencies-rust_version"></a>rust_version | The version of rust to use when generating dependencies. | <code>"1.59.0"</code> |
371+
| <a id="crate_universe_dependencies-bootstrap"></a>bootstrap | If true, a <code>cargo_bootstrap_repository</code> target will be generated. | <code>False</code> |
372372

373373

374374
<a id="#render_config"></a>

examples/crate_universe/WORKSPACE.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ rules_rust_dependencies()
1111

1212
rust_register_toolchains(include_rustc_srcs = True)
1313

14-
load("@rules_rust//crate_universe:crates.bzl", "crate_deps_repository")
14+
load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
1515

16-
crate_deps_repository()
16+
crate_universe_dependencies()
1717

1818
load("@rules_rust//crate_universe:crates_deps.bzl", "crate_repositories")
1919

0 commit comments

Comments
 (0)