| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| [workspace] |
| exclude = ["dev/msrvcheck", "python"] |
| members = [ |
| "ballista-cli", |
| "ballista/api-types", |
| "ballista/client", |
| "ballista/core", |
| "ballista/executor", |
| "ballista/history", |
| "ballista/scheduler", |
| "benchmarks", |
| "chaos-testing", |
| "examples", |
| ] |
| resolver = "3" |
| |
| [workspace.package] |
| edition = "2024" |
| # we should try to follow datafusion version |
| rust-version = "1.94.0" |
| |
| [workspace.dependencies] |
| arrow = { version = "59.2.0", features = ["ipc_compression"] } |
| arrow-flight = { version = "59.2.0", features = ["flight-sql-experimental"] } |
| ballista-api-types = { path = "ballista/api-types", version = "54.0.0" } |
| clap = { version = "4.5", features = ["derive", "cargo"] } |
| |
| # DataFusion crates are pinned to the 55.0.0-rc3 tag via `[patch.crates-io]` |
| # below. Workspace deps reference the crates.io version so the patch table is |
| # the single place to bump when advancing to a newer DataFusion release. |
| datafusion = { version = "55" } |
| datafusion-cli = { version = "55" } |
| datafusion-functions-aggregate-common = { version = "55" } |
| datafusion-proto = { version = "55" } |
| datafusion-proto-common = { version = "55" } |
| datafusion-spark = { version = "55" } |
| datafusion-substrait = { version = "55" } |
| |
| ctor = { version = "1.0" } |
| insta = "1.47" |
| itertools = "0.15" |
| mimalloc = { version = "0.1" } |
| object_store = "0.13.2" |
| ordered-float = "5" |
| prost = "0.14" |
| prost-types = "0.14" |
| rstest = { version = "0.26" } |
| tonic = { version = "0.14" } |
| tonic-build = { version = "0.14", default-features = false, features = [ |
| "transport", |
| ] } |
| tonic-prost = { version = "0.14" } |
| tonic-prost-build = { version = "0.14" } |
| tracing = "0.1" |
| tracing-appender = "0.2.2" |
| tracing-subscriber = { version = "0.3", features = ["env-filter"] } |
| |
| async-trait = { version = "0.1" } |
| dashmap = { version = "6.2" } |
| env_logger = { version = "0.11" } |
| futures = { version = "0.3" } |
| log = { version = "0.4" } |
| parking_lot = { version = "0.12" } |
| rand = { version = "0.10" } |
| serde = { version = "1.0" } |
| tempfile = { version = "3.27" } |
| tokio = { version = "1" } |
| tokio-stream = { version = "0.1" } |
| url = { version = "2.5" } |
| url-escape = { version = "0.1.2" } |
| uuid = { version = "1.23", features = ["v4", "v7"] } |
| |
| # cargo build --profile release-lto |
| [profile.release-lto] |
| codegen-units = 1 |
| inherits = "release" |
| lto = true |
| |
| # the release profile takes a long time to build so we can use this profile during development to save time |
| # cargo build --profile release-nonlto |
| [profile.release-nonlto] |
| codegen-units = 16 |
| debug = false |
| debug-assertions = false |
| incremental = false |
| inherits = "release" |
| lto = false |
| opt-level = 3 |
| overflow-checks = false |
| panic = 'unwind' |
| rpath = false |
| |
| [profile.ci] |
| inherits = "dev" |
| incremental = false |
| debug = false |
| debug-assertions = false |
| strip = "debuginfo" |
| |
| # ci turns off debug info, etc. for dependencies to allow for smaller binaries making caching more effective |
| [profile.ci.package."*"] |
| debug = false |
| debug-assertions = false |
| strip = "debuginfo" |
| incremental = false |
| |
| # Build profile for the TPC-H integration CI job. That job only checks that the |
| # distributed suite runs correctly (no timing gate), so it trades some runtime |
| # speed for much faster compilation: opt-level 1 keeps queries fast enough while |
| # compiling dependencies far quicker than the opt-level 3 release profiles. Do |
| # not use this for performance numbers — use release-nonlto / release-lto. |
| [profile.tpch-ci] |
| inherits = "release" |
| opt-level = 1 |
| codegen-units = 256 |
| lto = false |
| debug = false |
| debug-assertions = false |
| incremental = false |
| |
| # Redirect the crates.io datafusion release to the pinned git tag. Bump the |
| # tag here to advance DataFusion; the workspace-dep versions above stay put. |
| [patch.crates-io] |
| datafusion = { git = "https://github.com/apache/datafusion.git", tag = "55.0.0-rc3" } |
| datafusion-cli = { git = "https://github.com/apache/datafusion.git", tag = "55.0.0-rc3" } |
| datafusion-functions-aggregate-common = { git = "https://github.com/apache/datafusion.git", tag = "55.0.0-rc3" } |
| datafusion-proto = { git = "https://github.com/apache/datafusion.git", tag = "55.0.0-rc3" } |
| datafusion-proto-common = { git = "https://github.com/apache/datafusion.git", tag = "55.0.0-rc3" } |
| datafusion-spark = { git = "https://github.com/apache/datafusion.git", tag = "55.0.0-rc3" } |
| datafusion-substrait = { git = "https://github.com/apache/datafusion.git", tag = "55.0.0-rc3" } |