BUILD.bazel 64 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669
  1. # Bazel build
  2. # C/C++ documentation: https://docs.bazel.build/versions/master/be/c-cpp.html
  3. # ************************** IMPORTANT ***********************
  4. # If a target or file is not found here, then please try searching in /src
  5. # We are in the middle of transitioning to a tree of build files.
  6. # If you would like to help with the move in your PR, please use `git mv` so that the history of the file is retained.
  7. load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
  8. load("@rules_proto//proto:defs.bzl", "proto_library")
  9. load("@rules_python//python:defs.bzl", "py_library", "py_runtime", "py_runtime_pair")
  10. load("@rules_cc//cc:defs.bzl", "cc_proto_library")
  11. load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
  12. load("@com_github_grpc_grpc//bazel:cython_library.bzl", "pyx_library")
  13. load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
  14. load("//bazel:ray.bzl", "COPTS", "PYX_COPTS", "PYX_SRCS", "copy_to_workspace", "ray_cc_binary", "ray_cc_library", "ray_cc_test")
  15. load("@python3_9//:defs.bzl", python39 = "interpreter")
  16. package(
  17. default_visibility = ["//visibility:public"],
  18. )
  19. # Hermetic python envionment, currently only used for CI infra and scripts.
  20. py_runtime(
  21. name = "python3_runtime",
  22. interpreter = python39,
  23. python_version = "PY3",
  24. visibility = ["//visibility:private"],
  25. )
  26. py_runtime_pair(
  27. name = "python_runtime_pair",
  28. py2_runtime = None,
  29. py3_runtime = ":python3_runtime",
  30. visibility = ["//visibility:private"],
  31. )
  32. constraint_setting(name = "hermetic")
  33. constraint_value(
  34. name = "hermetic_python",
  35. constraint_setting = ":hermetic",
  36. )
  37. toolchain(
  38. name = "python_toolchain",
  39. exec_compatible_with = [":hermetic_python"],
  40. toolchain = ":python_runtime_pair",
  41. toolchain_type = "@bazel_tools//tools/python:toolchain_type",
  42. )
  43. platform(
  44. name = "hermetic_python_platform",
  45. constraint_values = [":hermetic_python"],
  46. parents = ["@local_config_platform//:host"],
  47. visibility = ["//visibility:private"],
  48. )
  49. # C/C++ toolchain constraint configs.
  50. config_setting(
  51. name = "msvc-cl",
  52. flag_values = {"@bazel_tools//tools/cpp:compiler": "msvc-cl"},
  53. )
  54. config_setting(
  55. name = "clang-cl",
  56. flag_values = {"@bazel_tools//tools/cpp:compiler": "clang-cl"},
  57. )
  58. config_setting(
  59. name = "opt",
  60. values = {"compilation_mode": "opt"},
  61. )
  62. bool_flag(
  63. name = "jemalloc_flag",
  64. build_setting_default = True,
  65. )
  66. config_setting(
  67. name = "jemalloc",
  68. constraint_values = ["@platforms//os:linux"],
  69. flag_values = {":jemalloc_flag": "true"},
  70. )
  71. # === Begin of rpc definitions ===
  72. # GRPC common lib.
  73. ray_cc_library(
  74. name = "grpc_common_lib",
  75. srcs = [
  76. "src/ray/rpc/common.cc",
  77. "src/ray/rpc/grpc_server.cc",
  78. "src/ray/rpc/server_call.cc",
  79. "src/ray/rpc/rpc_chaos.cc",
  80. ],
  81. hdrs = glob([
  82. "src/ray/rpc/rpc_chaos.h",
  83. "src/ray/rpc/client_call.h",
  84. "src/ray/rpc/common.h",
  85. "src/ray/rpc/grpc_client.h",
  86. "src/ray/rpc/grpc_server.h",
  87. "src/ray/rpc/metrics_agent_client.h",
  88. "src/ray/rpc/server_call.h",
  89. "src/ray/rpc/grpc_util.h",
  90. "src/ray/raylet_client/*.h",
  91. ]),
  92. deps = [
  93. ":stats_metric",
  94. "//src/ray/common:asio",
  95. "//src/ray/common:grpc_util",
  96. "//src/ray/common:id",
  97. "//src/ray/common:ray_config",
  98. "//src/ray/common:status",
  99. "@com_github_grpc_grpc//:grpc++",
  100. "@com_github_grpc_grpc//:grpc++_reflection",
  101. "@com_github_grpc_grpc//:grpcpp_admin",
  102. "@com_google_protobuf//:protobuf",
  103. ],
  104. )
  105. # Node manager gRPC lib.
  106. cc_grpc_library(
  107. name = "node_manager_cc_grpc",
  108. srcs = ["//src/ray/protobuf:node_manager_proto"],
  109. grpc_only = True,
  110. deps = ["//src/ray/protobuf:node_manager_cc_proto"],
  111. )
  112. # Node manager server and client.
  113. ray_cc_library(
  114. name = "node_manager_rpc",
  115. srcs = glob([
  116. "src/ray/rpc/node_manager/*.cc",
  117. ]),
  118. hdrs = glob([
  119. "src/ray/rpc/node_manager/*.h",
  120. ]),
  121. deps = [
  122. ":grpc_common_lib",
  123. ":node_manager_cc_grpc",
  124. ":ray_common",
  125. "@boost//:asio",
  126. "@com_github_grpc_grpc//:grpc++",
  127. ],
  128. )
  129. # gcs_service gRPC lib.
  130. cc_grpc_library(
  131. name = "gcs_service_cc_grpc",
  132. srcs = ["//src/ray/protobuf:gcs_service_proto"],
  133. grpc_only = True,
  134. deps = ["//src/ray/protobuf:gcs_service_cc_proto"],
  135. )
  136. # gcs_service gRPC lib.
  137. cc_grpc_library(
  138. name = "test_service_cc_grpc",
  139. srcs = ["//src/ray/protobuf:test_service_proto"],
  140. grpc_only = True,
  141. deps = ["//src/ray/protobuf:test_service_cc_proto"],
  142. )
  143. # gcs rpc server and client.
  144. ray_cc_library(
  145. name = "gcs_service_rpc",
  146. hdrs = [
  147. "src/ray/rpc/gcs_server/gcs_rpc_client.h",
  148. "src/ray/rpc/gcs_server/gcs_rpc_server.h",
  149. ],
  150. deps = [
  151. ":autoscaler_cc_grpc",
  152. ":gcs_service_cc_grpc",
  153. ":grpc_common_lib",
  154. ":pubsub_lib",
  155. ":ray_common",
  156. "@boost//:asio",
  157. "@com_github_grpc_grpc//:grpc++",
  158. "@com_google_absl//absl/container:btree",
  159. ],
  160. )
  161. # Object manager gRPC lib.
  162. cc_grpc_library(
  163. name = "object_manager_cc_grpc",
  164. srcs = ["//src/ray/protobuf:object_manager_proto"],
  165. grpc_only = True,
  166. deps = ["//src/ray/protobuf:object_manager_cc_proto"],
  167. )
  168. # Object manager rpc server and client.
  169. ray_cc_library(
  170. name = "object_manager_rpc",
  171. hdrs = glob([
  172. "src/ray/rpc/object_manager/*.h",
  173. ]),
  174. deps = [
  175. ":grpc_common_lib",
  176. ":object_manager_cc_grpc",
  177. ":ray_common",
  178. "@boost//:asio",
  179. "@com_github_grpc_grpc//:grpc++",
  180. ],
  181. )
  182. # Worker gRPC lib.
  183. cc_grpc_library(
  184. name = "worker_cc_grpc",
  185. srcs = ["//src/ray/protobuf:core_worker_proto"],
  186. grpc_only = True,
  187. deps = ["//src/ray/protobuf:worker_cc_proto"],
  188. )
  189. # worker server and client.
  190. ray_cc_library(
  191. name = "worker_rpc",
  192. srcs = glob([
  193. "src/ray/rpc/worker/*.cc",
  194. ]),
  195. hdrs = glob([
  196. "src/ray/rpc/worker/*.h",
  197. ]),
  198. deps = [
  199. ":grpc_common_lib",
  200. ":pubsub_lib",
  201. ":ray_common",
  202. ":worker_cc_grpc",
  203. "@boost//:asio",
  204. "@boost//:thread",
  205. "@com_github_grpc_grpc//:grpc++",
  206. ],
  207. )
  208. # Metrics Agent gRPC lib.
  209. cc_grpc_library(
  210. name = "reporter_cc_grpc",
  211. srcs = ["//src/ray/protobuf:reporter_proto"],
  212. grpc_only = True,
  213. deps = ["//src/ray/protobuf:reporter_cc_proto"],
  214. )
  215. # Metrics Agent client.
  216. ray_cc_library(
  217. name = "reporter_rpc",
  218. hdrs = glob([
  219. "src/ray/rpc/metrics_agent_client.h",
  220. ]),
  221. deps = [
  222. ":grpc_common_lib",
  223. ":reporter_cc_grpc",
  224. "//src/ray/common:status",
  225. "@boost//:asio",
  226. "@boost//:thread",
  227. "@com_github_grpc_grpc//:grpc++",
  228. ],
  229. )
  230. # pubsub.
  231. cc_grpc_library(
  232. name = "pubsub_cc_grpc",
  233. srcs = ["//src/ray/protobuf:pubsub_proto"],
  234. grpc_only = True,
  235. deps = [
  236. "//src/ray/protobuf:common_cc_proto",
  237. "//src/ray/protobuf:gcs_cc_proto",
  238. "//src/ray/protobuf:pubsub_cc_proto",
  239. ],
  240. )
  241. ray_cc_library(
  242. name = "pubsub_rpc",
  243. deps = [
  244. "pubsub_cc_grpc",
  245. ":grpc_common_lib",
  246. ":ray_common",
  247. ],
  248. )
  249. cc_grpc_library(
  250. name = "autoscaler_cc_grpc",
  251. srcs = ["//src/ray/protobuf:autoscaler_proto"],
  252. grpc_only = True,
  253. deps = [
  254. "//src/ray/protobuf:autoscaler_cc_proto",
  255. ],
  256. )
  257. ray_cc_library(
  258. name = "autoscaler_rpc",
  259. deps = [
  260. ":autoscaler_cc_grpc",
  261. ],
  262. )
  263. # === End of rpc definitions ===
  264. # === Begin of plasma definitions ===
  265. # TODO(mehrdadn): (How to) support dynamic linking?
  266. PROPAGATED_WINDOWS_DEFINES = ["ARROW_STATIC"]
  267. PLASMA_COPTS = COPTS + select({
  268. "@platforms//os:windows": [
  269. ] + ["-D" + define for define in PROPAGATED_WINDOWS_DEFINES],
  270. "//conditions:default": [
  271. "-DARROW_USE_GLOG",
  272. ],
  273. })
  274. PLASMA_LINKOPTS = [] + select({
  275. "@platforms//os:windows": [
  276. "-DefaultLib:" + "ws2_32.lib",
  277. ],
  278. "//conditions:default": [
  279. ],
  280. })
  281. ray_cc_library(
  282. name = "plasma_client",
  283. srcs = [
  284. "src/ray/object_manager/common.cc",
  285. "src/ray/object_manager/plasma/client.cc",
  286. "src/ray/object_manager/plasma/connection.cc",
  287. "src/ray/object_manager/plasma/malloc.cc",
  288. "src/ray/object_manager/plasma/plasma.cc",
  289. "src/ray/object_manager/plasma/protocol.cc",
  290. "src/ray/object_manager/plasma/shared_memory.cc",
  291. ] + select({
  292. "@platforms//os:windows": [
  293. ],
  294. "//conditions:default": [
  295. "src/ray/object_manager/plasma/fling.cc",
  296. ],
  297. }),
  298. hdrs = [
  299. "src/ray/object_manager/common.h",
  300. "src/ray/object_manager/plasma/client.h",
  301. "src/ray/object_manager/plasma/common.h",
  302. "src/ray/object_manager/plasma/compat.h",
  303. "src/ray/object_manager/plasma/connection.h",
  304. "src/ray/object_manager/plasma/malloc.h",
  305. "src/ray/object_manager/plasma/plasma.h",
  306. "src/ray/object_manager/plasma/plasma_generated.h",
  307. "src/ray/object_manager/plasma/protocol.h",
  308. "src/ray/object_manager/plasma/shared_memory.h",
  309. ] + select({
  310. "@platforms//os:windows": [
  311. ],
  312. "//conditions:default": [
  313. "src/ray/object_manager/plasma/fling.h",
  314. ],
  315. }),
  316. copts = PLASMA_COPTS,
  317. defines = select({
  318. "@platforms//os:windows": PROPAGATED_WINDOWS_DEFINES,
  319. "//conditions:default": [],
  320. }),
  321. linkopts = PLASMA_LINKOPTS,
  322. deps = [
  323. ":plasma_fbs",
  324. ":ray_common",
  325. "//src/ray/protobuf:common_cc_proto",
  326. "//src/ray/util",
  327. "@msgpack",
  328. ],
  329. )
  330. ray_cc_library(
  331. name = "plasma_store_server_lib",
  332. srcs = [
  333. "src/ray/object_manager/plasma/create_request_queue.cc",
  334. "src/ray/object_manager/plasma/dlmalloc.cc",
  335. "src/ray/object_manager/plasma/eviction_policy.cc",
  336. "src/ray/object_manager/plasma/get_request_queue.cc",
  337. "src/ray/object_manager/plasma/object_lifecycle_manager.cc",
  338. "src/ray/object_manager/plasma/object_store.cc",
  339. "src/ray/object_manager/plasma/plasma_allocator.cc",
  340. "src/ray/object_manager/plasma/stats_collector.cc",
  341. "src/ray/object_manager/plasma/store.cc",
  342. "src/ray/object_manager/plasma/store_runner.cc",
  343. ],
  344. hdrs = [
  345. "src/ray/object_manager/common.h",
  346. "src/ray/object_manager/plasma/allocator.h",
  347. "src/ray/object_manager/plasma/create_request_queue.h",
  348. "src/ray/object_manager/plasma/eviction_policy.h",
  349. "src/ray/object_manager/plasma/get_request_queue.h",
  350. "src/ray/object_manager/plasma/object_lifecycle_manager.h",
  351. "src/ray/object_manager/plasma/object_store.h",
  352. "src/ray/object_manager/plasma/plasma_allocator.h",
  353. "src/ray/object_manager/plasma/stats_collector.h",
  354. "src/ray/object_manager/plasma/store.h",
  355. "src/ray/object_manager/plasma/store_runner.h",
  356. "src/ray/thirdparty/dlmalloc.c",
  357. ],
  358. copts = PLASMA_COPTS,
  359. linkopts = PLASMA_LINKOPTS,
  360. deps = [
  361. ":plasma_client",
  362. ":stats_lib",
  363. "//src/ray/common:network",
  364. ],
  365. )
  366. FLATC_ARGS = [
  367. "--gen-object-api",
  368. "--gen-mutable",
  369. "--scoped-enums",
  370. ]
  371. flatbuffer_cc_library(
  372. name = "plasma_fbs",
  373. srcs = ["src/ray/object_manager/plasma/plasma.fbs"],
  374. flatc_args = FLATC_ARGS,
  375. out_prefix = "src/ray/object_manager/plasma/",
  376. )
  377. # === End of plasma definitions ===
  378. ray_cc_library(
  379. name = "ray_mock",
  380. hdrs = glob(
  381. ["src/mock/**/*.h"],
  382. ),
  383. )
  384. cc_grpc_library(
  385. name = "ray_syncer_cc_grpc",
  386. srcs = ["//src/ray/protobuf:ray_syncer_proto"],
  387. grpc_only = True,
  388. deps = ["//src/ray/protobuf:ray_syncer_cc_proto"],
  389. )
  390. ray_cc_library(
  391. name = "ray_common",
  392. deps = [
  393. ":stats_metric",
  394. "//src/ray/common:asio",
  395. "//src/ray/common:constants",
  396. "//src/ray/common:event_stats",
  397. "//src/ray/common:file_system_monitor",
  398. "//src/ray/common:grpc_util",
  399. "//src/ray/common:id",
  400. "//src/ray/common:memory_monitor",
  401. "//src/ray/common:network",
  402. "//src/ray/common:ray_config",
  403. "//src/ray/common:ray_syncer",
  404. "//src/ray/common:status",
  405. "//src/ray/common:task_common",
  406. "//src/ray/common:test_util",
  407. "//src/ray/protobuf:gcs_cc_proto",
  408. "@com_google_googletest//:gtest",
  409. ],
  410. )
  411. ray_cc_binary(
  412. name = "raylet",
  413. srcs = ["src/ray/raylet/main.cc"],
  414. visibility = ["//java:__subpackages__"],
  415. deps = [
  416. ":raylet_lib",
  417. "//src/ray/util",
  418. "@com_github_gflags_gflags//:gflags",
  419. ],
  420. )
  421. ray_cc_library(
  422. name = "gcs_pub_sub_lib",
  423. srcs = [
  424. "src/ray/gcs/pubsub/gcs_pub_sub.cc",
  425. ],
  426. hdrs = [
  427. "src/ray/gcs/pubsub/gcs_pub_sub.h",
  428. ],
  429. deps = [
  430. ":gcs",
  431. ":gcs_service_rpc",
  432. ":pubsub_lib",
  433. ":ray_common",
  434. ":redis_client",
  435. ],
  436. )
  437. ray_cc_library(
  438. name = "gcs_server_lib",
  439. srcs = glob(
  440. [
  441. "src/ray/gcs/gcs_server/*.cc",
  442. ],
  443. exclude = [
  444. "src/ray/gcs/gcs_server/gcs_server_main.cc",
  445. "src/ray/gcs/gcs_server/test/*.cc",
  446. ],
  447. ),
  448. hdrs = glob(
  449. [
  450. "src/ray/gcs/gcs_server/*.h",
  451. ],
  452. ),
  453. deps = [
  454. ":autoscaler_rpc",
  455. ":gcs",
  456. ":gcs_pub_sub_lib",
  457. ":gcs_service_cc_grpc",
  458. ":gcs_service_rpc",
  459. ":gcs_table_storage_lib",
  460. ":node_manager_rpc",
  461. ":observable_store_client",
  462. ":pubsub_lib",
  463. ":raylet_client_lib",
  464. ":scheduler",
  465. ":worker_rpc",
  466. "//src/ray/protobuf:agent_manager_cc_proto",
  467. "@boost//:bimap",
  468. "@com_github_grpc_grpc//src/proto/grpc/health/v1:health_proto",
  469. "@com_google_absl//absl/container:btree",
  470. "//src/ray/util:thread_checker",
  471. ],
  472. )
  473. ray_cc_binary(
  474. name = "gcs_server",
  475. srcs = [
  476. "src/ray/gcs/gcs_server/gcs_server_main.cc",
  477. ],
  478. visibility = ["//java:__subpackages__"],
  479. deps = [
  480. ":gcs_server_lib",
  481. ":stats_lib",
  482. "@com_github_gflags_gflags//:gflags",
  483. ],
  484. )
  485. # Ray native pubsub module.
  486. ray_cc_library(
  487. name = "pubsub_lib",
  488. srcs = glob([
  489. "src/ray/pubsub/*.cc",
  490. ]),
  491. hdrs = glob([
  492. "src/ray/pubsub/*.h",
  493. ]),
  494. deps = [
  495. ":pubsub_rpc",
  496. "@boost//:any",
  497. "@com_google_absl//absl/container:flat_hash_map",
  498. "@com_google_absl//absl/container:flat_hash_set",
  499. "@com_google_absl//absl/synchronization",
  500. ],
  501. )
  502. ray_cc_library(
  503. name = "stats_metric",
  504. srcs = [
  505. "src/ray/stats/metric.cc",
  506. "src/ray/stats/metric_defs.cc",
  507. "src/ray/stats/tag_defs.cc",
  508. ],
  509. hdrs = [
  510. "src/ray/stats/metric.h",
  511. "src/ray/stats/metric_defs.h",
  512. "src/ray/stats/tag_defs.h",
  513. ],
  514. deps = [
  515. "//src/ray/util",
  516. "@com_github_jupp0r_prometheus_cpp//pull",
  517. "@com_google_absl//absl/base:core_headers",
  518. "@com_google_absl//absl/container:flat_hash_map",
  519. "@com_google_absl//absl/memory",
  520. "@com_google_absl//absl/strings",
  521. "@com_google_googletest//:gtest",
  522. "@io_opencensus_cpp//opencensus/exporters/stats/prometheus:prometheus_exporter",
  523. "@io_opencensus_cpp//opencensus/exporters/stats/stdout:stdout_exporter",
  524. "@io_opencensus_cpp//opencensus/stats",
  525. "@io_opencensus_cpp//opencensus/tags",
  526. ],
  527. )
  528. ray_cc_library(
  529. name = "stats_lib",
  530. srcs = [
  531. "src/ray/stats/metric_exporter.cc",
  532. ],
  533. hdrs = [
  534. "src/ray/stats/metric.h",
  535. "src/ray/stats/metric_exporter.h",
  536. "src/ray/stats/stats.h",
  537. "src/ray/stats/tag_defs.h",
  538. ],
  539. linkopts = select({
  540. "@platforms//os:windows": [
  541. ],
  542. "//conditions:default": [
  543. "-lpthread",
  544. ],
  545. }),
  546. deps = [
  547. ":reporter_rpc",
  548. ":stats_metric",
  549. "@com_github_grpc_grpc//:grpc_opencensus_plugin",
  550. ],
  551. )
  552. ray_cc_library(
  553. name = "scheduler",
  554. srcs = glob(
  555. [
  556. "src/ray/raylet/scheduling/**/*.cc",
  557. ],
  558. exclude = [
  559. "src/ray/raylet/scheduling/**/*_test.cc",
  560. ],
  561. ),
  562. hdrs = glob(
  563. [
  564. "src/ray/raylet/scheduling/**/*.h",
  565. "src/ray/core_worker/common.h",
  566. ],
  567. ),
  568. linkopts = select({
  569. "@platforms//os:windows": [
  570. ],
  571. "//conditions:default": [
  572. "-lpthread",
  573. ],
  574. }),
  575. deps = [
  576. ":gcs_client_lib",
  577. ":ray_common",
  578. ":stats_lib",
  579. "//src/ray/protobuf:common_cc_proto",
  580. "//src/ray/util",
  581. "@boost//:asio",
  582. "@boost//:system",
  583. "@com_github_jupp0r_prometheus_cpp//pull",
  584. "@com_google_absl//absl/base:core_headers",
  585. "@com_google_absl//absl/container:flat_hash_set",
  586. "@com_google_absl//absl/memory",
  587. "@com_google_absl//absl/random",
  588. "@com_google_absl//absl/random:bit_gen_ref",
  589. "@com_google_absl//absl/strings",
  590. "@com_google_googletest//:gtest",
  591. "@io_opencensus_cpp//opencensus/exporters/stats/prometheus:prometheus_exporter",
  592. "@io_opencensus_cpp//opencensus/stats",
  593. "@io_opencensus_cpp//opencensus/tags",
  594. ],
  595. )
  596. ray_cc_library(
  597. name = "raylet_lib",
  598. srcs = glob(
  599. [
  600. "src/ray/raylet/**/*.cc",
  601. ],
  602. exclude = [
  603. "src/ray/raylet/**/*_test.cc",
  604. "src/ray/raylet/scheduling/**/*.cc",
  605. "src/ray/raylet/main.cc",
  606. ],
  607. ),
  608. hdrs = glob(
  609. [
  610. "src/ray/raylet/**/*.h",
  611. ],
  612. exclude = [
  613. "src/ray/raylet/scheduling/**/*.h",
  614. "src/ray/raylet/main.cc",
  615. ],
  616. ),
  617. linkopts = select({
  618. "@platforms//os:windows": [
  619. ],
  620. "//conditions:default": [
  621. "-lpthread",
  622. ],
  623. }),
  624. deps = [
  625. ":gcs",
  626. ":gcs_client_lib",
  627. ":node_manager_fbs",
  628. ":node_manager_rpc",
  629. ":object_manager",
  630. ":plasma_client",
  631. ":pubsub_lib",
  632. ":ray_common",
  633. ":scheduler",
  634. ":stats_lib",
  635. ":worker_rpc",
  636. "//src/ray/protobuf:agent_manager_cc_proto",
  637. "//src/ray/protobuf:common_cc_proto",
  638. "//src/ray/protobuf:runtime_env_agent_cc_proto",
  639. "//src/ray/util",
  640. "@boost//:asio",
  641. "@boost//:beast",
  642. "@boost//:system",
  643. "@com_github_jupp0r_prometheus_cpp//pull",
  644. "@com_google_absl//absl/base:core_headers",
  645. "@com_google_absl//absl/container:flat_hash_set",
  646. "@com_google_absl//absl/memory",
  647. "@com_google_absl//absl/strings",
  648. "@com_google_googletest//:gtest",
  649. "@io_opencensus_cpp//opencensus/exporters/stats/prometheus:prometheus_exporter",
  650. "@io_opencensus_cpp//opencensus/stats",
  651. "@io_opencensus_cpp//opencensus/tags",
  652. ],
  653. )
  654. ray_cc_library(
  655. name = "raylet_client_lib",
  656. srcs = glob([
  657. "src/ray/raylet_client/*.cc",
  658. ]),
  659. hdrs = glob([
  660. "src/ray/raylet_client/*.h",
  661. ]),
  662. linkopts = select({
  663. "@platforms//os:windows": [
  664. ],
  665. "//conditions:default": [
  666. "-lpthread",
  667. ],
  668. }),
  669. deps = [
  670. ":node_manager_fbs",
  671. ":node_manager_rpc",
  672. ":ray_common",
  673. "//src/ray/protobuf:gcs_cc_proto",
  674. "//src/ray/util",
  675. "@boost//:asio",
  676. ],
  677. )
  678. ray_cc_library(
  679. name = "core_worker_lib",
  680. srcs = glob(
  681. [
  682. "src/ray/core_worker/*.cc",
  683. "src/ray/core_worker/store_provider/*.cc",
  684. "src/ray/core_worker/store_provider/memory_store/*.cc",
  685. "src/ray/core_worker/transport/*.cc",
  686. ],
  687. exclude = [
  688. "src/ray/core_worker/**/*_test.cc",
  689. ],
  690. ),
  691. hdrs = glob([
  692. "src/ray/core_worker/*.h",
  693. "src/ray/core_worker/store_provider/*.h",
  694. "src/ray/core_worker/store_provider/memory_store/*.h",
  695. "src/ray/core_worker/transport/*.h",
  696. ]),
  697. deps = [
  698. ":gcs",
  699. ":gcs_client_lib",
  700. ":plasma_client",
  701. ":ray_common",
  702. ":raylet_client_lib",
  703. ":stats_lib",
  704. ":worker_rpc",
  705. "//src/ray/protobuf:worker_cc_proto",
  706. "//src/ray/util",
  707. "@boost//:circular_buffer",
  708. "@boost//:fiber",
  709. "@com_google_absl//absl/cleanup",
  710. "@com_google_absl//absl/container:btree",
  711. "@com_google_absl//absl/container:flat_hash_map",
  712. "@com_google_absl//absl/container:flat_hash_set",
  713. "@com_google_absl//absl/container:node_hash_map",
  714. "@nlohmann_json",
  715. ],
  716. )
  717. # This header is used to wrap some internal codes so we can reduce suspicious
  718. # symbols export.
  719. ray_cc_library(
  720. name = "exported_internal",
  721. srcs =
  722. [
  723. "src/ray/internal/internal.cc",
  724. ],
  725. hdrs =
  726. [
  727. "src/ray/internal/internal.h",
  728. ],
  729. copts = COPTS,
  730. strip_include_prefix = "src",
  731. deps = [
  732. ":core_worker_lib",
  733. ],
  734. alwayslink = 1,
  735. )
  736. ray_cc_test(
  737. name = "core_worker_resubmit_queue_test",
  738. size = "small",
  739. srcs = ["src/ray/core_worker/test/core_worker_resubmit_queue_test.cc"],
  740. tags = ["team:core"],
  741. deps = [
  742. ":core_worker_lib",
  743. "@com_google_googletest//:gtest_main",
  744. ],
  745. )
  746. ray_cc_test(
  747. name = "memory_store_test",
  748. size = "small",
  749. srcs = ["src/ray/core_worker/test/memory_store_test.cc"],
  750. tags = ["team:core"],
  751. deps = [
  752. ":core_worker_lib",
  753. "@com_google_googletest//:gtest_main",
  754. ],
  755. )
  756. ray_cc_test(
  757. name = "direct_actor_transport_test",
  758. srcs = ["src/ray/core_worker/test/direct_actor_transport_test.cc"],
  759. tags = ["team:core"],
  760. deps = [
  761. ":core_worker_lib",
  762. ":ray_mock",
  763. "@com_google_googletest//:gtest_main",
  764. ],
  765. )
  766. ray_cc_test(
  767. name = "direct_actor_transport_mock_test",
  768. srcs = ["src/ray/core_worker/test/direct_actor_transport_mock_test.cc"],
  769. tags = ["team:core"],
  770. deps = [
  771. ":core_worker_lib",
  772. ":ray_mock",
  773. "@com_google_googletest//:gtest_main",
  774. ],
  775. )
  776. ray_cc_test(
  777. name = "gcs_function_manager_test",
  778. srcs = ["src/ray/gcs/gcs_server/test/gcs_function_manager_test.cc"],
  779. tags = ["team:core"],
  780. deps = [
  781. ":gcs_server_lib",
  782. ":ray_mock",
  783. "@com_google_googletest//:gtest_main",
  784. ],
  785. )
  786. ray_cc_test(
  787. name = "dependency_resolver_test",
  788. size = "small",
  789. srcs = ["src/ray/core_worker/test/dependency_resolver_test.cc"],
  790. tags = ["team:core"],
  791. deps = [
  792. ":core_worker_lib",
  793. ":ray_mock",
  794. "@com_google_googletest//:gtest_main",
  795. ],
  796. )
  797. ray_cc_test(
  798. name = "normal_task_submitter_test",
  799. size = "small",
  800. srcs = ["src/ray/core_worker/test/normal_task_submitter_test.cc"],
  801. tags = ["team:core"],
  802. deps = [
  803. ":core_worker_lib",
  804. ":ray_mock",
  805. "@com_google_googletest//:gtest_main",
  806. ],
  807. )
  808. ray_cc_test(
  809. name = "reference_count_test",
  810. size = "small",
  811. srcs = ["src/ray/core_worker/test/reference_count_test.cc"],
  812. tags = ["team:core"],
  813. deps = [
  814. ":core_worker_lib",
  815. ":ray_mock",
  816. "@com_google_googletest//:gtest_main",
  817. ],
  818. )
  819. ray_cc_test(
  820. name = "object_recovery_manager_test",
  821. size = "small",
  822. srcs = ["src/ray/core_worker/test/object_recovery_manager_test.cc"],
  823. tags = ["team:core"],
  824. deps = [
  825. ":core_worker_lib",
  826. ":ray_mock",
  827. "@com_google_googletest//:gtest_main",
  828. ],
  829. )
  830. ray_cc_test(
  831. name = "scheduling_queue_test",
  832. srcs = ["src/ray/core_worker/test/scheduling_queue_test.cc"],
  833. tags = ["team:core"],
  834. deps = [
  835. ":core_worker_lib",
  836. "@com_google_googletest//:gtest_main",
  837. ],
  838. )
  839. ray_cc_test(
  840. name = "concurrency_group_manager_test",
  841. srcs = ["src/ray/core_worker/test/concurrency_group_manager_test.cc"],
  842. tags = ["team:core"],
  843. deps = [
  844. ":core_worker_lib",
  845. "@com_google_googletest//:gtest_main",
  846. ],
  847. )
  848. ray_cc_test(
  849. name = "fiber_state_test",
  850. srcs = ["src/ray/core_worker/test/fiber_state_test.cc"],
  851. tags = ["team:core"],
  852. deps = [
  853. ":core_worker_lib",
  854. "@com_google_googletest//:gtest_main",
  855. ],
  856. )
  857. ray_cc_test(
  858. name = "actor_submit_queue_test",
  859. size = "small",
  860. srcs = ["src/ray/core_worker/test/actor_submit_queue_test.cc"],
  861. tags = ["team:core"],
  862. deps = [
  863. ":core_worker_lib",
  864. "@com_google_googletest//:gtest_main",
  865. ],
  866. )
  867. ray_cc_test(
  868. name = "task_manager_test",
  869. size = "small",
  870. srcs = ["src/ray/core_worker/test/task_manager_test.cc"],
  871. tags = ["team:core"],
  872. deps = [
  873. ":core_worker_lib",
  874. ":ray_mock",
  875. "@com_google_googletest//:gtest_main",
  876. ],
  877. )
  878. ray_cc_test(
  879. name = "task_event_buffer_test",
  880. size = "small",
  881. srcs = ["src/ray/core_worker/test/task_event_buffer_test.cc"],
  882. tags = ["team:core"],
  883. deps = [
  884. ":core_worker_lib",
  885. ":ray_mock",
  886. "@com_google_googletest//:gtest_main",
  887. ],
  888. )
  889. ray_cc_test(
  890. name = "task_event_buffer_export_event_test",
  891. size = "small",
  892. srcs = ["src/ray/core_worker/test/task_event_buffer_export_event_test.cc"],
  893. tags = [
  894. "team:core",
  895. "no_windows"
  896. ],
  897. deps = [
  898. ":core_worker_lib",
  899. ":ray_mock",
  900. "@com_google_googletest//:gtest_main",
  901. ],
  902. )
  903. ray_cc_test(
  904. name = "actor_creator_test",
  905. size = "small",
  906. srcs = ["src/ray/core_worker/test/actor_creator_test.cc"],
  907. tags = ["team:core"],
  908. deps = [
  909. ":core_worker_lib",
  910. ":gcs_client_lib",
  911. ":ray_mock",
  912. "//src/ray/common:test_util",
  913. "@com_google_googletest//:gtest_main",
  914. ],
  915. )
  916. ray_cc_test(
  917. name = "generator_waiter_test",
  918. size = "small",
  919. srcs = ["src/ray/core_worker/test/generator_waiter_test.cc"],
  920. tags = ["team:core"],
  921. deps = [
  922. ":core_worker_lib",
  923. ":gcs_client_lib",
  924. ":ray_mock",
  925. "//src/ray/common:test_util",
  926. "@com_google_googletest//:gtest_main",
  927. ],
  928. )
  929. ray_cc_test(
  930. name = "actor_manager_test",
  931. size = "small",
  932. srcs = ["src/ray/core_worker/test/actor_manager_test.cc"],
  933. tags = ["team:core"],
  934. deps = [
  935. ":core_worker_lib",
  936. ":ray_mock",
  937. "@com_google_googletest//:gtest_main",
  938. ],
  939. )
  940. ray_cc_test(
  941. name = "lease_policy_test",
  942. size = "small",
  943. srcs = ["src/ray/core_worker/test/lease_policy_test.cc"],
  944. tags = ["team:core"],
  945. deps = [
  946. ":core_worker_lib",
  947. "@com_google_googletest//:gtest_main",
  948. ],
  949. )
  950. ray_cc_test(
  951. name = "cluster_resource_scheduler_test",
  952. size = "small",
  953. srcs = [
  954. "src/ray/raylet/scheduling/cluster_resource_scheduler_test.cc",
  955. ],
  956. tags = ["team:core"],
  957. deps = [
  958. ":ray_mock",
  959. ":raylet_lib",
  960. "@com_google_googletest//:gtest_main",
  961. ],
  962. )
  963. ray_cc_test(
  964. name = "local_resource_manager_test",
  965. size = "small",
  966. srcs = [
  967. "src/ray/raylet/scheduling/local_resource_manager_test.cc",
  968. ],
  969. tags = ["team:core"],
  970. deps = [
  971. ":ray_mock",
  972. ":raylet_lib",
  973. "@com_google_googletest//:gtest_main",
  974. ],
  975. )
  976. ray_cc_test(
  977. name = "cluster_resource_scheduler_2_test",
  978. size = "small",
  979. srcs = [
  980. "src/ray/raylet/scheduling/cluster_resource_scheduler_2_test.cc",
  981. ],
  982. tags = ["team:core"],
  983. deps = [
  984. ":raylet_lib",
  985. "@com_google_googletest//:gtest_main",
  986. ],
  987. )
  988. ray_cc_test(
  989. name = "scheduling_policy_test",
  990. size = "small",
  991. srcs = [
  992. "src/ray/raylet/scheduling/policy/scheduling_policy_test.cc",
  993. ],
  994. tags = ["team:core"],
  995. deps = [
  996. ":raylet_lib",
  997. "@com_google_googletest//:gtest_main",
  998. ],
  999. )
  1000. ray_cc_test(
  1001. name = "hybrid_scheduling_policy_test",
  1002. size = "small",
  1003. srcs = [
  1004. "src/ray/raylet/scheduling/policy/hybrid_scheduling_policy_test.cc",
  1005. ],
  1006. tags = ["team:core"],
  1007. deps = [
  1008. ":scheduler",
  1009. "@com_google_absl//absl/random:mock_distributions",
  1010. "@com_google_googletest//:gtest_main",
  1011. ],
  1012. )
  1013. ray_cc_test(
  1014. name = "cluster_task_manager_test",
  1015. size = "small",
  1016. srcs = [
  1017. "src/ray/raylet/scheduling/cluster_task_manager_test.cc",
  1018. ],
  1019. tags = ["team:core"],
  1020. deps = [
  1021. ":ray_mock",
  1022. ":raylet_lib",
  1023. "@com_google_googletest//:gtest_main",
  1024. ],
  1025. )
  1026. ray_cc_test(
  1027. name = "cluster_resource_manager_test",
  1028. size = "small",
  1029. srcs = [
  1030. "src/ray/raylet/scheduling/cluster_resource_manager_test.cc",
  1031. ],
  1032. tags = ["team:core"],
  1033. deps = [
  1034. ":raylet_lib",
  1035. "@com_google_googletest//:gtest_main",
  1036. ],
  1037. )
  1038. ray_cc_test(
  1039. name = "local_object_manager_test",
  1040. size = "small",
  1041. srcs = [
  1042. "src/ray/raylet/test/local_object_manager_test.cc",
  1043. ],
  1044. tags = ["team:core"],
  1045. deps = [
  1046. ":raylet_lib",
  1047. "@com_google_googletest//:gtest_main",
  1048. ],
  1049. )
  1050. ray_cc_test(
  1051. name = "pull_manager_test",
  1052. size = "small",
  1053. srcs = [
  1054. "src/ray/object_manager/test/pull_manager_test.cc",
  1055. ],
  1056. tags = ["team:core"],
  1057. deps = [
  1058. ":object_manager",
  1059. "@com_google_googletest//:gtest_main",
  1060. ],
  1061. )
  1062. ray_cc_test(
  1063. name = "object_buffer_pool_test",
  1064. size = "small",
  1065. srcs = [
  1066. "src/ray/object_manager/test/object_buffer_pool_test.cc",
  1067. ],
  1068. tags = ["team:core"],
  1069. deps = [
  1070. ":object_manager",
  1071. "@com_google_googletest//:gtest_main",
  1072. ],
  1073. )
  1074. ray_cc_test(
  1075. name = "ownership_based_object_directory_test",
  1076. size = "small",
  1077. srcs = [
  1078. "src/ray/object_manager/test/ownership_based_object_directory_test.cc",
  1079. ],
  1080. tags = ["team:core"],
  1081. deps = [
  1082. ":object_manager",
  1083. ":ray_mock",
  1084. "@com_google_googletest//:gtest_main",
  1085. ],
  1086. )
  1087. ray_cc_test(
  1088. name = "push_manager_test",
  1089. size = "small",
  1090. srcs = [
  1091. "src/ray/object_manager/test/push_manager_test.cc",
  1092. ],
  1093. tags = ["team:core"],
  1094. deps = [
  1095. ":raylet_lib",
  1096. "@com_google_googletest//:gtest_main",
  1097. ],
  1098. )
  1099. ray_cc_test(
  1100. name = "spilled_object_test",
  1101. size = "small",
  1102. srcs = [
  1103. "src/ray/object_manager/test/spilled_object_test.cc",
  1104. ],
  1105. tags = ["team:core"],
  1106. deps = [
  1107. ":raylet_lib",
  1108. "@boost//:endian",
  1109. "@com_google_absl//absl/strings:str_format",
  1110. "@com_google_googletest//:gtest_main",
  1111. ],
  1112. )
  1113. ray_cc_test(
  1114. name = "fallback_allocator_test",
  1115. srcs = [
  1116. "src/ray/object_manager/plasma/test/fallback_allocator_test.cc",
  1117. ],
  1118. tags = ["team:core"],
  1119. deps = [
  1120. ":plasma_store_server_lib",
  1121. "@com_google_absl//absl/strings:str_format",
  1122. "@com_google_googletest//:gtest_main",
  1123. ],
  1124. )
  1125. ray_cc_test(
  1126. name = "object_store_test",
  1127. srcs = [
  1128. "src/ray/object_manager/plasma/test/object_store_test.cc",
  1129. ],
  1130. tags = ["team:core"],
  1131. deps = [
  1132. ":plasma_store_server_lib",
  1133. "@com_google_absl//absl/random",
  1134. "@com_google_absl//absl/strings:str_format",
  1135. "@com_google_googletest//:gtest_main",
  1136. ],
  1137. )
  1138. ray_cc_test(
  1139. name = "mutable_object_test",
  1140. srcs = [
  1141. "src/ray/object_manager/plasma/test/mutable_object_test.cc",
  1142. ],
  1143. tags = [
  1144. "no_windows",
  1145. "team:core",
  1146. ],
  1147. target_compatible_with = [
  1148. "@platforms//os:linux",
  1149. ],
  1150. deps = [
  1151. ":core_worker_lib",
  1152. ":plasma_store_server_lib",
  1153. "@com_google_absl//absl/random",
  1154. "@com_google_absl//absl/strings:str_format",
  1155. "@com_google_googletest//:gtest_main",
  1156. ],
  1157. )
  1158. ray_cc_test(
  1159. name = "mutable_object_provider_test",
  1160. srcs = [
  1161. "src/ray/core_worker/test/mutable_object_provider_test.cc",
  1162. ],
  1163. tags = [
  1164. "no_tsan",
  1165. "no_windows",
  1166. "team:core",
  1167. ],
  1168. target_compatible_with = [
  1169. "@platforms//os:linux",
  1170. ],
  1171. deps = [
  1172. ":core_worker_lib",
  1173. ":plasma_store_server_lib",
  1174. "@com_google_absl//absl/random",
  1175. "@com_google_absl//absl/strings:str_format",
  1176. "@com_google_googletest//:gtest_main",
  1177. ],
  1178. )
  1179. ray_cc_test(
  1180. name = "object_lifecycle_manager_test",
  1181. srcs = [
  1182. "src/ray/object_manager/plasma/test/object_lifecycle_manager_test.cc",
  1183. "src/ray/object_manager/plasma/test/stats_collector_test.cc",
  1184. ],
  1185. tags = ["team:core"],
  1186. deps = [
  1187. ":plasma_store_server_lib",
  1188. "@com_google_absl//absl/random",
  1189. "@com_google_absl//absl/strings:str_format",
  1190. "@com_google_googletest//:gtest_main",
  1191. ],
  1192. )
  1193. ray_cc_test(
  1194. name = "eviction_policy_test",
  1195. srcs = [
  1196. "src/ray/object_manager/plasma/test/eviction_policy_test.cc",
  1197. ],
  1198. tags = ["team:core"],
  1199. deps = [
  1200. ":plasma_store_server_lib",
  1201. "@com_google_googletest//:gtest_main",
  1202. ],
  1203. )
  1204. ray_cc_test(
  1205. name = "create_request_queue_test",
  1206. size = "small",
  1207. srcs = [
  1208. "src/ray/object_manager/test/create_request_queue_test.cc",
  1209. ],
  1210. tags = ["team:core"],
  1211. deps = [
  1212. ":plasma_store_server_lib",
  1213. "@com_google_googletest//:gtest",
  1214. "@com_google_googletest//:gtest_main",
  1215. ],
  1216. )
  1217. ray_cc_test(
  1218. name = "get_request_queue_test",
  1219. size = "small",
  1220. srcs = [
  1221. "src/ray/object_manager/test/get_request_queue_test.cc",
  1222. ],
  1223. tags = ["team:core"],
  1224. deps = [
  1225. ":plasma_store_server_lib",
  1226. "@com_google_googletest//:gtest",
  1227. "@com_google_googletest//:gtest_main",
  1228. ],
  1229. )
  1230. ray_cc_test(
  1231. name = "worker_pool_test",
  1232. size = "small",
  1233. srcs = ["src/ray/raylet/worker_pool_test.cc"],
  1234. tags = [
  1235. "no_tsan",
  1236. "team:core",
  1237. ],
  1238. deps = [
  1239. ":raylet_lib",
  1240. "@com_google_googletest//:gtest_main",
  1241. ],
  1242. )
  1243. ray_cc_test(
  1244. name = "gcs_placement_group_manager_mock_test",
  1245. size = "small",
  1246. srcs = [
  1247. "src/ray/gcs/gcs_server/test/gcs_placement_group_manager_mock_test.cc",
  1248. ],
  1249. tags = ["team:core"],
  1250. deps = [
  1251. ":gcs_server_lib",
  1252. ":gcs_test_util_lib",
  1253. ":ray_mock",
  1254. "@com_google_googletest//:gtest_main",
  1255. ],
  1256. )
  1257. ray_cc_test(
  1258. name = "placement_group_resource_manager_test",
  1259. size = "small",
  1260. srcs = ["src/ray/raylet/placement_group_resource_manager_test.cc"],
  1261. tags = ["team:core"],
  1262. deps = [
  1263. "gcs_test_util_lib",
  1264. "ray_common",
  1265. "raylet_lib",
  1266. ":ray_mock",
  1267. "@com_google_googletest//:gtest_main",
  1268. ],
  1269. )
  1270. ray_cc_test(
  1271. name = "runtime_env_agent_client_test",
  1272. size = "small",
  1273. srcs = ["src/ray/raylet/runtime_env_agent_client_test.cc"],
  1274. tags = ["team:core"],
  1275. deps = [
  1276. "gcs_test_util_lib",
  1277. "ray_common",
  1278. "raylet_lib",
  1279. ":ray_mock",
  1280. "@com_google_googletest//:gtest_main",
  1281. ],
  1282. )
  1283. ray_cc_test(
  1284. name = "dependency_manager_test",
  1285. size = "small",
  1286. srcs = ["src/ray/raylet/dependency_manager_test.cc"],
  1287. tags = ["team:core"],
  1288. deps = [
  1289. ":raylet_lib",
  1290. "@com_google_googletest//:gtest_main",
  1291. ],
  1292. )
  1293. ray_cc_test(
  1294. name = "local_task_manager_test",
  1295. size = "small",
  1296. srcs = ["src/ray/raylet/local_task_manager_test.cc"],
  1297. tags = ["team:core"],
  1298. deps = [
  1299. ":ray_mock",
  1300. ":raylet_lib",
  1301. "@com_google_googletest//:gtest_main",
  1302. ],
  1303. )
  1304. ray_cc_test(
  1305. name = "wait_manager_test",
  1306. size = "small",
  1307. srcs = ["src/ray/raylet/wait_manager_test.cc"],
  1308. tags = ["team:core"],
  1309. deps = [
  1310. ":raylet_lib",
  1311. "@com_google_googletest//:gtest_main",
  1312. ],
  1313. )
  1314. ray_cc_test(
  1315. name = "worker_killing_policy_test",
  1316. size = "small",
  1317. srcs = [
  1318. "src/ray/raylet/worker_killing_policy_test.cc",
  1319. ],
  1320. tags = ["team:core"],
  1321. deps = [
  1322. ":ray_common",
  1323. ":raylet_lib",
  1324. "@com_google_googletest//:gtest_main",
  1325. ],
  1326. )
  1327. ray_cc_test(
  1328. name = "worker_killing_policy_group_by_owner_test",
  1329. size = "small",
  1330. srcs = [
  1331. "src/ray/raylet/worker_killing_policy_group_by_owner_test.cc",
  1332. ],
  1333. tags = ["team:core"],
  1334. deps = [
  1335. ":ray_common",
  1336. ":raylet_lib",
  1337. "@com_google_googletest//:gtest_main",
  1338. ],
  1339. )
  1340. ray_cc_test(
  1341. name = "worker_killing_policy_retriable_fifo_test",
  1342. size = "small",
  1343. srcs = [
  1344. "src/ray/raylet/worker_killing_policy_retriable_fifo_test.cc",
  1345. ],
  1346. tags = ["team:core"],
  1347. deps = [
  1348. ":ray_common",
  1349. ":raylet_lib",
  1350. "@com_google_googletest//:gtest_main",
  1351. ],
  1352. )
  1353. ray_cc_test(
  1354. name = "pubsub_integration_test",
  1355. size = "small",
  1356. srcs = ["src/ray/pubsub/test/integration_test.cc"],
  1357. tags = ["team:core"],
  1358. deps = [
  1359. ":pubsub_cc_grpc",
  1360. ":pubsub_lib",
  1361. "//src/ray/protobuf:pubsub_cc_proto",
  1362. "@com_google_absl//absl/synchronization",
  1363. "@com_google_absl//absl/time",
  1364. "@com_google_googletest//:gtest_main",
  1365. ],
  1366. )
  1367. ray_cc_test(
  1368. name = "publisher_test",
  1369. size = "small",
  1370. srcs = ["src/ray/pubsub/test/publisher_test.cc"],
  1371. tags = ["team:core"],
  1372. deps = [
  1373. ":pubsub_lib",
  1374. "@com_google_googletest//:gtest_main",
  1375. ],
  1376. )
  1377. ray_cc_test(
  1378. name = "subscriber_test",
  1379. size = "small",
  1380. srcs = [
  1381. "src/ray/pubsub/test/subscriber_test.cc",
  1382. ],
  1383. tags = ["team:core"],
  1384. deps = [
  1385. ":pubsub_lib",
  1386. "@com_google_googletest//:gtest_main",
  1387. ],
  1388. )
  1389. ray_cc_test(
  1390. name = "stats_test",
  1391. size = "small",
  1392. srcs = ["src/ray/stats/stats_test.cc"],
  1393. tags = [
  1394. "no_tsan",
  1395. "stats",
  1396. "team:core",
  1397. ],
  1398. deps = [
  1399. ":stats_lib",
  1400. "@com_google_googletest//:gtest_main",
  1401. ],
  1402. )
  1403. ray_cc_test(
  1404. name = "metric_exporter_grpc_test",
  1405. size = "small",
  1406. srcs = [
  1407. "src/ray/stats/metric_exporter_grpc_test.cc",
  1408. ],
  1409. tags = [
  1410. "stats",
  1411. "team:core",
  1412. ],
  1413. deps = [
  1414. ":stats_lib",
  1415. "@com_google_googletest//:gtest_main",
  1416. ],
  1417. )
  1418. ray_cc_library(
  1419. name = "gcs_test_util_lib",
  1420. hdrs = [
  1421. "src/ray/gcs/test/gcs_test_util.h",
  1422. ],
  1423. deps = [
  1424. ":gcs",
  1425. ":gcs_service_rpc",
  1426. ],
  1427. )
  1428. ray_cc_test(
  1429. name = "grpc_server_client_test",
  1430. size = "small",
  1431. srcs = [
  1432. "src/ray/rpc/test/grpc_server_client_test.cc",
  1433. ],
  1434. tags = ["team:core"],
  1435. deps = [
  1436. ":grpc_common_lib",
  1437. ":test_service_cc_grpc",
  1438. ],
  1439. )
  1440. ray_cc_test(
  1441. name = "rpc_chaos_test",
  1442. size = "small",
  1443. srcs = [
  1444. "src/ray/rpc/test/rpc_chaos_test.cc",
  1445. ],
  1446. tags = ["team:core"],
  1447. deps = [
  1448. ":grpc_common_lib",
  1449. "@com_google_googletest//:gtest_main",
  1450. ],
  1451. )
  1452. ray_cc_test(
  1453. name = "core_worker_client_pool_test",
  1454. size = "small",
  1455. srcs = [
  1456. "src/ray/rpc/worker/test/core_worker_client_pool_test.cc",
  1457. ],
  1458. tags = ["team:core"],
  1459. deps = [
  1460. ":worker_rpc",
  1461. "@com_google_googletest//:gtest_main",
  1462. ],
  1463. )
  1464. ray_cc_test(
  1465. name = "gcs_server_rpc_test",
  1466. size = "small",
  1467. srcs = [
  1468. "src/ray/gcs/gcs_server/test/gcs_server_rpc_test.cc",
  1469. ],
  1470. args = [
  1471. "$(location redis-server)",
  1472. "$(location redis-cli)",
  1473. ],
  1474. data = [
  1475. "//:redis-cli",
  1476. "//:redis-server",
  1477. ],
  1478. tags = [
  1479. "no_tsan",
  1480. "no_windows",
  1481. "team:core",
  1482. ],
  1483. deps = [
  1484. ":gcs_server_lib",
  1485. ":gcs_test_util_lib",
  1486. "@com_google_googletest//:gtest_main",
  1487. ],
  1488. )
  1489. ray_cc_test(
  1490. name = "gcs_kv_manager_test",
  1491. size = "small",
  1492. srcs = [
  1493. "src/ray/gcs/gcs_server/test/gcs_kv_manager_test.cc",
  1494. ],
  1495. args = [
  1496. "$(location redis-server)",
  1497. "$(location redis-cli)",
  1498. ],
  1499. data = [
  1500. "//:redis-cli",
  1501. "//:redis-server",
  1502. ],
  1503. tags = ["team:core"],
  1504. deps = [
  1505. ":gcs_server_lib",
  1506. ":gcs_test_util_lib",
  1507. "@com_google_googletest//:gtest_main",
  1508. ],
  1509. )
  1510. ray_cc_library(
  1511. name = "gcs_server_test_util",
  1512. hdrs = [
  1513. "src/ray/gcs/gcs_server/test/gcs_server_test_util.h",
  1514. ],
  1515. deps = [
  1516. ":gcs_client_lib",
  1517. ],
  1518. )
  1519. ray_cc_test(
  1520. name = "gcs_health_check_manager_test",
  1521. size = "medium",
  1522. srcs = [
  1523. "src/ray/gcs/gcs_server/test/gcs_health_check_manager_test.cc",
  1524. ],
  1525. tags = [
  1526. "no_windows",
  1527. "team:core",
  1528. ],
  1529. deps = [
  1530. ":gcs_server_lib",
  1531. "@com_google_googletest//:gtest_main",
  1532. ],
  1533. )
  1534. ray_cc_test(
  1535. name = "gcs_node_manager_test",
  1536. size = "small",
  1537. srcs = [
  1538. "src/ray/gcs/gcs_server/test/gcs_node_manager_test.cc",
  1539. ],
  1540. tags = ["team:core"],
  1541. deps = [
  1542. ":gcs_server_lib",
  1543. ":gcs_server_test_util",
  1544. ":gcs_test_util_lib",
  1545. ":ray_mock",
  1546. "@com_google_googletest//:gtest_main",
  1547. ],
  1548. )
  1549. ray_cc_test(
  1550. name = "gcs_job_manager_test",
  1551. size = "small",
  1552. srcs = [
  1553. "src/ray/gcs/gcs_server/test/gcs_job_manager_test.cc",
  1554. ],
  1555. tags = ["team:core"],
  1556. deps = [
  1557. ":gcs_server_lib",
  1558. ":gcs_server_test_util",
  1559. ":gcs_test_util_lib",
  1560. ":ray_mock",
  1561. "@com_google_googletest//:gtest_main",
  1562. ],
  1563. )
  1564. ray_cc_test(
  1565. name = "gcs_task_manager_test",
  1566. size = "small",
  1567. srcs = [
  1568. "src/ray/gcs/gcs_server/test/gcs_task_manager_test.cc",
  1569. ],
  1570. tags = ["team:core"],
  1571. deps = [
  1572. ":gcs_server_lib",
  1573. ":gcs_server_test_util",
  1574. ":gcs_test_util_lib",
  1575. ":ray_mock",
  1576. "@com_google_googletest//:gtest_main",
  1577. ],
  1578. )
  1579. ray_cc_test(
  1580. name = "gcs_placement_group_manager_test",
  1581. size = "small",
  1582. srcs = [
  1583. "src/ray/gcs/gcs_server/test/gcs_placement_group_manager_test.cc",
  1584. ],
  1585. tags = [
  1586. "no_tsan",
  1587. "team:core",
  1588. ],
  1589. deps = [
  1590. ":gcs_server_lib",
  1591. ":gcs_server_test_util",
  1592. ":gcs_test_util_lib",
  1593. ":ray_mock",
  1594. "@com_google_googletest//:gtest_main",
  1595. ],
  1596. )
  1597. ray_cc_test(
  1598. name = "gcs_placement_group_scheduler_test",
  1599. size = "small",
  1600. srcs = [
  1601. "src/ray/gcs/gcs_server/test/gcs_placement_group_scheduler_test.cc",
  1602. ],
  1603. tags = [
  1604. "no_tsan",
  1605. "team:core",
  1606. ],
  1607. deps = [
  1608. ":gcs_server_lib",
  1609. ":gcs_server_test_util",
  1610. ":gcs_test_util_lib",
  1611. ":ray_mock",
  1612. "@com_google_googletest//:gtest_main",
  1613. ],
  1614. )
  1615. ray_cc_test(
  1616. name = "gcs_actor_scheduler_test",
  1617. size = "small",
  1618. srcs = [
  1619. "src/ray/gcs/gcs_server/test/gcs_actor_scheduler_test.cc",
  1620. ],
  1621. tags = ["team:core"],
  1622. deps = [
  1623. ":gcs_client_lib",
  1624. ":gcs_server_lib",
  1625. ":gcs_server_test_util",
  1626. ":gcs_test_util_lib",
  1627. ":ray_mock",
  1628. "@com_google_googletest//:gtest_main",
  1629. ],
  1630. )
  1631. ray_cc_test(
  1632. name = "gcs_actor_scheduler_mock_test",
  1633. size = "small",
  1634. srcs = [
  1635. "src/ray/gcs/gcs_server/test/gcs_actor_scheduler_mock_test.cc",
  1636. ],
  1637. tags = ["team:core"],
  1638. deps = [
  1639. ":gcs_server_lib",
  1640. ":ray_mock",
  1641. "@com_google_googletest//:gtest_main",
  1642. ],
  1643. )
  1644. ray_cc_test(
  1645. name = "gcs_actor_manager_test",
  1646. size = "small",
  1647. srcs = [
  1648. "src/ray/gcs/gcs_server/test/gcs_actor_manager_test.cc",
  1649. ],
  1650. tags = [
  1651. "no_tsan",
  1652. "team:core",
  1653. ],
  1654. deps = [
  1655. ":gcs_server_lib",
  1656. ":gcs_server_test_util",
  1657. ":gcs_test_util_lib",
  1658. ":ray_mock",
  1659. "@com_google_googletest//:gtest_main",
  1660. ],
  1661. )
  1662. ray_cc_test(
  1663. name = "gcs_worker_manager_test",
  1664. size = "small",
  1665. srcs = [
  1666. "src/ray/gcs/gcs_server/test/gcs_worker_manager_test.cc",
  1667. ],
  1668. tags = ["team:core"],
  1669. deps = [
  1670. ":gcs_server_lib",
  1671. ":gcs_server_test_util",
  1672. ":gcs_test_util_lib",
  1673. ":ray_mock",
  1674. "@com_google_googletest//:gtest_main",
  1675. ],
  1676. )
  1677. ray_cc_library(
  1678. name = "gcs_table_storage_lib",
  1679. srcs = glob(
  1680. [
  1681. "src/ray/gcs/gcs_server/gcs_table_storage.cc",
  1682. ],
  1683. ),
  1684. hdrs = glob(
  1685. [
  1686. "src/ray/gcs/gcs_server/gcs_table_storage.h",
  1687. ],
  1688. ),
  1689. deps = [
  1690. ":gcs",
  1691. ":gcs_in_memory_store_client",
  1692. ":observable_store_client",
  1693. ":pubsub_lib",
  1694. ":ray_common",
  1695. ":redis_store_client",
  1696. ],
  1697. )
  1698. ray_cc_library(
  1699. name = "gcs_table_storage_test_lib",
  1700. hdrs = [
  1701. "src/ray/gcs/gcs_server/test/gcs_table_storage_test_base.h",
  1702. ],
  1703. deps = [
  1704. "redis_store_client",
  1705. ],
  1706. )
  1707. ray_cc_test(
  1708. name = "redis_gcs_table_storage_test",
  1709. size = "small",
  1710. srcs = [
  1711. "src/ray/gcs/gcs_server/test/redis_gcs_table_storage_test.cc",
  1712. ],
  1713. args = [
  1714. "$(location redis-server)",
  1715. "$(location redis-cli)",
  1716. ],
  1717. data = [
  1718. "//:redis-cli",
  1719. "//:redis-server",
  1720. ],
  1721. tags = ["team:core"],
  1722. deps = [
  1723. ":gcs_table_storage_lib",
  1724. ":gcs_table_storage_test_lib",
  1725. ":gcs_test_util_lib",
  1726. ":store_client_test_lib",
  1727. "@com_google_googletest//:gtest_main",
  1728. ],
  1729. )
  1730. ray_cc_test(
  1731. name = "in_memory_gcs_table_storage_test",
  1732. size = "small",
  1733. srcs = [
  1734. "src/ray/gcs/gcs_server/test/in_memory_gcs_table_storage_test.cc",
  1735. ],
  1736. tags = ["team:core"],
  1737. deps = [
  1738. ":gcs_table_storage_lib",
  1739. ":gcs_table_storage_test_lib",
  1740. ":gcs_test_util_lib",
  1741. ":store_client_test_lib",
  1742. "@com_google_googletest//:gtest_main",
  1743. ],
  1744. )
  1745. ray_cc_test(
  1746. name = "gcs_autoscaler_state_manager_test",
  1747. size = "small",
  1748. srcs = [
  1749. "src/ray/gcs/gcs_server/test/gcs_autoscaler_state_manager_test.cc",
  1750. ],
  1751. tags = ["team:core"],
  1752. deps = [
  1753. ":gcs_server_lib",
  1754. ":gcs_server_test_util",
  1755. ":gcs_test_util_lib",
  1756. ":ray_mock",
  1757. "@com_google_googletest//:gtest_main",
  1758. ],
  1759. )
  1760. ray_cc_test(
  1761. name = "gcs_resource_manager_test",
  1762. size = "small",
  1763. srcs = [
  1764. "src/ray/gcs/gcs_server/test/gcs_resource_manager_test.cc",
  1765. ],
  1766. tags = ["team:core"],
  1767. deps = [
  1768. ":gcs_server_lib",
  1769. ":gcs_test_util_lib",
  1770. ":ray_mock",
  1771. "@com_google_googletest//:gtest_main",
  1772. ],
  1773. )
  1774. ray_cc_test(
  1775. name = "usage_stats_client_test",
  1776. size = "small",
  1777. srcs = [
  1778. "src/ray/gcs/gcs_server/test/usage_stats_client_test.cc",
  1779. ],
  1780. tags = ["team:core"],
  1781. deps = [
  1782. ":gcs_server_lib",
  1783. ":gcs_server_test_util",
  1784. ":gcs_test_util_lib",
  1785. ":ray_mock",
  1786. "@com_google_googletest//:gtest_main",
  1787. ],
  1788. )
  1789. ray_cc_library(
  1790. name = "gcs_client_lib",
  1791. srcs = [
  1792. "src/ray/gcs/gcs_client/accessor.cc",
  1793. "src/ray/gcs/gcs_client/gcs_client.cc",
  1794. ],
  1795. hdrs = [
  1796. "src/ray/gcs/gcs_client/accessor.h",
  1797. "src/ray/gcs/gcs_client/gcs_client.h",
  1798. ],
  1799. deps = [
  1800. ":gcs",
  1801. ":gcs_pub_sub_lib",
  1802. ":gcs_service_rpc",
  1803. ":pubsub_lib",
  1804. ":ray_common",
  1805. ":redis_store_client",
  1806. "//src/ray/protobuf:usage_cc_proto",
  1807. ],
  1808. )
  1809. ray_cc_library(
  1810. name = "global_state_accessor_lib",
  1811. srcs = glob(
  1812. [
  1813. "src/ray/gcs/gcs_client/global_state_accessor.cc",
  1814. ],
  1815. ),
  1816. hdrs = glob(
  1817. [
  1818. "src/ray/gcs/gcs_client/global_state_accessor.h",
  1819. ],
  1820. ),
  1821. deps = [
  1822. ":gcs_client_lib",
  1823. ],
  1824. )
  1825. ray_cc_test(
  1826. name = "accessor_test",
  1827. size = "small",
  1828. srcs = [
  1829. "src/ray/gcs/gcs_client/test/accessor_test.cc",
  1830. ],
  1831. tags = ["team:core"],
  1832. deps = [
  1833. ":gcs_client_lib",
  1834. ":gcs_test_util_lib",
  1835. "@com_google_googletest//:gtest_main",
  1836. ],
  1837. )
  1838. ray_cc_test(
  1839. name = "global_state_accessor_test",
  1840. size = "small",
  1841. srcs = [
  1842. "src/ray/gcs/gcs_client/test/global_state_accessor_test.cc",
  1843. ],
  1844. args = [
  1845. "$(location redis-server)",
  1846. "$(location redis-cli)",
  1847. ],
  1848. data = [
  1849. "//:redis-cli",
  1850. "//:redis-server",
  1851. ],
  1852. tags = ["team:core"],
  1853. deps = [
  1854. ":gcs_client_lib",
  1855. ":gcs_server_lib",
  1856. ":gcs_test_util_lib",
  1857. ":global_state_accessor_lib",
  1858. "@com_google_googletest//:gtest_main",
  1859. ],
  1860. )
  1861. ray_cc_test(
  1862. name = "gcs_client_test",
  1863. size = "medium",
  1864. srcs = [
  1865. "src/ray/gcs/gcs_client/test/gcs_client_test.cc",
  1866. ],
  1867. args = [
  1868. "$(location redis-server)",
  1869. "$(location redis-cli)",
  1870. ],
  1871. data = [
  1872. "//:redis-cli",
  1873. "//:redis-server",
  1874. ],
  1875. tags = [
  1876. "no_tsan",
  1877. "team:core",
  1878. ],
  1879. deps = [
  1880. ":gcs_client_lib",
  1881. ":gcs_server_lib",
  1882. ":gcs_test_util_lib",
  1883. "@com_google_googletest//:gtest_main",
  1884. ],
  1885. )
  1886. ray_cc_test(
  1887. name = "gcs_client_reconnection_test",
  1888. srcs = [
  1889. "src/ray/gcs/gcs_client/test/gcs_client_reconnection_test.cc",
  1890. ],
  1891. args = [
  1892. "$(location redis-server)",
  1893. "$(location redis-cli)",
  1894. ],
  1895. data = [
  1896. "//:redis-cli",
  1897. "//:redis-server",
  1898. ],
  1899. tags = [
  1900. "no_windows",
  1901. "team:core",
  1902. ],
  1903. deps = [
  1904. ":gcs_client_lib",
  1905. ":gcs_server_lib",
  1906. ":gcs_test_util_lib",
  1907. "@com_google_googletest//:gtest_main",
  1908. ],
  1909. )
  1910. ray_cc_library(
  1911. name = "object_manager",
  1912. srcs = glob([
  1913. "src/ray/object_manager/*.cc",
  1914. "src/ray/object_manager/notification/*.cc",
  1915. ]),
  1916. hdrs = glob([
  1917. "src/ray/object_manager/*.h",
  1918. "src/ray/object_manager/notification/*.h",
  1919. ]),
  1920. deps = [
  1921. ":core_worker_lib",
  1922. ":gcs",
  1923. ":object_manager_rpc",
  1924. ":plasma_store_server_lib",
  1925. ":ray_common",
  1926. "//src/ray/util",
  1927. "@boost//:asio",
  1928. ],
  1929. )
  1930. ray_cc_library(
  1931. name = "platform_shims",
  1932. srcs = [] + select({
  1933. "@platforms//os:windows": glob([
  1934. "src/shims/windows/**/*.c",
  1935. "src/shims/windows/**/*.cc",
  1936. "src/shims/windows/**/*.h",
  1937. ]),
  1938. "//conditions:default": [],
  1939. }),
  1940. hdrs = [] + select({
  1941. "@platforms//os:windows": glob([
  1942. "src/shims/windows/**/*.h",
  1943. ]),
  1944. "//conditions:default": [],
  1945. }),
  1946. strip_include_prefix = select({
  1947. "@platforms//os:windows": "src/shims/windows",
  1948. "//conditions:default": "",
  1949. }),
  1950. )
  1951. filegroup(
  1952. name = "extra_actions_base_proto",
  1953. srcs = [
  1954. "thirdparty/protobuf/extra_actions_base.proto",
  1955. ],
  1956. )
  1957. proto_library(
  1958. name = "extra_actions_base_proto_lib",
  1959. srcs = ["thirdparty/protobuf/extra_actions_base.proto"],
  1960. )
  1961. cc_proto_library(
  1962. name = "extra_actions_cc_proto_lib",
  1963. deps = [":extra_actions_base_proto_lib"],
  1964. )
  1965. filegroup(
  1966. name = "iwyu_sh",
  1967. srcs = ["ci/run/iwyu.sh"],
  1968. )
  1969. action_listener(
  1970. name = "iwyu_cpp",
  1971. extra_actions = [":iwyu_action"],
  1972. mnemonics = ["CppCompile"],
  1973. )
  1974. extra_action(
  1975. name = "iwyu_action",
  1976. cmd = "$(location :iwyu_sh) postbuild $(location @com_google_protobuf//:protoc) $(location :extra_actions_base_proto) --extra_action_file=$(EXTRA_ACTION_FILE) > $(output $(ACTION_ID).iwyu.txt)",
  1977. out_templates = [
  1978. "$(ACTION_ID).iwyu.txt",
  1979. ],
  1980. tools = [
  1981. ":extra_actions_base_proto",
  1982. ":iwyu_sh",
  1983. "@com_google_protobuf//:protoc",
  1984. ],
  1985. )
  1986. ray_cc_library(
  1987. name = "sha256",
  1988. srcs = [
  1989. "src/ray/thirdparty/sha256.c",
  1990. ],
  1991. hdrs = [
  1992. "src/ray/thirdparty/sha256.h",
  1993. ],
  1994. )
  1995. ray_cc_library(
  1996. name = "aligned_alloc",
  1997. srcs = [
  1998. "src/ray/thirdparty/aligned_alloc.c",
  1999. ],
  2000. hdrs = [
  2001. "src/ray/thirdparty/aligned_alloc.h",
  2002. ],
  2003. )
  2004. alias(
  2005. name = "hiredis",
  2006. actual = "@com_github_redis_hiredis//:hiredis",
  2007. )
  2008. ray_cc_library(
  2009. name = "redis_client",
  2010. srcs = [
  2011. "src/ray/gcs/asio.cc",
  2012. "src/ray/gcs/redis_async_context.cc",
  2013. "src/ray/gcs/redis_client.cc",
  2014. "src/ray/gcs/redis_context.cc",
  2015. ],
  2016. hdrs = [
  2017. "src/ray/gcs/asio.h",
  2018. "src/ray/gcs/redis_async_context.h",
  2019. "src/ray/gcs/redis_client.h",
  2020. "src/ray/gcs/redis_context.h",
  2021. ],
  2022. deps = [
  2023. ":hiredis",
  2024. ":ray_common",
  2025. ":stats_lib",
  2026. "//src/ray/util",
  2027. "@boost//:asio",
  2028. ],
  2029. )
  2030. ray_cc_library(
  2031. name = "redis_store_client",
  2032. srcs = [
  2033. "src/ray/gcs/store_client/redis_store_client.cc",
  2034. ],
  2035. hdrs = [
  2036. "src/ray/gcs/callback.h",
  2037. "src/ray/gcs/store_client/redis_store_client.h",
  2038. "src/ray/gcs/store_client/store_client.h",
  2039. ],
  2040. deps = [
  2041. "redis_client",
  2042. "@com_google_absl//absl/strings:str_format",
  2043. "@com_google_absl//absl/synchronization",
  2044. ],
  2045. )
  2046. ray_cc_library(
  2047. name = "gcs_in_memory_store_client",
  2048. srcs = [
  2049. "src/ray/gcs/store_client/in_memory_store_client.cc",
  2050. ],
  2051. hdrs = [
  2052. "src/ray/gcs/callback.h",
  2053. "src/ray/gcs/store_client/in_memory_store_client.h",
  2054. "src/ray/gcs/store_client/store_client.h",
  2055. ],
  2056. deps = [
  2057. ":ray_common",
  2058. "//src/ray/util",
  2059. ],
  2060. )
  2061. ray_cc_library(
  2062. name = "observable_store_client",
  2063. srcs = [
  2064. "src/ray/gcs/store_client/observable_store_client.cc",
  2065. ],
  2066. hdrs = [
  2067. "src/ray/gcs/callback.h",
  2068. "src/ray/gcs/store_client/observable_store_client.h",
  2069. "src/ray/gcs/store_client/store_client.h",
  2070. ],
  2071. deps = [
  2072. ":ray_common",
  2073. "//src/ray/util",
  2074. ],
  2075. )
  2076. ray_cc_library(
  2077. name = "store_client_test_lib",
  2078. hdrs = [
  2079. "src/ray/gcs/store_client/test/store_client_test_base.h",
  2080. ],
  2081. deps = [
  2082. "redis_store_client",
  2083. ],
  2084. )
  2085. ray_cc_test(
  2086. name = "redis_store_client_test",
  2087. size = "small",
  2088. srcs = ["src/ray/gcs/store_client/test/redis_store_client_test.cc"],
  2089. args = [
  2090. "$(location redis-server)",
  2091. "$(location redis-cli)",
  2092. ],
  2093. data = [
  2094. "//:redis-cli",
  2095. "//:redis-server",
  2096. ],
  2097. tags = ["team:core"],
  2098. deps = [
  2099. ":redis_store_client",
  2100. ":store_client_test_lib",
  2101. "@boost//:optional",
  2102. "@com_google_googletest//:gtest_main",
  2103. ],
  2104. )
  2105. ray_cc_test(
  2106. name = "chaos_redis_store_client_test",
  2107. size = "small",
  2108. srcs = ["src/ray/gcs/store_client/test/redis_store_client_test.cc"],
  2109. args = [
  2110. "$(location redis-server)",
  2111. "$(location redis-cli)",
  2112. ],
  2113. data = [
  2114. "//:redis-cli",
  2115. "//:redis-server",
  2116. ],
  2117. env = {"REDIS_CHAOS": "1"},
  2118. tags = [
  2119. "no_windows",
  2120. "team:core",
  2121. ],
  2122. target_compatible_with = [
  2123. "@platforms//os:linux",
  2124. ],
  2125. deps = [
  2126. ":redis_store_client",
  2127. ":store_client_test_lib",
  2128. "@boost//:optional",
  2129. "@com_google_googletest//:gtest_main",
  2130. ],
  2131. )
  2132. ray_cc_test(
  2133. name = "in_memory_store_client_test",
  2134. size = "small",
  2135. srcs = ["src/ray/gcs/store_client/test/in_memory_store_client_test.cc"],
  2136. tags = ["team:core"],
  2137. deps = [
  2138. ":gcs_in_memory_store_client",
  2139. ":store_client_test_lib",
  2140. "@com_google_googletest//:gtest_main",
  2141. ],
  2142. )
  2143. ray_cc_test(
  2144. name = "observable_store_client_test",
  2145. size = "small",
  2146. srcs = ["src/ray/gcs/store_client/test/in_memory_store_client_test.cc"],
  2147. tags = ["team:core"],
  2148. deps = [
  2149. ":gcs_in_memory_store_client",
  2150. ":observable_store_client",
  2151. ":store_client_test_lib",
  2152. "@com_google_googletest//:gtest_main",
  2153. ],
  2154. )
  2155. ray_cc_library(
  2156. name = "gcs",
  2157. srcs = glob(
  2158. [
  2159. "src/ray/gcs/*.cc",
  2160. ],
  2161. exclude = [
  2162. "src/ray/gcs/*_test.cc",
  2163. ],
  2164. ),
  2165. hdrs = glob([
  2166. "src/ray/gcs/*.h",
  2167. ]),
  2168. deps = [
  2169. ":hiredis",
  2170. ":node_manager_fbs",
  2171. ":node_manager_rpc",
  2172. ":ray_common",
  2173. ":stats_lib",
  2174. "//src/ray/protobuf:agent_manager_cc_proto",
  2175. "//src/ray/protobuf:gcs_cc_proto",
  2176. "//src/ray/protobuf:gcs_service_cc_proto",
  2177. "//src/ray/util",
  2178. "@boost//:asio",
  2179. ],
  2180. )
  2181. ray_cc_test(
  2182. name = "callback_reply_test",
  2183. size = "small",
  2184. srcs = ["src/ray/gcs/test/callback_reply_test.cc"],
  2185. tags = ["team:core"],
  2186. deps = [
  2187. ":gcs",
  2188. "@com_google_googletest//:gtest_main",
  2189. ],
  2190. )
  2191. ray_cc_test(
  2192. name = "asio_test",
  2193. size = "small",
  2194. srcs = ["src/ray/gcs/test/asio_test.cc"],
  2195. args = [
  2196. "$(location redis-server)",
  2197. "$(location redis-cli)",
  2198. ],
  2199. data = [
  2200. "//:redis-cli",
  2201. "//:redis-server",
  2202. ],
  2203. tags = ["team:core"],
  2204. deps = [
  2205. ":gcs",
  2206. "//src/ray/util",
  2207. "@com_google_googletest//:gtest_main",
  2208. ],
  2209. )
  2210. ray_cc_test(
  2211. name = "gcs_export_event_test",
  2212. size = "small",
  2213. srcs = glob([
  2214. "src/ray/gcs/gcs_server/test/export_api/*.cc",
  2215. ]),
  2216. tags = [
  2217. "no_windows",
  2218. "team:core"
  2219. ],
  2220. deps = [
  2221. ":gcs_server_lib",
  2222. ":gcs_server_test_util",
  2223. ":gcs_test_util_lib",
  2224. ":ray_mock",
  2225. "@com_google_googletest//:gtest_main",
  2226. ],
  2227. )
  2228. flatbuffer_cc_library(
  2229. name = "node_manager_fbs",
  2230. srcs = ["src/ray/raylet/format/node_manager.fbs"],
  2231. flatc_args = FLATC_ARGS,
  2232. out_prefix = "ray/raylet/format/",
  2233. )
  2234. ray_cc_library(
  2235. name = "python_callbacks",
  2236. hdrs = [
  2237. "src/ray/gcs/gcs_client/python_callbacks.h",
  2238. ],
  2239. )
  2240. pyx_library(
  2241. name = "_raylet",
  2242. srcs = glob([
  2243. "python/ray/__init__.py",
  2244. "python/ray/_raylet.pxd",
  2245. "python/ray/_raylet.pyx",
  2246. "python/ray/includes/*.pxd",
  2247. "python/ray/includes/*.pxi",
  2248. ]),
  2249. # Export ray ABI symbols, which can then be used by _streaming.so.
  2250. # We need to dlopen this lib with RTLD_GLOBAL to use ABI in this
  2251. # shared lib, see python/ray/__init__.py.
  2252. cc_kwargs = dict(
  2253. srcs = PYX_SRCS,
  2254. copts = COPTS + PYX_COPTS,
  2255. # see https://github.com/tensorflow/tensorflow/blob/r2.1/tensorflow/lite/BUILD#L444
  2256. linkopts = select({
  2257. "@platforms//os:osx": [
  2258. "-Wl,-exported_symbols_list,$(location //:src/ray/ray_exported_symbols.lds)",
  2259. ],
  2260. "@platforms//os:windows": [],
  2261. "//conditions:default": [
  2262. "-Wl,--version-script,$(location //:src/ray/ray_version_script.lds)",
  2263. ],
  2264. }),
  2265. linkstatic = 1,
  2266. ),
  2267. deps = [
  2268. ":python_callbacks",
  2269. "//:core_worker_lib",
  2270. "//:exported_internal",
  2271. "//:gcs_server_lib",
  2272. "//:global_state_accessor_lib",
  2273. "//:raylet_lib",
  2274. "//:redis_client",
  2275. "//:src/ray/ray_exported_symbols.lds",
  2276. "//:src/ray/ray_version_script.lds",
  2277. "//:stats_lib",
  2278. "//src/ray/protobuf:serialization_cc_proto",
  2279. "//src/ray/util",
  2280. ],
  2281. )
  2282. ray_cc_binary(
  2283. name = "libcore_worker_library_java.so",
  2284. srcs = glob([
  2285. "src/ray/core_worker/lib/java/*.h",
  2286. "src/ray/core_worker/lib/java/*.cc",
  2287. ]),
  2288. # Export ray ABI symbols, which can then be used by libstreaming_java.so. see `//:_raylet`
  2289. linkopts = select({
  2290. "@platforms//os:osx": [
  2291. "-Wl,-exported_symbols_list,$(location //:src/ray/ray_exported_symbols.lds)",
  2292. ],
  2293. "@platforms//os:windows": [],
  2294. "//conditions:default": [
  2295. "-Wl,--version-script,$(location //:src/ray/ray_version_script.lds)",
  2296. ],
  2297. }),
  2298. linkshared = 1,
  2299. linkstatic = 1,
  2300. visibility = ["//java:__subpackages__"],
  2301. deps = [
  2302. "//:core_worker_lib",
  2303. "//:exported_internal",
  2304. "//:global_state_accessor_lib",
  2305. "//:src/ray/ray_exported_symbols.lds",
  2306. "//:src/ray/ray_version_script.lds",
  2307. "//:stats_lib",
  2308. "@bazel_tools//tools/jdk:jni",
  2309. ],
  2310. )
  2311. filegroup(
  2312. name = "python_sources",
  2313. srcs = glob([
  2314. "python/ray/*.py",
  2315. "python/ray/autoscaler/*.py",
  2316. "python/ray/autoscaler/_private/*.py",
  2317. "python/ray/autoscaler/_private/_azure/*.json",
  2318. "python/ray/autoscaler/aws/defaults.yaml",
  2319. "python/ray/autoscaler/azure/defaults.yaml",
  2320. "python/ray/autoscaler/gcp/defaults.yaml",
  2321. "python/ray/autoscaler/local/defaults.yaml",
  2322. "python/ray/autoscaler/vsphere/defaults.yaml",
  2323. "python/ray/cloudpickle/*.py",
  2324. "python/ray/core/__init__.py",
  2325. "python/ray/core/generated/__init__.py",
  2326. "python/ray/core/generated/ray/__init__.py",
  2327. "python/ray/core/generated/ray/protocol/__init__.py",
  2328. "python/ray/dashboard/**/*.py",
  2329. "python/ray/experimental/*.py",
  2330. "python/ray/util/*.py",
  2331. "python/ray/internal/*.py",
  2332. "python/ray/workers/default_worker.py",
  2333. ]),
  2334. )
  2335. alias(
  2336. name = "redis-server",
  2337. actual = select({
  2338. "@platforms//os:windows": "@com_github_tporadowski_redis_bin//:redis-server.exe",
  2339. "//conditions:default": "@com_github_antirez_redis//:redis-server",
  2340. }),
  2341. )
  2342. alias(
  2343. name = "redis-cli",
  2344. actual = select({
  2345. "@platforms//os:windows": "@com_github_tporadowski_redis_bin//:redis-cli.exe",
  2346. "//conditions:default": "@com_github_antirez_redis//:redis-cli",
  2347. }),
  2348. )
  2349. filegroup(
  2350. name = "all_py_proto",
  2351. srcs = [
  2352. "//src/ray/protobuf:agent_manager_py_proto",
  2353. "//src/ray/protobuf:autoscaler_py_proto",
  2354. "//src/ray/protobuf:common_py_proto",
  2355. "//src/ray/protobuf:core_worker_py_proto",
  2356. "//src/ray/protobuf:event_py_proto",
  2357. "//src/ray/protobuf:gcs_py_proto",
  2358. "//src/ray/protobuf:gcs_service_py_proto",
  2359. "//src/ray/protobuf:instance_manager_py_proto",
  2360. "//src/ray/protobuf:job_agent_py_proto",
  2361. "//src/ray/protobuf:node_manager_py_proto",
  2362. "//src/ray/protobuf:ray_client_py_proto",
  2363. "//src/ray/protobuf:reporter_py_proto",
  2364. "//src/ray/protobuf:runtime_env_agent_py_proto",
  2365. "//src/ray/protobuf:runtime_env_common_py_proto",
  2366. "//src/ray/protobuf:usage_py_proto",
  2367. "//src/ray/protobuf:export_event_py_proto",
  2368. ],
  2369. )
  2370. filegroup(
  2371. name = "serve_py_proto",
  2372. srcs = [
  2373. "//src/ray/protobuf:serve_py_proto",
  2374. ],
  2375. )
  2376. # This is a dummy test dependency that causes the python tests to be
  2377. # re-run if any of these files changes.
  2378. py_library(
  2379. name = "ray_lib",
  2380. srcs = glob(
  2381. ["python/ray/**/*.py"],
  2382. exclude = ["python/ray/tests/*.py"],
  2383. ),
  2384. visibility = ["__subpackages__"],
  2385. )
  2386. copy_to_workspace(
  2387. name = "cp_raylet_so",
  2388. srcs = ["python/ray/_raylet.so"],
  2389. dstdir = "python/ray",
  2390. )
  2391. copy_to_workspace(
  2392. name = "cp_all_py_proto",
  2393. srcs = [":all_py_proto"],
  2394. dstdir = "python/ray/core/generated",
  2395. )
  2396. copy_to_workspace(
  2397. name = "cp_serve_py_proto",
  2398. srcs = [":serve_py_proto"],
  2399. dstdir = "python/ray/serve/generated",
  2400. )
  2401. copy_to_workspace(
  2402. name = "cp_redis",
  2403. srcs = [
  2404. ":redis-cli",
  2405. ":redis-server",
  2406. ],
  2407. dstdir = "python/ray/core/src/ray/thirdparty/redis/src",
  2408. )
  2409. copy_to_workspace(
  2410. name = "cp_raylet",
  2411. srcs = [":raylet"],
  2412. dstdir = "python/ray/core/src/ray/raylet",
  2413. )
  2414. copy_to_workspace(
  2415. name = "cp_gcs_server",
  2416. srcs = [":gcs_server"],
  2417. dstdir = "python/ray/core/src/ray/gcs",
  2418. )
  2419. copy_to_workspace(
  2420. name = "cp_jemalloc",
  2421. srcs = ["@jemalloc//:shared"],
  2422. dstdir = "python/ray/core/",
  2423. )
  2424. genrule(
  2425. name = "install_py_proto",
  2426. srcs = [
  2427. ":cp_all_py_proto",
  2428. ":cp_serve_py_proto",
  2429. ],
  2430. outs = ["install_py_proto.out"],
  2431. cmd = """
  2432. # NOTE(hchen): Protobuf doesn't allow specifying Python package name. So we use this `sed`
  2433. # command to change the import path in the generated file.
  2434. # shellcheck disable=SC2006
  2435. files=(
  2436. `ls python/ray/core/generated/*_pb2*.py` \
  2437. `ls python/ray/serve/generated/*_pb2*.py` \
  2438. )
  2439. sed -i -E 's/from src.ray.protobuf/from ./' "$${files[@]}"
  2440. # Help the generated serve files to have the correct module
  2441. serve_files=(`ls python/ray/serve/generated/*_pb2*.py`)
  2442. sed -i -E 's/'"'"'src.ray.protobuf./'"'"'ray.serve.generated./' "$${serve_files[@]}"
  2443. # TODO(sang): Build our own proto instead of creating a new proto for opencensus separately.
  2444. # https://github.com/ray-project/ray/issues/31358
  2445. sed -i -E 's/from opencensus.proto.metrics.v1 import/from . import/' "$${files[@]}"
  2446. sed -i -E 's/from opencensus.proto.resource.v1 import/from . import/' "$${files[@]}"
  2447. # TODO(rickyx): Remove this experimental path rewrite once we move autoscaler proto out
  2448. # of experimental.
  2449. autoscale_files=(`ls python/ray/core/generated/instance_manager_pb2*.py`)
  2450. sed -i -E 's/from ..experimental/from ./' "$${autoscale_files[@]}"
  2451. # Help the generated export api files to have the correct module
  2452. export_api_files=(`ls python/ray/core/generated/export*_pb2*.py`)
  2453. sed -i -E 's/from ..export_api/from ./' "$${export_api_files[@]}"
  2454. echo "$${PWD}" > $@
  2455. """,
  2456. local = 1,
  2457. )
  2458. genrule(
  2459. name = "ray_pkg",
  2460. srcs = [
  2461. ":cp_raylet_so",
  2462. ":python_sources",
  2463. ":install_py_proto",
  2464. ":cp_redis",
  2465. ":cp_raylet",
  2466. ":cp_gcs_server",
  2467. ] + select({
  2468. ":jemalloc": [
  2469. ":cp_jemalloc",
  2470. ],
  2471. "//conditions:default": [],
  2472. }),
  2473. outs = ["ray_pkg.out"],
  2474. cmd = """
  2475. if [ "$${OSTYPE-}" = "msys" ]; then
  2476. ln -P -f -- python/ray/_raylet.so python/ray/_raylet.pyd
  2477. fi
  2478. echo "$${PWD}" > $@
  2479. """,
  2480. local = 1,
  2481. )