BUILD.bazel 63 KB

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