diff --git a/.bazelrc b/.bazelrc new file mode 100644 index 00000000..3ce91d27 --- /dev/null +++ b/.bazelrc @@ -0,0 +1 @@ +common --enable_bzlmod diff --git a/.bazelversion b/.bazelversion new file mode 100644 index 00000000..815da58b --- /dev/null +++ b/.bazelversion @@ -0,0 +1 @@ +7.4.1 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6bb368bf..f2b9e938 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,6 +25,8 @@ jobs: run: swift test - name: Build sourcekit-bazel-bsp (release) run: swift build -c release + - name: Build sourcekit-bazel-bsp (Bazel) + run: bazelisk build //Sources/sourcekit-bazel-bsp - name: Build example //HelloWorld iOS app run: | cd Example diff --git a/.gitignore b/.gitignore index 24acf097..a21f618a 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ Package.resolved .*.sw? __pycache__ /.vscode/ -swift-cmark \ No newline at end of file +swift-cmark +bazel-* diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 index 00000000..e69de29b diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 00000000..85edb216 --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,31 @@ +module( + name = "sourcekit_bazel_bsp", + version = "0.0.1", + compatibility_level = 0, +) + +bazel_dep(name = "rules_swift", version = "3.1.1", repo_name = "build_bazel_rules_swift") +bazel_dep(name = "rules_swift_package_manager", version = "1.3.0") +bazel_dep(name = "rules_apple", version = "4.1.2", repo_name = "build_bazel_rules_apple") +bazel_dep(name = "apple_support", version = "1.22.1", repo_name = "build_bazel_apple_support") + +swift_deps = use_extension( + "@rules_swift_package_manager//:extensions.bzl", + "swift_deps", +) +swift_deps.from_package( + resolved = "//:Package.resolved", + swift = "//:Package.swift", +) +use_repo( + swift_deps, + "swift_package", + "swiftpkg_sourcekit_lsp", + "swiftpkg_swift_argument_parser", + "swiftpkg_swift_protobuf", + # The name of the Swift package repositories will be added to this declaration in step 4 after + # running `bazel mod tidy`. + # NOTE: The name of the Bazel external repository for a Swift package is `swiftpkg_xxx` where + # `xxx` is the Swift package identity, lowercase, with punctuation replaced by `hyphen`. For + # example, the repository name for apple/swift-nio is `swiftpkg_swift_nio`. +) diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock new file mode 100644 index 00000000..d23e3b63 --- /dev/null +++ b/MODULE.bazel.lock @@ -0,0 +1,769 @@ +{ + "lockFileVersion": 11, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896", + "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85", + "https://bcr.bazel.build/modules/apple_support/1.21.0/MODULE.bazel": "ac1824ed5edf17dee2fdd4927ada30c9f8c3b520be1b5fd02a5da15bc10bff3e", + "https://bcr.bazel.build/modules/apple_support/1.21.1/MODULE.bazel": "5809fa3efab15d1f3c3c635af6974044bac8a4919c62238cce06acee8a8c11f1", + "https://bcr.bazel.build/modules/apple_support/1.22.1/MODULE.bazel": "90bd1a660590f3ceffbdf524e37483094b29352d85317060b2327fff8f3f4458", + "https://bcr.bazel.build/modules/apple_support/1.22.1/source.json": "2bc34da8d0ebc4c4132c8b26db766ca1b86bbcf26dea94b94aa1cd73e2623aeb", + "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.13.0/MODULE.bazel": "af4a546cb88c618f2e241721d2d76b70b7ecfaa1d58fe27b9187d3edb9e418da", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.13.0/source.json": "5538ef77a1ecff41c119e040d4bc0148c83e9e79464a165ec86a1aa3171a5535", + "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/source.json": "b07e17f067fe4f69f90b03b36ef1e08fe0d1f3cac254c1241a1818773e3423bc", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/source.json": "f121b43eeefc7c29efbd51b83d08631e2347297c95aac9764a701f2a6a2bb953", + "https://bcr.bazel.build/modules/buildifier_prebuilt/7.3.1/MODULE.bazel": "537faf0ad9f5892910074b8e43b4c91c96f1d5d86b6ed04bdbe40cf68aa48b68", + "https://bcr.bazel.build/modules/buildifier_prebuilt/7.3.1/source.json": "55153a5e6ca9c8a7e266c4b46b951e8a010d25ec6062bc35d5d4f89925796bad", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/cgrindel_bazel_starlib/0.27.0/MODULE.bazel": "9c644f616fad575be4e17bc39291f95b0e96fe387725970f09fb730b884f1f06", + "https://bcr.bazel.build/modules/cgrindel_bazel_starlib/0.27.0/source.json": "25a0f4d1736483823a4f972b2d5730ad5e49a256f7d804b89fb2d2d18ad992a3", + "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8", + "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350", + "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a", + "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0", + "https://bcr.bazel.build/modules/gazelle/0.40.0/MODULE.bazel": "42ba5378ebe845fca43989a53186ab436d956db498acde790685fe0e8f9c6146", + "https://bcr.bazel.build/modules/gazelle/0.42.0/MODULE.bazel": "fa140a7c019f3a22779ba7c6132ffff9d2d10a51dba2f3304dee61523d11fef4", + "https://bcr.bazel.build/modules/gazelle/0.42.0/source.json": "eb6f7b0cb76c52d2679164910a01fa6ddcee409e6a7fee06e602ef259f65165c", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.11/source.json": "f7e188b79ebedebfe75e9e1d098b8845226c7992b307e28e1496f23112e8fc29", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/source.json": "c16a6488fb279ef578da7098e605082d72ed85fc8d843eaae81e7d27d0f4625d", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573", + "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_apple/4.0.1/MODULE.bazel": "dec3ca18ca4680c66a33341918ef5160ba37b51b282435e2ec01490b2f873475", + "https://bcr.bazel.build/modules/rules_apple/4.1.2/MODULE.bazel": "61b3f5d300beda63bed60a9954e88d18bf6b58355bb97ec974453a3af3c5e3e6", + "https://bcr.bazel.build/modules/rules_apple/4.1.2/source.json": "8f72c7c365b587110bc7f6c3b551d8976e448e479a1090d161b1f4ecc2f876ad", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.2/MODULE.bazel": "557ddc3a96858ec0d465a87c0a931054d7dcfd6583af2c7ed3baf494407fd8d0", + "https://bcr.bazel.build/modules/rules_cc/0.1.2/source.json": "53fcb09b5816c83ca60d9d7493faf3bfaf410dfc2f15deb52d6ddd146b8d43f0", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8", + "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270", + "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd", + "https://bcr.bazel.build/modules/rules_go/0.50.1/MODULE.bazel": "b91a308dc5782bb0a8021ad4330c81fea5bda77f96b9e4c117b9b9c8f6665ee0", + "https://bcr.bazel.build/modules/rules_go/0.50.1/source.json": "205765fd30216c70321f84c9a967267684bdc74350af3f3c46c857d9f80a4fa2", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/7.6.5/MODULE.bazel": "481164be5e02e4cab6e77a36927683263be56b7e36fef918b458d7a8a1ebadb1", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.5.1/source.json": "db1a77d81b059e0f84985db67a22f3f579a529a86b7997605be3d214a0abe38e", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_multitool/1.0.0/MODULE.bazel": "7f75dc8378368a10dcedcff6cbfee8254fff10748a219a6cb8de94fde4b6a574", + "https://bcr.bazel.build/modules/rules_multitool/1.0.0/source.json": "5b92dc9b267b024bb2174bdf5d8e32821abb53fd84545e00699c4e35826a1c78", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/source.json": "17a2e195f56cb28d6bbf763e49973d13890487c6945311ed141e196fb660426d", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13", + "https://bcr.bazel.build/modules/rules_python/1.3.0/source.json": "25932f917cd279c7baefa6cb1d3fa8750a7a29de522024449b19af6eab51f4a0", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/source.json": "c55ed591aa5009401ddf80ded9762ac32c358d2517ee7820be981e2de9756cf3", + "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca", + "https://bcr.bazel.build/modules/rules_swift/2.4.0/MODULE.bazel": "1639617eb1ede28d774d967a738b4a68b0accb40650beadb57c21846beab5efd", + "https://bcr.bazel.build/modules/rules_swift/3.1.1/MODULE.bazel": "4f5a74a7b3204136abf986fd90330f95b78269cea9daa443e5f803e6d37b3771", + "https://bcr.bazel.build/modules/rules_swift/3.1.1/source.json": "c951bf82d7fa06e999e3b2d897bbc9323caaac28b4d35c5548a2a1eefaa67679", + "https://bcr.bazel.build/modules/rules_swift_package_manager/1.3.0/MODULE.bazel": "432d0a6ebdf5ed8f209fad9df4d31140d1dd710804f1f3cd22f4a33dd7bd3a04", + "https://bcr.bazel.build/modules/rules_swift_package_manager/1.3.0/source.json": "7ebc7019df5eee26a5371f9a93b9e7544f77f27a5e0d4cb344d6fc99fd58be08", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/MODULE.bazel": "75aab2373a4bbe2a1260b9bf2a1ebbdbf872d3bd36f80bff058dccd82e89422f", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/source.json": "5fba48bbe0ba48761f9e9f75f92876cafb5d07c0ce059cc7a8027416de94a05b", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@rules_swift_package_manager~//:extensions.bzl%swift_deps": { + "general": { + "bzlTransitiveDigest": "z+vN1OvNUmof+zxhRbd+WAIBCTaYSYExhzyQ0TlqzN4=", + "usagesDigest": "qCLmX2j38M/SJCNjdDEppaMK7KZO7VAcX76BRCaIDbc=", + "recordedFileInputs": { + "@@//Package.resolved": "2945e865bd82369286eac444168b30c8b557d4a6112b1c2d6fa572099e99868e", + "@@//Package.swift": "4f65c4f674c29b2335916131beff9aa25b3343c0148f323db3bd758ffb8a4745" + }, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "swift_package": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package_tool_repo.bzl", + "ruleClassName": "swift_package_tool_repo", + "attributes": { + "env": {}, + "package": "/Package.swift" + } + }, + "swiftpkg_swift_argument_parser": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_argument_parser", + "commit": "41982a3656a71c768319979febd796c6fd111d5c", + "remote": "https://github.com/apple/swift-argument-parser", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_sourcekit_lsp": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_sourcekit_lsp", + "commit": "6022af05e92b1fb9e3e17a09753d6434d8f0dc9b", + "remote": "https://github.com/apple/sourcekit-lsp", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_protobuf": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_protobuf", + "commit": "102a647b573f60f73afdce5613a51d71349fe507", + "remote": "https://github.com/apple/swift-protobuf.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_indexstore_db": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_indexstore_db", + "commit": "9be9752864fa10d2a1eab9f2248adc900233fe9b", + "remote": "https://github.com/swiftlang/indexstore-db.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_asn1": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_asn1", + "commit": "f70225981241859eb4aa1a18a75531d26637c8cc", + "remote": "https://github.com/apple/swift-asn1.git", + "version": "1.4.0", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_atomics": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_atomics", + "commit": "b601256eab081c0f92f059e12818ac1d4f178ff7", + "remote": "https://github.com/apple/swift-atomics.git", + "version": "1.3.0", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_build": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_build", + "commit": "d1a00c21bddf75d883b085ddcd8614916df06528", + "remote": "https://github.com/swiftlang/swift-build.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_certificates": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_certificates", + "commit": "2f797305c1b5b982acaa6005d8a9f970cc4e97ff", + "remote": "https://github.com/apple/swift-certificates.git", + "version": "1.5.0", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_cmark": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_cmark", + "commit": "cbd8eae0689857c873063f28b9a80419ec718e20", + "remote": "https://github.com/swiftlang/swift-cmark.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_collections": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_collections", + "commit": "c11818f3cae0780656baa430b49e7f163f08dffd", + "remote": "https://github.com/apple/swift-collections.git", + "version": "1.1.6", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_crypto": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_crypto", + "commit": "629f0b679d0fd0a6ae823d7f750b9ab032c00b80", + "remote": "https://github.com/apple/swift-crypto.git", + "version": "3.0.0", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_docc": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_docc", + "commit": "4a871f8f2f261b8017946b3731c4f8970978ec4a", + "remote": "https://github.com/swiftlang/swift-docc.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_docc_symbolkit": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_docc_symbolkit", + "commit": "ebe89c7da4cf03ded04cd708f3399087c6f2dad7", + "remote": "https://github.com/swiftlang/swift-docc-symbolkit.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_driver": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_driver", + "commit": "30e5aa1272c0237c26c47c21c9380d3f9a223244", + "remote": "https://github.com/swiftlang/swift-driver.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_llbuild": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_llbuild", + "commit": "5891ce06197da2ed99099bf82c389eab6fdc0fd9", + "remote": "https://github.com/swiftlang/swift-llbuild.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_lmdb": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_lmdb", + "commit": "1ad9a2d80b6fcde498c2242f509bd1be7d667ff8", + "remote": "https://github.com/swiftlang/swift-lmdb.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_markdown": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_markdown", + "commit": "c281baa59e2b0d3ddc72848741217af811f66d39", + "remote": "https://github.com/swiftlang/swift-markdown.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_nio": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_nio", + "commit": "1c30f0f2053b654e3d1302492124aa6d242cdba7", + "remote": "https://github.com/apple/swift-nio.git", + "version": "2.86.0", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_package_manager": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_package_manager", + "commit": "b6a3d955451044d16139d7831a616d213c06cdfd", + "remote": "https://github.com/swiftlang/swift-package-manager.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_syntax": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_syntax", + "commit": "07bf225e198119c23b2b9a0a3432bdb534498873", + "remote": "https://github.com/swiftlang/swift-syntax.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_system": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_system", + "commit": "890830fff1a577dc83134890c7984020c5f6b43b", + "remote": "https://github.com/apple/swift-system.git", + "version": "1.6.2", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_toolchain_sqlite": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_toolchain_sqlite", + "commit": "7c9bb9d012930a935d1ba6327459291d0b76414c", + "remote": "https://github.com/swiftlang/swift-toolchain-sqlite", + "version": "1.0.6", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + }, + "swiftpkg_swift_tools_support_core": { + "bzlFile": "@@rules_swift_package_manager~//swiftpkg/internal:swift_package.bzl", + "ruleClassName": "swift_package", + "attributes": { + "bazel_package_name": "swiftpkg_swift_tools_support_core", + "commit": "a00f2e3c7c80595ecea990206b9024ebaa767613", + "remote": "https://github.com/swiftlang/swift-tools-support-core.git", + "version": "", + "env": {}, + "env_inherit": [], + "init_submodules": false, + "recursive_init_submodules": true, + "patch_args": [ + "-p0" + ], + "patch_cmds": [], + "patch_cmds_win": [], + "patch_tool": "", + "patches": [], + "publicly_expose_all_targets": false, + "replace_scm_with_registry": false + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "swiftpkg_swift_argument_parser", + "swiftpkg_sourcekit_lsp", + "swiftpkg_swift_protobuf", + "swift_package" + ], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [ + [ + "rules_swift_package_manager~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "rules_swift_package_manager~", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_swift_package_manager~", + "cgrindel_bazel_starlib", + "cgrindel_bazel_starlib~" + ] + ] + } + } + } +} diff --git a/Package.swift b/Package.swift index 911099b6..b6e7ddbe 100644 --- a/Package.swift +++ b/Package.swift @@ -15,7 +15,7 @@ let package = Package( ), .package( url: "https://github.com/apple/sourcekit-lsp", - revision: "5df8f3d9ac0e647238ed4203e8f399ae5a095aa3" + revision: "6022af05e92b1fb9e3e17a09753d6434d8f0dc9b" ), .package( url: "https://github.com/apple/swift-protobuf.git", diff --git a/README.md b/README.md index 81dd7e04..03af26c1 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,35 @@ - Make sure all transitive libraries you'd like to use the BSP for have accompanying `(platform)_build_test` rules that directly targets them and are named `(lib_name)_ios_skbsp`. Only iOS rules are supported as of writing. - This is because Bazel is currently missing a couple of important features we need in order to make this work in a clean way. This requirement can thus be seen as temporary, and you can expect it to be removed in the future as we evolve the tool and those missing features are introduced. - Download and install [the official Swift extension](https://marketplace.visualstudio.com/items?itemName=swiftlang.swift-vscode) for Cursor / VSCode. -- Copy the .bsp/ folder on this repository to the root of the repository you'd like to use this tool for. -- Edit the `argv` fields in `.bsp/config.json` to match the details for your app / setup. You can see all available options by running `sourcekit-bazel-bsp serve --help`. - On Cursor / VSCode, open a workspace containing the repository in question. +- Integrate BSP Server: + - Automated (suggested) + - Add the following to your `MODULE.bazel` file: + + ```python + bazel_dep(name = "sourcekit_bazel_bsp", version = "0.0.1", repo_name = "sourcekit_bazel_bsp") + ``` + + - Define a `setup_sourcekit_bsp` in a BUILD.bazel file in the root of your workspace: + + ```python + load("@sourcekit_bazel_bsp//rules:setup_sourcekit_bsp.bzl") + + setup_sourcekit_bsp( + name = "setup_sourcekit_bsp", + targets = YOUR_TARGETS, + bazel_wrapper = "/usr/local/bin/bazelisk" # Defaults to bazel + index_flags = [], # Optional indexing flags to pass to the build + files_to_watch = ["src/MyApp/**/*.swift"] # Globs of files to watch for changes to + ) + ``` + + - Run `bazel run //:setup_sourcekit_bsp` + - Thats it you have now integrated the tool. Users should re-run that command whenever the configuration is changed. + + - Manual + - Copy the .bsp/ folder on this repository to the root of the repository you'd like to use this tool for. + - Edit the `argv` fields in `.bsp/config.json` to match the details for your app / setup. You can see all available options by running `sourcekit-bazel-bsp serve --help`. - On the settings page for the Swift extension, enable `SourceKit-LSP: Background Indexing` at the **workspace level**. It **has** to be workspace settings; this specific setting is not supported at the folder level. - Reload your workspace (`Cmd+Shift+P -> Reload Window`) @@ -62,4 +88,4 @@ If you wish for the logs to become redacted again, you can remove the configurat Since sourcekit-bazel-bsp is initialized from within sourcekit-lsp, debugging it requires you to start a lldb session in advance. You can do it with the following command: `lldb --attach-name sourcekit-bazel-bsp --wait-for` -Once the lldb session is initialized, triggering the initialization of the Swift extension on your IDE of choice (e.g. opening a Swift file in VSCode) should eventually cause lldb to start a debugging session. \ No newline at end of file +Once the lldb session is initialized, triggering the initialization of the Swift extension on your IDE of choice (e.g. opening a Swift file in VSCode) should eventually cause lldb to start a debugging session. diff --git a/Sources/BazelProtobufBindings/BUILD b/Sources/BazelProtobufBindings/BUILD new file mode 100644 index 00000000..bd812205 --- /dev/null +++ b/Sources/BazelProtobufBindings/BUILD @@ -0,0 +1,12 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "BazelProtobufBindings", + srcs = glob(["**/*.swift"], allow_empty = False), + module_name = "BazelProtobufBindings", + visibility = ["//visibility:public"], + deps = [ + "@swiftpkg_swift_protobuf//:SwiftProtobuf", + ], + package_name = "sourcekit-bazel-bsp", +) diff --git a/Sources/SourceKitBazelBSP/BUILD b/Sources/SourceKitBazelBSP/BUILD new file mode 100644 index 00000000..95278cb1 --- /dev/null +++ b/Sources/SourceKitBazelBSP/BUILD @@ -0,0 +1,14 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "SourceKitBazelBSP", + srcs = glob(["**/*.swift"], allow_empty = False), + module_name = "SourceKitBazelBSP", + visibility = ["//visibility:public"], + deps = [ + "//Sources/BazelProtobufBindings", + "@swiftpkg_sourcekit_lsp//:BuildServerProtocol", + "@swiftpkg_sourcekit_lsp//:LSPBindings", + ], + package_name = "sourcekit-bazel-bsp", +) diff --git a/Sources/sourcekit-bazel-bsp/BUILD b/Sources/sourcekit-bazel-bsp/BUILD new file mode 100644 index 00000000..a4cd63a0 --- /dev/null +++ b/Sources/sourcekit-bazel-bsp/BUILD @@ -0,0 +1,13 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_binary") + +swift_binary( + name = "sourcekit-bazel-bsp", + srcs = glob(["**/*.swift"], allow_empty = False), + deps = [ + "//Sources/SourceKitBazelBSP", + "@swiftpkg_swift_argument_parser//:ArgumentParser", + "@swiftpkg_swift_protobuf//:SwiftProtobuf", + ], + visibility = ["//visibility:public"], + package_name = "sourcekit-bazel-bsp", +) diff --git a/rules/BUILD b/rules/BUILD new file mode 100644 index 00000000..cee0120b --- /dev/null +++ b/rules/BUILD @@ -0,0 +1,4 @@ +exports_files([ + "bsp_config.json.tpl", + "setup_sourcekit_bsp.sh.tpl", +]) diff --git a/rules/bsp_config.json.tpl b/rules/bsp_config.json.tpl new file mode 100644 index 00000000..82d4a65d --- /dev/null +++ b/rules/bsp_config.json.tpl @@ -0,0 +1,13 @@ +{ + "name": "sourcekit-bazel-bsp", + "version": "0.0.1", + "bspVersion": "2.2.0", + "languages": [ + "c", + "cpp", + "objective-c", + "objective-cpp", + "swift" + ], + "argv": [%argv%] +} diff --git a/rules/setup_sourcekit_bsp.bzl b/rules/setup_sourcekit_bsp.bzl new file mode 100644 index 00000000..30fa5ef9 --- /dev/null +++ b/rules/setup_sourcekit_bsp.bzl @@ -0,0 +1,84 @@ +def _setup_sourcekit_bsp_impl(ctx): + rendered_bsp_config = ctx.actions.declare_file("config.json") + bsp_config_argv = [ + ".bsp/sourcekit-bazel-bsp", + "serve", + ] + for target in ctx.attr.targets: + bsp_config_argv.append("--target") + bsp_config_argv.append(target.label) + bsp_config_argv.append("--bazel-wrapper") + bsp_config_argv.append(ctx.attr.bazel_wrapper) + for index_flag in ctx.attr.index_flags: + bsp_config_argv.append("--index-flag") + bsp_config_argv.append(index_flag) + for files_to_watch in ctx.attr.files_to_watch: + bsp_config_argv.append("--files-to-watch") + bsp_config_argv.append(files_to_watch) + ctx.actions.expand_template( + template = ctx.file._bsp_config_template, + output = rendered_bsp_config, + substitutions = { + "%argv%": ", ".join(["\"%s\"" % arg for arg in bsp_config_argv]), + }, + ) + executable = ctx.actions.declare_file("setup_sourcekit_bsp.sh") + ctx.actions.expand_template( + template = ctx.file._setup_sourcekit_bsp_script, + is_executable = True, + output = executable, + substitutions = { + "%bsp_config_path%": rendered_bsp_config.short_path, + "%sourcekit_bazel_bsp_path%": ctx.executable._sourcekit_bazel_bsp_tool.short_path, + }, + ) + tools_runfiles = ctx.runfiles( + files = [ + ctx.executable._sourcekit_bazel_bsp_tool, + rendered_bsp_config, + ], + ) + return DefaultInfo( + executable = executable, + files = depset(direct = [executable]), + runfiles = tools_runfiles, + ) + + +setup_sourcekit_bsp = rule( + implementation = _setup_sourcekit_bsp_impl, + executable = True, + doc = "Sets up the sourcekit-bazel-bsp in the current workspace using the provided configuration.", + attrs = { + "_bsp_config_template": attr.label( + doc = "The template for the sourcekit-bazel-bsp configuration.", + default = "//rules:bsp_config.json.tpl", + allow_single_file = True, + ), + "_setup_sourcekit_bsp_script": attr.label( + doc = "The script for setting up the sourcekit-bazel-bsp.", + default = "//rules:setup_sourcekit_bsp.sh.tpl", + allow_single_file = True, + ), + "_sourcekit_bazel_bsp_tool": attr.label( + doc = "The sourcekit-bazel-bsp binary.", + default = "//Sources/sourcekit-bazel-bsp", + cfg = "exec", + executable = True, + ), + "targets": attr.label_list( + doc = "The targets to set up the sourcekit-bazel-bsp for.", + mandatory = True, + ), + "bazel_wrapper": attr.string( + doc = "The bazel wrapper to use.", + default = "bazel", + ), + "index_flags": attr.string_list( + doc = "The index flags to use.", + ), + "files_to_watch": attr.string_list( + doc = "The files to watch.", + ), + }, +) diff --git a/rules/setup_sourcekit_bsp.sh.tpl b/rules/setup_sourcekit_bsp.sh.tpl new file mode 100644 index 00000000..4463d740 --- /dev/null +++ b/rules/setup_sourcekit_bsp.sh.tpl @@ -0,0 +1,9 @@ +#!/bin/bash + +set -euo pipefail + +sourcekit_bazel_bsp_path="%sourcekit_bazel_bsp_path%" +bsp_config_path="%bsp_config_path%" + +cp "${bsp_config_path}" "$BUILD_WORKSPACE_DIRECTORY/.bsp/config.json" +cp "${sourcekit_bazel_bsp_path}" "$BUILD_WORKSPACE_DIRECTORY/.bsp/sourcekit-bazel-bsp"