Skip to content

Commit e6fcd7d

Browse files
authored
Fix workspace resolution for development (#1231)
Align versions tween bzlmod and workspace Switch to the fancy bazel ci rules for rbe. Enable RBE for integration tests (huuuuge difference)
1 parent 0b7d242 commit e6fcd7d

File tree

9 files changed

+111
-59
lines changed

9 files changed

+111
-59
lines changed

.bazelci/presubmit.yml

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ matrix:
1010
# - windows re-enable when rules_bazel_integration_test can support custom test runner on windows.
1111
test_flags:
1212
- ["--enable_bzlmod=true"]
13-
- ["--enable_bzlmod=false"]
13+
- ["--config=workspace"]
1414
validate_config: 1
15-
bazel: 7.1.1
15+
bazel: 7.3.0
1616
buildifier:
1717
version: 7.1.1
1818
# no lint warnings for the moment. They are basically a smoke alarm in hell.
@@ -25,22 +25,17 @@ tasks:
2525
build_flags: ${{ test_flags }}
2626
test_flags: ${{ test_flags }}
2727
test_targets:
28-
- "//:all_tests"
28+
- "//src/..."
2929
build_targets:
30-
- "//:rules_kotlin_release"
30+
- "//src/..."
3131
integration_tests:
3232
name: "Integration Tests"
3333
platform: ${{ integration_platform }}
3434
test_flags:
35-
- "--enable_bzlmod=true"
35+
- "--config=rbe"
3636
test_targets:
3737
- //examples:all
3838
rbe_ubuntu1604:
39-
build_flags:
40-
- "--enable_bzlmod=false"
41-
- "--config=rbe"
42-
- "--host_java_toolchain=@bazel_tools//tools/jdk:toolchain_java11"
43-
- "--java_toolchain=@bazel_tools//tools/jdk:toolchain_java11"
4439
test_targets:
4540
- "--"
4641
- "//src/test/kotlin/io/bazel/kotlin/builder:builder_tests"
@@ -51,8 +46,8 @@ tasks:
5146
test_flags:
5247
# Override the default worker strategy for remote builds (worker strategy
5348
# cannot be used with remote builds)
54-
- "--strategy=KotlinCompile=remote"
5549
- "--config=rbe"
50+
- "--strategy=KotlinCompile=remote"
5651
stardoc:
5752
name: Stardoc api documentation
5853
platform: ubuntu1804

.bazelrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ common --enable_bzlmod=true
33
common:rbe --java_runtime_version=11
44
common:rbe --tool_java_runtime_version=11
55

6+
common:workspace --enable_bzlmod=false --enable_workspace=true
7+
68
build --strategy=KotlinCompile=worker
79
build --test_output=all
810
build --verbose_failures

MODULE.bazel

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@ module(
77

88
bazel_dep(name = "platforms", version = "0.0.10")
99
bazel_dep(name = "bazel_skylib", version = "1.7.1")
10-
bazel_dep(name = "rules_java", version = "7.2.0")
10+
bazel_dep(name = "rules_java", version = "7.6.5")
1111
bazel_dep(name = "rules_python", version = "0.23.1")
1212
bazel_dep(name = "rules_cc", version = "0.0.9")
1313
bazel_dep(name = "rules_android", version = "0.1.1")
1414

1515
rules_kotlin_extensions = use_extension("//src/main/starlark/core/repositories:bzlmod_setup.bzl", "rules_kotlin_extensions")
1616
use_repo(
1717
rules_kotlin_extensions,
18-
"buildkite_config",
1918
"com_github_google_ksp",
2019
"com_github_jetbrains_kotlin",
2120
"com_github_jetbrains_kotlin_git",
@@ -51,6 +50,14 @@ use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools")
5150
# we need to sort out a few cases around how these rules are consumed in various ways.
5251

5352
bazel_dep(name = "rules_jvm_external", version = "5.3")
53+
bazel_dep(name = "bazel_ci_rules", version = "1.0.0")
54+
55+
rbe_preconfig = use_repo_rule("@bazel_ci_rules//:rbe_repo.bzl", "rbe_preconfig")
56+
57+
rbe_preconfig(
58+
name = "buildkite_config",
59+
toolchain = "ubuntu2004",
60+
)
5461

5562
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
5663
maven.install(

src/main/starlark/core/repositories/BUILD

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,4 @@ bzl_library(
3939
name = "repositories",
4040
srcs = glob(["*.bzl"]),
4141
visibility = ["//:__subpackages__"],
42-
deps = [
43-
"@rules_proto//proto:defs",
44-
],
4542
)

src/main/starlark/core/repositories/bzlmod_setup.bzl

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,6 @@ def _rules_kotlin_extensions_impl(mctx):
3232
],
3333
)
3434

35-
# This tarball intentionally does not have a SHA256 because the upstream URL can change without notice
36-
# For more context: https://github.com/bazelbuild/bazel-toolchains/blob/0c1f7c3c5f9e63f1e0ee91738b964937eea2d3e0/WORKSPACE#L28-L32
37-
http_archive(
38-
name = "buildkite_config",
39-
urls = _versions.RBE.URLS,
40-
)
41-
4235
return modules.use_all_repos(mctx, reproducible = True)
4336

4437
rules_kotlin_extensions = module_extension(

src/main/starlark/core/repositories/download.bzl

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,25 @@ def kt_download_local_dev_dependencies():
2020
"""
2121
Downloads all necessary http_* artifacts for rules_kotlin dev configuration.
2222
23-
Must be called before setup_dependencies in the versions.WORKSPACE.
23+
Must be called before setup_dependencies in the WORKSPACE.
2424
"""
25+
versions.use_repository(
26+
name = "rules_proto",
27+
version = versions.RULES_PROTO,
28+
rule = rules_stardoc_repository,
29+
starlark_packages = [
30+
"proto",
31+
"proto/private",
32+
],
33+
)
2534

26-
# bazel_skylib is initialized twice during developement. This is intentional, as development
35+
versions.use_repository(
36+
rule = http_archive,
37+
name = "rules_cc",
38+
version = versions.RULES_CC,
39+
)
40+
41+
# bazel_skylib is initialized twice during development. This is intentional, as development
2742
# needs to be able to run the starlark unittests, while production does not.
2843
maybe(
2944
http_archive,
@@ -43,12 +58,16 @@ def kt_download_local_dev_dependencies():
4358
],
4459
)
4560

46-
# This tarball intentionally does not have a SHA256 because the upstream URL can change without notice
47-
# For more context: https://github.com/bazelbuild/bazel-toolchains/blob/0c1f7c3c5f9e63f1e0ee91738b964937eea2d3e0/WORKSPACE#L28-L32
48-
maybe(
49-
http_archive,
50-
name = "buildkite_config",
51-
urls = versions.RBE.URLS,
61+
versions.use_repository(
62+
name = "rules_python",
63+
rule = http_archive,
64+
version = versions.RULES_PYTHON,
65+
)
66+
67+
versions.use_repository(
68+
name = "rules_java",
69+
rule = http_archive,
70+
version = versions.RULES_JAVA,
5271
)
5372

5473
maybe(
@@ -88,13 +107,22 @@ def kt_download_local_dev_dependencies():
88107
)
89108

90109
versions.use_repository(
91-
name = "rules_proto",
92-
version = versions.RULES_PROTO,
93-
rule = rules_stardoc_repository,
94-
starlark_packages = [
95-
"proto",
96-
"proto/private",
97-
],
110+
name = "rules_testing",
111+
rule = http_archive,
112+
version = versions.RULES_TESTING,
113+
strip_prefix = "rules_testing-%s" % versions.RULES_TESTING.version,
114+
)
115+
116+
versions.use_repository(
117+
name = "rules_bazel_integration_test",
118+
rule = http_archive,
119+
version = versions.RULES_BAZEL_INTEGRATION_TEST,
120+
)
121+
122+
versions.use_repository(
123+
name = "cgrindel_bazel_starlib",
124+
rule = http_archive,
125+
version = versions.CGRINDEL_BAZEL_STARLIB,
98126
)
99127

100128
versions.use_repository(

src/main/starlark/core/repositories/initialize.release.bzl

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,6 @@ def kotlin_repositories(
104104
urls = versions.ANDROID.URLS,
105105
)
106106

107-
versions.use_repository(
108-
name = "rules_python",
109-
rule = http_archive,
110-
version = versions.RULES_PYTHON,
111-
)
112-
113107
versions.use_repository(
114108
name = "rules_java",
115109
rule = http_archive,

src/main/starlark/core/repositories/setup.bzl

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,12 @@
1313
# limitations under the License.
1414

1515
load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
16+
load("@cgrindel_bazel_starlib//:deps.bzl", "bazel_starlib_dependencies")
1617
load("@io_bazel_stardoc//:setup.bzl", "stardoc_repositories")
1718
load("@released_rules_kotlin//src/main/starlark/core/repositories:initialize.bzl", release_kotlin_repositories = "kotlin_repositories")
19+
load("@rules_bazel_integration_test//bazel_integration_test:deps.bzl", "bazel_integration_test_rules_dependencies")
20+
load("@rules_cc//cc:repositories.bzl", "rules_cc_dependencies", "rules_cc_toolchains")
21+
load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_java_toolchains")
1822
load("@rules_jvm_external//:defs.bzl", "maven_install")
1923
load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
2024
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
@@ -29,6 +33,15 @@ def kt_configure():
2933

3034
native.register_toolchains("@released_rules_kotlin//kotlin/internal:default_toolchain")
3135

36+
rules_cc_dependencies()
37+
rules_cc_toolchains()
38+
39+
rules_proto_dependencies()
40+
rules_proto_toolchains()
41+
42+
rules_java_dependencies()
43+
rules_java_toolchains()
44+
3245
maven_install(
3346
name = "kotlin_rules_maven",
3447
fetch_sources = True,
@@ -39,10 +52,12 @@ def kt_configure():
3952
"com.google.protobuf:protobuf-java-util:3.6.0",
4053
"com.google.guava:guava:27.1-jre",
4154
"com.google.truth:truth:0.45",
42-
"com.google.auto.service:auto-service:1.0.1",
43-
"com.google.auto.service:auto-service-annotations:1.0.1",
55+
"com.google.auto.service:auto-service:1.1.1",
56+
"com.google.auto.service:auto-service-annotations:1.1.1",
57+
"com.google.auto.service:auto-service-annotations:jar:1.1.1",
4458
"com.google.auto.value:auto-value:1.10.1",
4559
"com.google.auto.value:auto-value-annotations:1.10.1",
60+
"org.apache.commons:commons-compress:1.26.2",
4661
"com.google.dagger:dagger:2.51",
4762
"com.google.dagger:dagger-compiler:2.51",
4863
"com.google.dagger:dagger-producers:2.51",
@@ -55,7 +70,6 @@ def kt_configure():
5570
"com.squareup.moshi:moshi:1.15.0",
5671
"com.squareup.moshi:moshi-kotlin:1.15.0",
5772
"com.squareup.moshi:moshi-kotlin-codegen:1.15.0",
58-
"com.google.auto.service:auto-service-annotations:jar:1.1.1",
5973
],
6074
repositories = [
6175
"https://maven-central.storage.googleapis.com/repos/central/data/",
@@ -64,11 +78,15 @@ def kt_configure():
6478
],
6579
)
6680

67-
rules_proto_dependencies()
68-
rules_proto_toolchains()
81+
rules_cc_dependencies()
82+
rules_cc_toolchains()
6983

7084
rules_pkg_dependencies()
7185

7286
stardoc_repositories()
7387

7488
bazel_skylib_workspace()
89+
90+
bazel_integration_test_rules_dependencies()
91+
bazel_starlib_dependencies()
92+
bazel_skylib_workspace()

src/main/starlark/core/repositories/versions.bzl

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@ def _use_repository(name, version, rule, **kwargs):
2020
maybe(rule, name = name, **http_archive_arguments)
2121

2222
versions = struct(
23-
RULES_NODEJS_VERSION = "5.5.3",
24-
RULES_NODEJS_SHA = "f10a3a12894fc3c9bf578ee5a5691769f6805c4be84359681a785a0c12e8d2b6",
2523
BAZEL_TOOLCHAINS_VERSION = "4.1.0",
2624
BAZEL_TOOLCHAINS_SHA = "179ec02f809e86abf56356d8898c8bd74069f1bd7c56044050c2cd3d79d0e024",
2725
# IMPORTANT! rules_kotlin does not use the bazel_skylib unittest in production
@@ -33,8 +31,6 @@ versions = struct(
3331
# --> 3. Configure dependencies <--
3432
SKYLIB_VERSION = "1.4.2",
3533
SKYLIB_SHA = "66ffd9315665bfaafc96b52278f57c7e2dd09f5ede279ea6d39b2be471e7e3aa",
36-
PROTOBUF_VERSION = "3.11.3",
37-
PROTOBUF_SHA = "cf754718b0aa945b00550ed7962ddc167167bd922b842199eeb6505e6f344852",
3834
RULES_JVM_EXTERNAL_TAG = "5.3",
3935
RULES_JVM_EXTERNAL_SHA = "d31e369b854322ca5098ea12c69d7175ded971435e55c18dd9dd5f29cc5249ac",
4036
RULES_PROTO = version(
@@ -80,17 +76,19 @@ versions = struct(
8076
URLS = ["https://github.com/bazelbuild/rules_android/archive/v%s.zip" % "0.1.1"],
8177
),
8278
# To update: https://github.com/bazelbuild/bazel-toolchains#latest-bazel-and-latest-ubuntu-1604-container
83-
RBE = struct(
79+
BAZELCI_RULES = struct(
80+
version = "1.0.0",
81+
sha256 = "eca21884e6f66a88c358e580fd67a6b148d30ab57b1680f62a96c00f9bc6a07e",
8482
# This tarball intentionally does not have a SHA256 because the upstream URL can change without notice
8583
# For more context: https://github.com/bazelbuild/bazel-toolchains/blob/0c1f7c3c5f9e63f1e0ee91738b964937eea2d3e0/WORKSPACE#L28-L32
86-
URLS = ["https://storage.googleapis.com/rbe-toolchain/bazel-configs/rbe-ubuntu1604/latest/rbe_default.tar"],
84+
URLS = ["https://github.com/bazelbuild/continuous-integration/releases/download/rules-{version}/bazelci_rules-{version}.tar.gz"],
8785
),
8886
PKG = version(
89-
version = "0.7.0",
87+
version = "1.0.1",
9088
url_templates = [
9189
"https://github.com/bazelbuild/rules_pkg/releases/download/{version}/rules_pkg-{version}.tar.gz",
9290
],
93-
sha256 = "8a298e832762eda1830597d64fe7db58178aa84cd5926d76d5b744d6558941c2",
91+
sha256 = "d20c951960ed77cb7b341c2a59488534e494d5ad1d30c4818c736d57772a9fef",
9492
),
9593
# needed for rules_pkg and java
9694
RULES_KOTLIN = version(
@@ -126,11 +124,11 @@ versions = struct(
126124
sha256 = None,
127125
),
128126
RULES_TESTING = version(
129-
version = "0.5.0",
127+
version = "0.6.0",
130128
url_templates = [
131129
"https://github.com/bazelbuild/rules_testing/releases/download/v{version}/rules_testing-v{version}.tar.gz",
132130
],
133-
sha256 = "b84ed8546f1969d700ead4546de9f7637e0f058d835e47e865dcbb13c4210aed",
131+
sha256 = "02c62574631876a4e3b02a1820cb51167bb9cdcdea2381b2fa9d9b8b11c407c4",
134132
),
135133
KOTLINX_SERIALIZATION_CORE_JVM = version(
136134
version = "1.6.3",
@@ -153,5 +151,25 @@ versions = struct(
153151
],
154152
sha256 = "d3234179bcff1886d53d67c11eca47f7f3cf7b63c349d16965f6db51b7f3dd9a",
155153
),
154+
RULES_BAZEL_INTEGRATION_TEST = version(
155+
version = "0.26.0",
156+
url_templates = [
157+
"https://github.com/bazel-contrib/rules_bazel_integration_test/releases/download/v{version}/rules_bazel_integration_test.v{version}.tar.gz",
158+
],
159+
sha256 = "ab56cdd55a28781287242c7124ce9ff791ae8318ed641057f10edd98c55d7ed5",
160+
),
161+
CGRINDEL_BAZEL_STARLIB = version(
162+
version = "0.21.0",
163+
sha256 = "43e375213dabe0c3928e65412ea7ec16850db93285c8c6f8b0eaa41cacd0f882",
164+
url_templates = [
165+
"https://github.com/cgrindel/bazel-starlib/releases/download/v{version}/bazel-starlib.v{version}.tar.gz",
166+
],
167+
),
168+
RULES_CC = version(
169+
version = "0.0.9",
170+
url_templates = ["https://github.com/bazelbuild/rules_cc/releases/download/{version}/rules_cc-{version}.tar.gz"],
171+
sha256 = "2037875b9a4456dce4a79d112a8ae885bbc4aad968e6587dca6e64f3a0900cdf",
172+
strip_prefix_template = "rules_cc-{version}",
173+
),
156174
use_repository = _use_repository,
157175
)

0 commit comments

Comments
 (0)