Skip to content

Commit 35fe7ea

Browse files
authored
Merge branch 'main' into orch-2
2 parents 1f14c98 + ef4d51a commit 35fe7ea

File tree

184 files changed

+10127
-7812
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

184 files changed

+10127
-7812
lines changed

.bazeliskrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
USE_BAZEL_VERSION=6.4.0

.github/workflows/test_frontend.yaml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ on:
55
branches:
66
- main
77
paths:
8-
- 'frontend/**'
9-
- '.github/workflows/test_frontend.yaml'
8+
- "frontend/**"
9+
- ".github/workflows/test_frontend.yaml"
1010
pull_request:
1111
branches:
1212
- main
1313
paths:
14-
- 'frontend/**'
15-
- '.github/workflows/test_frontend.yaml'
14+
- "frontend/**"
15+
- ".github/workflows/test_frontend.yaml"
1616

1717
concurrency:
1818
group: ${{ github.workflow }}-${{ github.ref }}
@@ -32,6 +32,14 @@ jobs:
3232
uses: actions/setup-node@v4
3333
with:
3434
node-version: 20.x
35+
cache: "npm"
36+
cache-dependency-path: "./frontend/package-lock.json"
37+
38+
- name: Cache apt packages
39+
uses: awalsh128/[email protected]
40+
with:
41+
packages: thrift-compiler
42+
version: 1.0
3543

3644
- name: Install dependencies
3745
run: npm ci
@@ -57,7 +65,7 @@ jobs:
5765
# run: npm run test:integration
5866
# env:
5967
# CI: true
60-
68+
6169
# TODO: Disabled until `test:integration` is ran
6270
# - name: Upload playwright report
6371
# uses: actions/upload-artifact@v4
@@ -68,4 +76,4 @@ jobs:
6876
# retention-days: 30
6977

7078
- name: Build project
71-
run: npm run build
79+
run: npm run build

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,7 @@ releases
8787

8888
# Metals-generated sbt files
8989
/project/**/metals.sbt
90-
/project/**/metals.sbt.lock
90+
/project/**/metals.sbt.lock
91+
92+
# Bazel temporary output
93+
/bazel-*

.tool-versions

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
java corretto-17.0.13.11.1
1+
java corretto-11.0.25.9.1
22
scala 2.12.20
33
asdf-plugin-manager 1.4.0
4-
sbt 1.10.5
4+
sbt 1.8.2
55
python 3.7.17

Dockerfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,13 @@ RUN curl https://archive.apache.org/dist/spark/spark-${SPARK_VERSION}/spark-${SP
5757
&& tar xvzf spark.tgz --directory /opt/spark --strip-components 1 \
5858
&& rm -rf spark.tgz
5959

60+
# Add some additional custom jars for other connectors like BigTable etc
61+
RUN mkdir -p /opt/custom-jars && \
62+
curl -L "https://repo1.maven.org/maven2/com/google/cloud/spark/bigtable/spark-bigtable_2.12/0.2.1/spark-bigtable_2.12-0.2.1.jar" \
63+
-o /opt/custom-jars/spark-bigtable_2.12-0.2.1.jar && \
64+
curl -L "https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j-impl/2.20.0/log4j-slf4j-impl-2.20.0.jar" \
65+
-o /opt/custom-jars/log4j-slf4j-impl-2.20.0.jar
66+
6067
# Install python deps
6168
COPY quickstart/requirements.txt .
6269
RUN pip3 install -r requirements.txt

WORKSPACE

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
workspace(name = "chronon")
2+
3+
# Scala version used across the project
4+
SCALA_VERSION = "2.12.18"
5+
6+
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
7+
8+
# Contains useful bazel utility functions and rules
9+
http_archive(
10+
name = "bazel_skylib",
11+
sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f",
12+
urls = [
13+
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
14+
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
15+
],
16+
)
17+
18+
# For Java support
19+
http_archive(
20+
name = "rules_java",
21+
sha256 = "e81e9deaae0d9d99ef3dd5f6c1b32338447fe16d5564155531ea4eb7ef38854b",
22+
urls = [
23+
"https://github.com/bazelbuild/rules_java/releases/download/7.0.6/rules_java-7.0.6.tar.gz",
24+
],
25+
)
26+
load("@rules_java//java:repositories.bzl", "rules_java_dependencies", "rules_java_toolchains")
27+
rules_java_dependencies()
28+
rules_java_toolchains()
29+
load("@rules_java//java:repositories.bzl", "remote_jdk17_repos")
30+
remote_jdk17_repos()
31+
32+
# For JVM support
33+
http_archive(
34+
name = "rules_jvm_external",
35+
strip_prefix = "rules_jvm_external-6.6",
36+
sha256 = "3afe5195069bd379373528899c03a3072f568d33bd96fe037bd43b1f590535e7",
37+
url = "https://github.com/bazel-contrib/rules_jvm_external/releases/download/6.6/rules_jvm_external-6.6.tar.gz"
38+
)
39+
load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")
40+
rules_jvm_external_deps()
41+
load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")
42+
rules_jvm_external_setup()
43+
44+
# For Scala support
45+
http_archive(
46+
name = "io_bazel_rules_scala",
47+
sha256 = "e734eef95cf26c0171566bdc24d83bd82bdaf8ca7873bec6ce9b0d524bdaf05d",
48+
strip_prefix = "rules_scala-6.6.0",
49+
url = "https://github.com/bazelbuild/rules_scala/releases/download/v6.6.0/rules_scala-v6.6.0.tar.gz",
50+
)
51+
# Initialize Scala with specific version support
52+
load("@io_bazel_rules_scala//:scala_config.bzl", "scala_config")
53+
scala_config(scala_version = SCALA_VERSION)
54+
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_repositories")
55+
scala_repositories()
56+
load("@io_bazel_rules_scala//scala:toolchains.bzl", "scala_register_toolchains")
57+
scala_register_toolchains()
58+
load("@io_bazel_rules_scala//testing:scalatest.bzl", "scalatest_repositories", "scalatest_toolchain")
59+
scalatest_repositories()
60+
scalatest_toolchain()
61+
62+
# For Protobuf support
63+
http_archive(
64+
name = "rules_proto",
65+
sha256 = "dc3fb206a2cb3441b485eb1e423165b231235a1ea9b031b4433cf7bc1fa460dd",
66+
strip_prefix = "rules_proto-5.3.0-21.7",
67+
urls = [
68+
"https://github.com/bazelbuild/rules_proto/archive/refs/tags/5.3.0-21.7.tar.gz",
69+
],
70+
)
71+
load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
72+
rules_proto_dependencies()
73+
rules_proto_toolchains()
74+
75+
# To load all dependencies used across our modules
76+
load("//tools/build_rules/dependencies:load_dependencies.bzl", "load_all_dependencies")
77+
load_all_dependencies()

aggregator/BUILD.bazel

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_library", "scala_test_suite")
2+
3+
scala_library(
4+
name = "lib",
5+
srcs = glob(["src/main/**/*.scala"]),
6+
visibility = ["//visibility:public"],
7+
deps = [
8+
"//api:lib",
9+
"//api:thrift",
10+
maven_artifact("com.fasterxml.jackson.core:jackson-core"),
11+
maven_artifact("com.fasterxml.jackson.core:jackson-databind"),
12+
maven_artifact("com.google.code.gson:gson"),
13+
maven_artifact("org.apache.datasketches:datasketches-memory"),
14+
maven_artifact("org.apache.datasketches:datasketches-java"),
15+
maven_artifact("org.apache.commons:commons-lang3"),
16+
maven_artifact("org.slf4j:slf4j-api"),
17+
maven_artifact("org.slf4j:slf4j-log4j12"),
18+
scala_artifact("org.scala-lang.modules:scala-collection-compat"),
19+
],
20+
)
21+
22+
scala_library(
23+
name = "test-lib",
24+
srcs = glob(["src/test/**/*.scala"]),
25+
visibility = ["//visibility:public"],
26+
deps = [
27+
":lib",
28+
"//api:lib",
29+
"//api:thrift",
30+
maven_artifact("junit:junit"),
31+
maven_artifact("com.novocode:junit-interface"),
32+
maven_artifact("org.slf4j:slf4j-api"),
33+
maven_artifact("org.slf4j:slf4j-log4j12"),
34+
maven_artifact("com.google.code.gson:gson"),
35+
maven_artifact("org.apache.datasketches:datasketches-memory"),
36+
maven_artifact("org.apache.datasketches:datasketches-java"),
37+
maven_artifact("org.apache.commons:commons-lang3"),
38+
maven_artifact("org.apache.commons:commons-math3"),
39+
maven_artifact("org.scala-lang.modules:scala-collection-compat_2.12"),
40+
],
41+
)
42+
43+
scala_test_suite(
44+
name = "test",
45+
srcs = glob(["src/test/**/*.scala"]),
46+
visibility = ["//visibility:public"],
47+
deps = [
48+
":lib",
49+
":test-lib",
50+
"//api:lib",
51+
"//api:thrift",
52+
maven_artifact("junit:junit"),
53+
maven_artifact("com.novocode:junit-interface"),
54+
maven_artifact("org.slf4j:slf4j-api"),
55+
maven_artifact("org.slf4j:slf4j-log4j12"),
56+
maven_artifact("com.google.code.gson:gson"),
57+
maven_artifact("org.apache.datasketches:datasketches-memory"),
58+
maven_artifact("org.apache.datasketches:datasketches-java"),
59+
maven_artifact("org.apache.commons:commons-lang3"),
60+
maven_artifact("org.apache.commons:commons-math3"),
61+
maven_artifact("org.scala-lang.modules:scala-collection-compat_2.12"),
62+
],
63+
)

aggregator/src/main/scala/ai/chronon/aggregator/row/MapColumnAggregator.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ package ai.chronon.aggregator.row
1818

1919
import ai.chronon.aggregator.base.SimpleAggregator
2020
import ai.chronon.api.Row
21+
import ai.chronon.api.ScalaJavaConversions._
2122

2223
import java.util
23-
import scala.util.ScalaJavaConversions.IteratorOps
2424

2525
class MapColumnAggregator[Input, IR, Output](agg: SimpleAggregator[Input, IR, Output],
2626
columnIndices: ColumnIndices,

aggregator/src/main/scala/ai/chronon/aggregator/row/StatsGenerator.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ package ai.chronon.aggregator.row
1818

1919
import ai.chronon.api
2020
import ai.chronon.api.Extensions._
21+
import ai.chronon.api.ScalaJavaConversions._
2122
import org.apache.datasketches.kll.KllFloatsSketch
2223
import org.apache.datasketches.memory.Memory
2324

2425
import java.util
2526
import scala.collection.Seq
26-
import scala.util.ScalaJavaConversions.JMapOps
2727

2828
/**
2929
* Module managing FeatureStats Schema, Aggregations to be used by type and aggregator construction.

aggregator/src/main/scala/ai/chronon/aggregator/windowing/Resolution.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,10 @@ package ai.chronon.aggregator.windowing
1919
import ai.chronon.api.Extensions.WindowOps
2020
import ai.chronon.api.Extensions.WindowUtils
2121
import ai.chronon.api.GroupBy
22+
import ai.chronon.api.ScalaJavaConversions._
2223
import ai.chronon.api.TimeUnit
2324
import ai.chronon.api.Window
2425

25-
import scala.util.ScalaJavaConversions.ListOps
26-
2726
trait Resolution extends Serializable {
2827
// For a given window what is the resolution of the tail
2928
// The tail hops with the window size as represented by the return value

api/BUILD.bazel

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
load("@io_bazel_rules_scala//scala:scala.bzl", "scala_library", "scala_test_suite")
2+
load("//tools/build_rules/thrift:thrift.bzl", "thrift_java_library")
3+
4+
scala_library(
5+
name = "lib",
6+
srcs = glob(["src/main/**/*.scala", "src/main/**/*.java"]),
7+
visibility = ["//visibility:public"],
8+
deps = [
9+
":thrift",
10+
"//tools/build_rules/spark:spark-exec",
11+
maven_artifact("com.fasterxml.jackson.core:jackson-core"),
12+
maven_artifact("com.fasterxml.jackson.core:jackson-databind"),
13+
maven_artifact("org.slf4j:slf4j-api"),
14+
maven_artifact("org.slf4j:slf4j-log4j12"),
15+
maven_artifact("org.apache.commons:commons-lang3"),
16+
maven_artifact("com.google.code.gson:gson"),
17+
scala_artifact("org.scala-lang.modules:scala-collection-compat"),
18+
scala_artifact("org.scala-lang.modules:scala-parser-combinators"),
19+
],
20+
)
21+
22+
scala_test_suite(
23+
name = "test",
24+
srcs = glob(["src/test/**/*.scala"]),
25+
visibility = ["//visibility:public"],
26+
deps = [
27+
":thrift",
28+
":lib",
29+
"//tools/build_rules/spark:spark-exec",
30+
maven_artifact("com.fasterxml.jackson.core:jackson-core"),
31+
maven_artifact("com.fasterxml.jackson.core:jackson-databind"),
32+
maven_artifact("org.slf4j:slf4j-api"),
33+
maven_artifact("org.slf4j:slf4j-log4j12"),
34+
maven_artifact("junit:junit"),
35+
maven_artifact("com.novocode:junit-interface"),
36+
maven_artifact("org.mockito:mockito-core"),
37+
scala_artifact("org.scala-lang.modules:scala-parser-combinators"),
38+
scala_artifact("org.scala-lang.modules:scala-collection-compat"),
39+
],
40+
)
41+
42+
thrift_java_library(
43+
name = "thrift-java",
44+
srcs = glob(["thrift/*.thrift"]),
45+
)
46+
47+
java_library(
48+
name = "thrift",
49+
srcs = [":thrift-java"] + glob(["src/main/java/ai/chronon/api/thrift/**/*.java"]),
50+
visibility = ["//visibility:public"],
51+
deps = [
52+
maven_artifact("javax.annotation:javax.annotation.api"),
53+
maven_artifact("org.slf4j:slf4j-api"),
54+
maven_artifact("org.slf4j:slf4j-log4j12"),
55+
maven_artifact("org.apache.commons:commons-lang3"),
56+
maven_artifact("com.google.code.gson:gson"),
57+
],
58+
)

0 commit comments

Comments
 (0)