Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
172 commits
Select commit Hold shift + click to select a range
40d6189
Add experimental Kotlin incremental compilation
erikkerber Apr 25, 2025
eec887d
Fix output getting deleted during 2nd pass of incremental compilation
oliviernotteghem Jun 16, 2025
8ef956f
Invalidate snapshot when underlying (abi) jar changes
oliviernotteghem Jun 17, 2025
96ce8d8
Merge pull request #5 from oliviernotteghem/ek-incremental3
erikkerber Jun 18, 2025
25b9925
Properly hook up flags to control build tool API / incremental compil…
oliviernotteghem Jun 18, 2025
806cd6c
Do not create snapshots for non-incremental scenario
oliviernotteghem Jun 23, 2025
9b67629
Restore temporary working directory logic
oliviernotteghem Jun 23, 2025
1e0f7a5
Merge pull request #6 from oliviernotteghem/ek-incremental4
erikkerber Jul 7, 2025
7b3cb3b
Merge pull request #7 from oliviernotteghem/ek-incremental5
erikkerber Jul 7, 2025
2ef90ba
Merge pull request #8 from oliviernotteghem/ek-incremental6
erikkerber Jul 7, 2025
b1bcb99
Merge remote-tracking branch 'upstream/master' into btapi
agluszak Nov 24, 2025
458408d
Update
agluszak Nov 24, 2025
1a51f43
Fixes
agluszak Dec 9, 2025
c291055
Fixes
agluszak Dec 9, 2025
35468d1
maintenance: Remove dagger from the builder
agluszak Dec 10, 2025
b63e668
Fix
agluszak Dec 10, 2025
6439e8f
Merge branch 'master' into btapi
agluszak Dec 13, 2025
9b49372
Fix
agluszak Dec 13, 2025
ab8ff05
Merge branch 'master' into remove-dagger
agluszak Dec 30, 2025
77a6d25
Merge branch 'master' into btapi
agluszak Jan 2, 2026
61e5779
WIP
agluszak Jan 2, 2026
3cbd743
Remove support for BazelK2JVMCompiler and experimental_build_tools_api
agluszak Jan 3, 2026
f17efd6
Merge branch 'remove-non-btapi-compiler' into btapi
agluszak Jan 3, 2026
79e8fc8
WIP
agluszak Jan 3, 2026
3066829
Add Windows CI support
agluszak Jan 6, 2026
d76e0ad
Implement automatic generation of kotlinc options using the officia…
agluszak Jan 8, 2026
925cb59
Address code review issues
agluszak Jan 13, 2026
d442d14
Fixes
agluszak Jan 13, 2026
2723a24
WIP
agluszak Jan 14, 2026
4e0cc67
Add test
agluszak Jan 16, 2026
03ea7f1
WIP
agluszak Jan 16, 2026
0ed2540
WIP
agluszak Jan 16, 2026
f35985b
WIP
agluszak Jan 16, 2026
ceb98f5
Both tests should pass
agluszak Jan 16, 2026
613b414
ktlint
agluszak Jan 16, 2026
1121fc7
WIP
agluszak Jan 20, 2026
b255d11
[maintenance] Migrate examples and tests to support both bzlmod and w…
agluszak Jan 14, 2026
2a8601a
Fix the horrible protobuf issue
agluszak Jan 21, 2026
51b7bed
Add C++ flags to examples/deps/.bazelrc, increase wait time, remove r…
agluszak Jan 21, 2026
159d7cf
Add more tests
agluszak Jan 21, 2026
5c0650e
WIP
agluszak Jan 21, 2026
c37b553
WIP
agluszak Jan 21, 2026
9fc075a
KAPT
agluszak Jan 22, 2026
1df16b4
Merge branch 'refs/heads/remove-dagger' into btapi-wip
agluszak Jan 22, 2026
5c09471
Remove cruft
agluszak Jan 22, 2026
1feffad
Typed compiler plugins
agluszak Jan 22, 2026
d15586d
Dedup
agluszak Jan 22, 2026
bcc5328
Cleanup
agluszak Jan 23, 2026
15102da
Cleanup
agluszak Jan 23, 2026
1c7a2fe
Cleanup
agluszak Jan 23, 2026
4bda3b2
Update MODULE.release.bazel
agluszak Jan 23, 2026
6ff25a9
Update MODULE.bazel
agluszak Jan 23, 2026
2ad2a8b
Merge branch 'master' into btapi-wip
agluszak Jan 23, 2026
5a5b4bf
Update release files
agluszak Jan 23, 2026
57d47af
ktlint fixes
agluszak Jan 23, 2026
1c59b8f
Merge branch 'bazel-9' into btapi-wip
agluszak Jan 23, 2026
418fbaa
Merge branch 'windows-ci' into btapi-wip
agluszak Jan 23, 2026
5fdcd01
MODULE.bazel cleanup
agluszak Jan 23, 2026
7aa9bfc
Fixes
agluszak Jan 23, 2026
fc1d5e5
Fixes
agluszak Jan 23, 2026
656788a
Limit integration tests to 3 at once
agluszak Jan 23, 2026
e32cd6a
Merge branch 'windows-ci' into master-fork
agluszak Jan 23, 2026
308ff2f
Module cleanup
agluszak Jan 23, 2026
91938cb
Merge branch 'module-cleanup' into master-fork
agluszak Jan 23, 2026
d91a700
Merge branch 'remove-dagger' into master-fork
agluszak Jan 23, 2026
82f5d2a
Merge branch 'master-fork' into btapi-wip
agluszak Jan 23, 2026
3cc358e
Fix maven
agluszak Jan 23, 2026
5dc8195
Simplify BtapiToolchainFactory and remove redundant KAPT compiler cre…
google-labs-jules[bot] Jan 23, 2026
9645347
Re-enable incremental compilation and fix toolchain classpath
google-labs-jules[bot] Jan 23, 2026
e098c43
Simplify Kotlin toolchain creation and remove BtapiToolchainFactory
google-labs-jules[bot] Jan 23, 2026
f13514a
Re-enable incremental compilation and fix toolchain classpath
google-labs-jules[bot] Jan 23, 2026
4f3de4f
Merge pull request #10 from agluszak/btapi-factory-simplification-797…
agluszak Jan 23, 2026
413e3e9
Reuse Kotlin build session across worker requests
google-labs-jules[bot] Jan 23, 2026
98ee5f6
Merge remote-tracking branch 'origin/re-enable-incremental-compilatio…
agluszak Jan 23, 2026
514a075
Fix
agluszak Jan 23, 2026
bbf563d
Fix
agluszak Jan 24, 2026
df5f0c1
Cleanup
agluszak Jan 24, 2026
7e1b822
Merge branch 'master' into btapi-wip
agluszak Jan 24, 2026
018c51f
Merge branch 'master' into master-fork
agluszak Jan 24, 2026
79b5d77
Format
agluszak Jan 24, 2026
34f9e6b
Merge branch 'master-fork' into btapi-wip
agluszak Jan 24, 2026
0c52cb0
Merge branch 'master' into flags
agluszak Jan 24, 2026
bfac7ee
Simplify
agluszak Jan 24, 2026
c0a34f7
Merge branch 'flags' into master-fork
agluszak Jan 24, 2026
f485788
Regenerate lockfile
agluszak Jan 24, 2026
c4a9b0c
WIP: Remove compiler.bzl and streamline Kotlin dependencies
agluszak Jan 24, 2026
303f589
Merge branch 'master-fork' into btapi-wip
agluszak Jan 24, 2026
1d47be8
Merge branch 'btapi-wip' into remove-zip
agluszak Jan 24, 2026
44a2b72
Fixes
agluszak Jan 24, 2026
da94d39
Use maven
agluszak Jan 24, 2026
9a15c1a
Simplify
agluszak Jan 24, 2026
30acd08
Merge pull request #16 from agluszak/remove-zip
agluszak Jan 24, 2026
d2e74a6
Fix IC
agluszak Jan 24, 2026
7ec14e5
Run IC on CI
agluszak Jan 24, 2026
3b44ef4
Disable workspace tests
agluszak Jan 24, 2026
c50d10f
Buildifier
agluszak Jan 24, 2026
33f4c5b
Fix IC tests running on CI by renaming ambiguous test suite.
google-labs-jules[bot] Jan 24, 2026
eb9fd0e
Merge pull request #18 from agluszak/fix-ic-tests-ci-6858806086000376419
agluszak Jan 24, 2026
879f154
Fix failing unit tests and lint violations in Kotlin rules (#21)
google-labs-jules[bot] Jan 25, 2026
d6e3bd7
Fix
agluszak Jan 25, 2026
9c8149b
Fix
agluszak Jan 25, 2026
f1b2725
Windows fixes
agluszak Jan 25, 2026
a510665
Plugin IT fixes
agluszak Jan 25, 2026
c8814f0
Fix passthrough
agluszak Jan 25, 2026
7ed0a12
Fix KSP
agluszak Jan 25, 2026
185f683
ktlint fix
agluszak Jan 25, 2026
9fab53c
KSP simplification
agluszak Jan 25, 2026
3b52a20
Fix
agluszak Jan 25, 2026
64d4bd7
Fix docs
agluszak Jan 25, 2026
5ac982f
Disable ubuntu 22.04, enable IT on macos
agluszak Jan 25, 2026
06ac5e5
Remove FQNs from ExperimentalBuildToolsApi annotations (#23)
Copilot Jan 26, 2026
3200bee
[wip] fixes for monorepo
agluszak Jan 29, 2026
1ac97db
New approach
agluszak Jan 30, 2026
e7ff8c2
Formatting
agluszak Jan 30, 2026
1535752
Remove unused code
agluszak Jan 30, 2026
570f237
WIP
agluszak Jan 30, 2026
d4a94d1
WIP
agluszak Jan 30, 2026
cd75717
Merge branch 'flags' into btapi-wip
agluszak Jan 30, 2026
415eae7
Fix
agluszak Jan 30, 2026
a7ad677
Merge branch 'flags'
agluszak Jan 30, 2026
2ec78af
Merge remote-tracking branch 'origin/master'
agluszak Jan 30, 2026
fb06a68
Fix
agluszak Jan 30, 2026
064cd2f
Merge branch 'master' into btapi-wip
agluszak Jan 30, 2026
4afcd91
Rework
agluszak Jan 31, 2026
866621a
Merge branch 'flags' into master-fork
agluszak Jan 31, 2026
65fab12
Merge branch 'master-fork' into btapi-wip
agluszak Jan 31, 2026
f5ba4fb
IMPORTANT: fixes for java deps in monorepo
agluszak Jan 31, 2026
1463e8a
Fix for monorepo
agluszak Feb 3, 2026
5ee60e1
Fixes
agluszak Feb 3, 2026
7197478
Remove logging
agluszak Feb 3, 2026
ea91118
Code review
agluszak Feb 6, 2026
a53cfbf
Separate action for snapshotting
agluszak Feb 6, 2026
2581175
Simplify compiler plugin option handling
agluszak Feb 6, 2026
3bfc008
Further simplification of compiler plugin options
agluszak Feb 6, 2026
2db5205
Further simplification
agluszak Feb 6, 2026
c4161f5
JSON plugin payload
agluszak Feb 6, 2026
65db1df
Fixes
agluszak Feb 6, 2026
f720aeb
Pass kotlin jars from the outside
agluszak Feb 7, 2026
11e9772
Fix IC classpath snapshots and restore BTAPI IC logging
agluszak Feb 7, 2026
07c0847
Simplify BTAPI runtime spec construction
agluszak Feb 7, 2026
dcdd235
Deduplicate BTAPI runtime wiring in compile actions
agluszak Feb 7, 2026
5944f5c
Clean up unused code and localize module-name derivation
agluszak Feb 7, 2026
78fdc90
Windows fix
agluszak Feb 11, 2026
ac7a225
WIP
agluszak Feb 11, 2026
8ca382a
Fix genrule on Windows
agluszak Feb 11, 2026
33bcd1e
Merge remote-tracking branch 'origin/btapi-wip' into btapi-wip
agluszak Feb 13, 2026
b1776ac
Remove shading
agluszak Feb 13, 2026
c301330
Minimize reflection in KSP2 worker invocation
agluszak Feb 13, 2026
2679910
Fix compose example
agluszak Feb 13, 2026
d266a21
Use kotlin 2.3.20-Beta2
agluszak Feb 13, 2026
30e89b8
Switch shading runner to jarjar-abrams
agluszak Feb 14, 2026
0455c4c
Merge branch 'master' into master-fork
agluszak Feb 17, 2026
e4221b3
Fix
agluszak Feb 17, 2026
2b76e6f
Merge branch 'master-fork' into btapi-wip
agluszak Feb 17, 2026
0b79c32
Fix
agluszak Feb 17, 2026
012659f
Merge branch 'master' into flags
agluszak Feb 17, 2026
848ca07
Regenerate lockfile
agluszak Feb 17, 2026
6237fce
Enforce Kotlin 2.x support boundary
agluszak Feb 17, 2026
6223494
Finalize generated kotlinc options updates
agluszak Feb 17, 2026
2330d01
Merge branch 'master' into master-fork
agluszak Feb 18, 2026
88d2430
Merge branch 'flags' into master-fork
agluszak Feb 18, 2026
61b432f
Formatting
agluszak Feb 18, 2026
e4519fa
Merge branch 'master-fork' into btapi-wip
agluszak Feb 18, 2026
78aea33
Fix test
agluszak Feb 18, 2026
c6dc5c4
Repin Maven locks in examples
agluszak Feb 18, 2026
1a6c682
Fix IC test
agluszak Feb 18, 2026
7e6f3a0
Formatting
agluszak Feb 18, 2026
ffb854f
Add regression tests for PR#17 comments and fix confirmed issues
agluszak Feb 18, 2026
4495ac9
Fix classpath snapshot propagation for Java-only deps and exports
agluszak Feb 18, 2026
7296a63
Add IC testdata for exported Java dep snapshot change
agluszak Feb 21, 2026
7fd0d91
Update Kotlin to 2.3.20-RC
agluszak Feb 21, 2026
3811c06
Remove the requirement that BTAPI versions must match exactly
agluszak Feb 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 20 additions & 12 deletions .bazelci/presubmit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,6 @@
environment:
ANDROID_NDK_HOME: /opt/android-ndk-r25b

.ubuntu2204: &ubuntu2204
platform: ubuntu2204
environment:
ANDROID_NDK_HOME: /opt/android-ndk-r25b

.macos: &macos
platform: macos_arm64
environment:
Expand All @@ -55,9 +50,9 @@
# bazelci pipeline
matrix:
integration_shard_flags:
- [ "--test_tag_filters=shard_0", "--local_test_jobs=3" ]
- [ "--test_tag_filters=shard_1", "--local_test_jobs=3" ]
- [ "--test_tag_filters=shard_2", "--local_test_jobs=3" ]
- [ "--test_tag_filters=shard_0,-workspace", "--local_test_jobs=3" ]
- [ "--test_tag_filters=shard_1,-workspace", "--local_test_jobs=3" ]
- [ "--test_tag_filters=shard_2,-workspace", "--local_test_jobs=3" ]
test_flags:
- [ "--enable_bzlmod=true" ]
validate_config: 1
Expand All @@ -74,10 +69,8 @@ tasks:
<<: [ *ubuntu2404, *unittests ]
ubuntu2404_integration_tests:
<<: [ *ubuntu2404, *integration_tests ]
ubuntu2204_unittests:
<<: [ *ubuntu2204, *unittests ]
ubuntu2204_integration_tests:
<<: [ *ubuntu2204, *integration_tests ]
macos_integration_tests:
<<: [ *macos, *integration_tests ]
windows_integration_tests:
<<: [ *windows, *integration_tests_no_android ]
windows_unittests:
Expand Down Expand Up @@ -107,3 +100,18 @@ tasks:
test_flags:
- "--test_tag_filters=ktlint"
- "--test_output=errors"
ic_tests:
name: IC Tests
<<: *ubuntu2404
test_targets:
- //ic_tests:ic_tests_suite
macos_ic_tests:
name: IC Tests
<<: *macos
test_targets:
- //ic_tests:ic_tests_suite
windows_ic_tests:
name: IC Tests
<<: *windows
test_targets:
- //ic_tests:ic_tests_suite
8 changes: 8 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ build:windows --cxxopt=/std:c++17
build:windows --host_cxxopt=/std:c++17
build:windows --cxxopt=/Zc:__cplusplus
build:windows --host_cxxopt=/Zc:__cplusplus
common:windows --repo_env=COURSIER_NO_TERM=true
common:windows --repo_env=COURSIER_PROGRESS=false


# Avoid
# Exception in thread "main" java.io.IOException: Error getting terminal size: GetConsoleScreenBufferInfo error 6
Expand All @@ -36,5 +39,10 @@ query --deleted_packages=examples/android,examples/android/app,examples/android/
common --incompatible_enable_proto_toolchain_resolution
common --@com_google_protobuf//bazel/toolchains:prefer_prebuilt_protoc=true

common --@rules_kotlin//kotlin/settings:experimental_incremental_compilation

common --incompatible_enable_proto_toolchain_resolution
common --@com_google_protobuf//bazel/toolchains:prefer_prebuilt_protoc=true

# User-specific .bazelrc
try-import %workspace%/user.bazelrc
3 changes: 2 additions & 1 deletion BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ release_archive(
name = "rules_kotlin_release",
src_map = {
"BUILD.release.bazel": "BUILD.bazel",
"MODULE.release.bazel": "MODULE.bazel",
"MODULE.bazel": "MODULE.bazel",
"kotlin_rules_maven_install.json": "kotlin_rules_maven_install.json",
},
deps = [
"//kotlin:pkg",
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

| Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | News |
| :----------- | -------- |
| Feb 17, 2026 | Breaking changes in rules_kotlin 2.x: dropped Kotlin compiler `<2.0` support; `kt_kotlinc_options` no longer exposes `api_version`/`language_version` (toolchain-owned) or `x_use_k2` (K2 is toolchain-managed); renamed options `x_optin` -> `opt_in` and `x_jsr_305` -> `x_jsr305`; lambda/SAM defaults now follow Kotlin defaults (`indy` for Kotlin 2.x). |
| May 26, 2022 | Released version [v1.6.0-RC-2](https://github.com/bazelbuild/rules_kotlin/releases/tag/v1.6.0-RC-2). |
| April 27, 2022 | Released version [1.6.0-RC1](https://github.com/bazelbuild/rules_kotlin/releases/tag/1.6.0-RC-1). |
| Feb 2, 2022 | Released version [1.5.0](https://github.com/bazelbuild/rules_kotlin/releases/tag/v1.5.0). |
Expand Down
201 changes: 132 additions & 69 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -5,105 +5,146 @@ module(
repo_name = "rules_kotlin",
)

proto_version = "4.33.4"
# =============================================================================
# Variables
# =============================================================================

proto_version_parts = proto_version.split(".")
kotlin_version = "2.3.20-RC"

proto_module_version = ".".join(proto_version_parts[-2:]) # Last 2 parts
# =============================================================================
# Production Dependencies
# =============================================================================

bazel_dep(name = "protobuf", version = proto_module_version, repo_name = "com_google_protobuf")
bazel_dep(name = "rules_cc", version = "0.0.16")
bazel_dep(name = "platforms", version = "0.0.11")
bazel_dep(name = "bazel_skylib", version = "1.8.2")
bazel_dep(name = "rules_java", version = "8.9.0")
bazel_dep(name = "rules_python", version = "0.23.1")
bazel_dep(name = "bazel_lib", version = "3.1.0")
bazel_dep(name = "bazel_skylib", version = "1.9.0")
bazel_dep(name = "bazel_features", version = "1.39.0")
bazel_dep(name = "platforms", version = "1.0.0")
bazel_dep(name = "rules_cc", version = "0.2.14")
bazel_dep(name = "rules_java", version = "9.3.0")
bazel_dep(name = "bazel_worker_api", version = "0.0.9")
bazel_dep(name = "bazel_worker_java", version = "0.0.9")
bazel_dep(name = "protobuf", version = "33.4", repo_name = "com_google_protobuf")
bazel_dep(name = "rules_android", version = "0.7.1")

remote_android_extensions = use_extension(
"@rules_android//bzlmod_extensions:android_extensions.bzl",
"remote_android_tools_extensions",
)
use_repo(remote_android_extensions, "android_tools")
# =============================================================================
# Dev Dependencies
# =============================================================================

android_sdk_repository_extension = use_extension("@rules_android//rules/android_sdk_repository:rule.bzl", "android_sdk_repository_extension")
use_repo(android_sdk_repository_extension, "androidsdk")
bazel_dep(name = "rules_python", version = "1.7.0", dev_dependency = True)
bazel_dep(name = "rules_shell", version = "0.6.1", dev_dependency = True)
bazel_dep(name = "buildifier_prebuilt", version = "8.2.1.1", dev_dependency = True)

register_toolchains("@androidsdk//:all")
# Testing
bazel_dep(name = "rules_testing", version = "0.9.0", dev_dependency = True)
bazel_dep(name = "rules_bazel_integration_test", version = "0.35.0", dev_dependency = True)

bazel_dep(name = "bazel_features", version = "1.39.0")
bazel_dep(name = "bazel_lib", version = "3.1.0")
bazel_dep(name = "rules_shell", version = "0.4.1")
bazel_dep(name = "bazel_worker_api", version = "0.0.10")
bazel_dep(name = "bazel_worker_java", version = "0.0.10")
# CI and release
bazel_dep(name = "bazel_ci_rules", version = "1.0.0", dev_dependency = True)

# Not dev_dependency because packager.bzl loads it at top-level of BUILD files
bazel_dep(name = "rules_pkg", version = "1.0.1")

# TODO[https://github.com/bazelbuild/rules_kotlin/issues/1395]: Update when fixed version is available.
bazel_dep(name = "buildifier_prebuilt", version = "8.2.1", dev_dependency = True)
# Documentation
bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True, repo_name = "io_bazel_stardoc")

# Utilities
bazel_dep(name = "rules_jvm_external", version = "6.10")

# =============================================================================
# Extensions
# =============================================================================

# Java toolchains
rules_java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains")
use_repo(rules_java_toolchains, "remote_java_tools")

# Kotlin extensions
rules_kotlin_extensions = use_extension("//src/main/starlark/core/repositories:bzlmod_setup.bzl", "rules_kotlin_extensions")
use_repo(
rules_kotlin_extensions,
"com_github_google_ksp",
"com_github_jetbrains_kotlin",
"com_github_jetbrains_kotlin_git",
"com_github_pinterest_ktlint",
"kotlin_build_tools_impl",
"kotlinx_coroutines_core_jvm",
"kotlinx_serialization_core_jvm",
"kotlinx_serialization_json",
"kotlinx_serialization_json_jvm",
)

register_toolchains("//src/main/starlark/core/compile/cli")

register_toolchains("//kotlin/internal:default_toolchain")

# Development dependencies
# TODO(bencodes) A bunch of these dependencies need to be marked as dev_dependencies but before we can do that
# we need to sort out a few cases around how these rules are consumed in various ways.

bazel_dep(name = "rules_jvm_external", version = "6.10")
bazel_dep(name = "bazel_ci_rules", version = "1.0.0")

rbe_preconfig = use_repo_rule("@bazel_ci_rules//:rbe_repo.bzl", "rbe_preconfig")
# Android SDK (dev)
remote_android_extensions = use_extension(
"@rules_android//bzlmod_extensions:android_extensions.bzl",
"remote_android_tools_extensions",
dev_dependency = True,
)
use_repo(remote_android_extensions, "android_tools")

rbe_preconfig(
name = "buildkite_config",
toolchain = "ubuntu2204",
android_sdk_repository_extension = use_extension(
"@rules_android//rules/android_sdk_repository:rule.bzl",
"android_sdk_repository_extension",
dev_dependency = True,
)
use_repo(android_sdk_repository_extension, "androidsdk")

# Maven (dev)
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
maven.install(
name = "kotlin_rules_maven",
artifacts = [
"com.google.auto.service:auto-service-annotations:1.1.1",
"com.google.auto.service:auto-service:1.1.1",
"com.google.auto.value:auto-value-annotations:1.11.0",
"com.google.auto.value:auto-value:1.11.0",
"com.google.code.findbugs:jsr305:3.0.2",
"com.google.code.gson:gson:2.10.1",
"com.google.dagger:dagger-compiler:2.57.2",
"com.google.dagger:dagger-producers:2.57.2",
"com.google.dagger:dagger:2.57.2",
"com.google.errorprone:error_prone_annotations:2.23.0",
"junit:junit:4.13-beta-3",
"com.google.protobuf:protobuf-java:{}".format(proto_version),
"com.google.protobuf:protobuf-java-util:{}".format(proto_version),
"com.google.guava:guava:33.0.0-jre",
"com.google.protobuf:protobuf-java-util:4.33.4",
"com.google.protobuf:protobuf-java:4.33.4",
"com.google.truth:truth:0.45",
"com.google.auto.service:auto-service:1.1.1",
"com.google.auto.service:auto-service-annotations:1.1.1",
"com.google.auto.value:auto-value:1.11.0",
"com.google.auto.value:auto-value-annotations:1.11.0",
"com.google.dagger:dagger:2.57.2",
"com.google.dagger:dagger-compiler:2.57.2",
"com.google.dagger:dagger-producers:2.57.2",
"org.jetbrains.kotlin:kotlin-metadata-jvm:2.3.0",
"com.squareup.moshi:moshi-kotlin-codegen:1.15.2",
"com.squareup.moshi:moshi-kotlin:1.15.2",
"com.squareup.moshi:moshi:1.15.2",
"dev.zacsweers.autoservice:auto-service-ksp:jar:1.2.0",
"javax.annotation:javax.annotation-api:1.3.2",
"javax.inject:javax.inject:1",
"junit:junit:4.13-beta-3",
"org.apache.commons:commons-compress:1.26.2",
"org.pantsbuild:jarjar:1.7.2",
"dev.zacsweers.autoservice:auto-service-ksp:jar:1.2.0",
"com.squareup.moshi:moshi:1.15.2",
"com.squareup.moshi:moshi-kotlin:1.15.2",
"com.squareup.moshi:moshi-kotlin-codegen:1.15.2",
"org.codehaus.plexus:plexus-utils:3.0.24",
"org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2",
# JetBrains annotations
"org.jetbrains:annotations:13.0",
# Kotlin stdlib and runtime dependencies
"org.jetbrains.kotlin:kotlin-stdlib:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-reflect:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-test:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-script-runtime:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-daemon-client:{}".format(kotlin_version),
# Kotlin compiler dependencies
"org.jetbrains.kotlin:kotlin-compiler:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-annotation-processing:{}".format(kotlin_version),
"org.jetbrains.kotlin:jvm-abi-gen:{}".format(kotlin_version),
# Kotlin compiler plugins
"org.jetbrains.kotlin:kotlin-allopen-compiler-plugin:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-noarg-compiler-plugin:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-serialization-compiler-plugin:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-parcelize-compiler:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-parcelize-runtime:{}".format(kotlin_version),
# Kotlin embeddable variants
"org.jetbrains.kotlin:kotlin-compiler-embeddable:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-annotation-processing-embeddable:{}".format(kotlin_version),
# Kotlin build tools (already present)
"org.jetbrains.kotlin:kotlin-build-tools-api:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-build-tools-impl:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-metadata-jvm:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-compiler-arguments-description:{}".format(kotlin_version),
# KSP (Kotlin Symbol Processing)
"com.google.devtools.ksp:symbol-processing-api:2.3.4",
"com.google.devtools.ksp:symbol-processing-common-deps:2.3.4",
"com.google.devtools.ksp:symbol-processing-aa-embeddable:2.3.4",
# kotlinx libraries
"org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2",
"org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1",
"org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1",
"com.eed3si9n.jarjarabrams:jarjar-abrams-assembly_2.13:1.14.1",
],
fail_if_repin_required = True,
fetch_sources = True,
Expand Down Expand Up @@ -141,12 +182,7 @@ maven.override(
)
use_repo(maven, "kotlin_rules_maven", "unpinned_kotlin_rules_maven")

bazel_dep(name = "rules_pkg", version = "1.0.1")

bazel_dep(name = "stardoc", version = "0.8.1", dev_dependency = True, repo_name = "io_bazel_stardoc")
bazel_dep(name = "rules_testing", version = "0.9.0", dev_dependency = True)
bazel_dep(name = "rules_bazel_integration_test", version = "0.37.1", dev_dependency = True)

# Bazel integration test binaries (dev)
bazel_binaries = use_extension("@rules_bazel_integration_test//:extensions.bzl", "bazel_binaries", dev_dependency = True)
bazel_binaries.download(version = "7.x")
bazel_binaries.download(version = "8.x")
Expand All @@ -159,3 +195,30 @@ use_repo(
"build_bazel_bazel_7_x",
"build_bazel_bazel_8_x",
)

# RBE preconfig (dev)
rbe_preconfig = use_repo_rule(
"@bazel_ci_rules//:rbe_repo.bzl",
"rbe_preconfig",
)

rbe_preconfig(
name = "buildkite_config",
dev_dependency = True,
toolchain = "ubuntu2204",
)

# =============================================================================
# Toolchain Registrations
# =============================================================================

# Production toolchains
register_toolchains("//kotlin/internal:default_toolchain")

# Compile CLI toolchain (needed for ksp2 and other internal targets)
register_toolchains("//src/main/starlark/core/compile/cli")

register_toolchains(
"@androidsdk//:all",
dev_dependency = True,
)
Loading