Skip to content

Commit f9bc97b

Browse files
committed
crate_universe: Enable modext isolation.
This should allow us to build our python and ruby code independently - in particular, we can now do shallow checkouts of one without the other. Previously, the modext introduced cross-dependency. This also reduces the amount of work we do in the crate universe processing for the other language, even though it's unused. This does need renaming the module, as otherwise the generated paths from rules_rust get too long for Windows :(
1 parent b001f47 commit f9bc97b

File tree

6 files changed

+22
-9
lines changed

6 files changed

+22
-9
lines changed

.bazelrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,6 @@ common --registry=file:///%workspace%/misc/bazel/registry
2424
common --registry=https://bcr.bazel.build
2525

2626
common --@rules_dotnet//dotnet/settings:strict_deps=false
27+
common --experimental_isolated_extension_usages
2728

2829
try-import %workspace%/local.bazelrc

.bazelrc.internal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ common --registry=https://bcr.bazel.build
88
# its implementation packages without providing any code itself.
99
# We either can depend on internal implementation details, or turn of strict deps.
1010
common --@rules_dotnet//dotnet/settings:strict_deps=false
11+
common --experimental_isolated_extension_usages

MODULE.bazel

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module(
2-
name = "codeql",
2+
name = "ql",
33
version = "0.0",
4+
repo_name = "codeql",
45
)
56

67
# this points to our internal repository when `codeql` is checked out as a submodule thereof
@@ -30,27 +31,37 @@ bazel_dep(name = "rules_rust", version = "0.49.1")
3031

3132
bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True)
3233

33-
crate = use_extension(
34+
# crate_py but shortened due to Windows file path considerations
35+
cp = use_extension(
3436
"@rules_rust//crate_universe:extension.bzl",
3537
"crate",
38+
isolate = True,
3639
)
37-
crate.from_cargo(
40+
cp.from_cargo(
3841
name = "py_deps",
3942
cargo_lockfile = "//python/extractor/tsg-python:Cargo.lock",
4043
manifests = [
4144
"//python/extractor/tsg-python:Cargo.toml",
4245
"//python/extractor/tsg-python/tsp:Cargo.toml",
4346
],
4447
)
45-
crate.from_cargo(
46-
name = "ruby_deps",
48+
use_repo(cp, "py_deps")
49+
50+
# crate_ruby, but shortened due to windows file paths
51+
r = use_extension(
52+
"@rules_rust//crate_universe:extension.bzl",
53+
"crate",
54+
isolate = True,
55+
)
56+
r.from_cargo(
57+
name = "rd",
4758
cargo_lockfile = "//ruby/extractor:Cargo.lock",
4859
manifests = [
4960
"//ruby/extractor:Cargo.toml",
5061
"//ruby/extractor/codeql-extractor-fake-crate:Cargo.toml",
5162
],
5263
)
53-
use_repo(crate, "py_deps", "ruby_deps")
64+
use_repo(r, "rd")
5465

5566
dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet")
5667
dotnet.toolchain(dotnet_version = "8.0.101")

misc/bazel/internal/zipmerge/zipmerge_test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ std::string get_file(const char* name) {
7575
return ret;
7676
}();
7777
// this works from both `codeql` and the internal repository
78-
for (auto prefix : {"_main", "codeql~"}) {
78+
for (auto prefix : {"_main", "ql~"}) {
7979
auto ret = runfiles->Rlocation(prefix + "/misc/bazel/internal/zipmerge/test-files/"s + name);
8080
if (fs::exists(ret)) {
8181
return ret;

ruby/extractor/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("@ruby_deps//:defs.bzl", "aliases", "all_crate_deps")
1+
load("@rd//:defs.bzl", "aliases", "all_crate_deps")
22
load("//misc/bazel:rust.bzl", "codeql_rust_binary")
33

44
codeql_rust_binary(

shared/tree-sitter-extractor/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("@ruby_deps//:defs.bzl", "aliases", "all_crate_deps")
1+
load("@rd//:defs.bzl", "aliases", "all_crate_deps")
22
load("@rules_rust//rust:defs.bzl", "rust_library")
33

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

0 commit comments

Comments
 (0)