mirror of
https://github.com/langchain-ai/datafusion.git
synced 2026-07-01 21:24:06 -04:00
932418b20c
Bumps [strum_macros](https://github.com/Peternator7/strum) from 0.27.2 to 0.28.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Peternator7/strum/blob/master/CHANGELOG.md">strum_macros's changelog</a>.</em></p> <blockquote> <h2>0.28.0</h2> <ul> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/461">#461</a>: Allow any kind of passthrough attributes on <code>EnumDiscriminants</code>.</p> <ul> <li>Previously only list-style attributes (e.g. <code>#[strum_discriminants(derive(...))]</code>) were supported. Now path-only (e.g. <code>#[strum_discriminants(non_exhaustive)]</code>) and name/value (e.g. <code>#[strum_discriminants(doc = "foo")]</code>) attributes are also supported.</li> </ul> </li> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/462">#462</a>: Add missing <code>#[automatically_derived]</code> to generated impls not covered by <a href="https://redirect.github.com/Peternator7/strum/pull/444">#444</a>.</p> </li> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/466">#466</a>: Bump MSRV to 1.71, required to keep up with updated <code>syn</code> and <code>windows-sys</code> dependencies. This is a breaking change if you're on an old version of rust.</p> </li> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/469">#469</a>: Use absolute paths in generated proc macro code to avoid potential name conflicts.</p> </li> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/465">#465</a>: Upgrade <code>phf</code> dependency to v0.13.</p> </li> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/473">#473</a>: Fix <code>cargo fmt</code> / <code>clippy</code> issues and add GitHub Actions CI.</p> </li> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/477">#477</a>: <code>strum::ParseError</code> now implements <code>core::fmt::Display</code> instead <code>std::fmt::Display</code> to make it <code>#[no_std]</code> compatible. Note the <code>Error</code> trait wasn't available in core until <code>1.81</code> so <code>strum::ParseError</code> still only implements that in std.</p> </li> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/476">#476</a>: <strong>Breaking Change</strong> - <code>EnumString</code> now implements <code>From<&str></code> (infallible) instead of <code>TryFrom<&str></code> when the enum has a <code>#[strum(default)]</code> variant. This more accurately reflects that parsing cannot fail in that case. If you need the old <code>TryFrom</code> behavior, you can opt back in using <code>parse_error_ty</code> and <code>parse_error_fn</code>:</p> <pre lang="rust"><code>#[derive(EnumString)] #[strum(parse_error_ty = strum::ParseError, parse_error_fn = make_error)] pub enum Color { Red, #[strum(default)] Other(String), } <p>fn make_error(x: &str) -> strum::ParseError { strum::ParseError::VariantNotFound } </code></pre></p> </li> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/431">#431</a>: Fix bug where <code>EnumString</code> ignored the <code>parse_err_ty</code> attribute when the enum had a <code>#[strum(default)]</code> variant.</p> </li> <li> <p><a href="https://redirect.github.com/Peternator7/strum/pull/474">#474</a>: EnumDiscriminants will now copy <code>default</code> over from the original enum to the Discriminant enum.</p> <pre lang="rust"><code>#[derive(Debug, Default, EnumDiscriminants)] #[strum_discriminants(derive(Default))] // <- Remove this in 0.28. enum MyEnum { #[default] // <- Will be the #[default] on the MyEnumDiscriminant #[strum_discriminants(default)] // <- Remove this in 0.28 Variant0, Variant1 { a: NonDefault }, } </code></pre> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Peternator7/strum/commit/7376771128834d28bb9beba5c39846cba62e71ec"><code>7376771</code></a> Peternator7/0.28 (<a href="https://redirect.github.com/Peternator7/strum/issues/475">#475</a>)</li> <li><a href="https://github.com/Peternator7/strum/commit/26e63cd964a2e364331a5dd977d589bb9f649d8c"><code>26e63cd</code></a> Display exists in core (<a href="https://redirect.github.com/Peternator7/strum/issues/477">#477</a>)</li> <li><a href="https://github.com/Peternator7/strum/commit/9334c728eedaa8a992d1388a8f4564bbccad1934"><code>9334c72</code></a> Make TryFrom and FromStr infallible if there's a default (<a href="https://redirect.github.com/Peternator7/strum/issues/476">#476</a>)</li> <li><a href="https://github.com/Peternator7/strum/commit/0ccbbf823c16e827afc263182cd55e99e3b2a52e"><code>0ccbbf8</code></a> Honor parse_err_ty attribute when the enum has a default variant (<a href="https://redirect.github.com/Peternator7/strum/issues/431">#431</a>)</li> <li><a href="https://github.com/Peternator7/strum/commit/2c9e5a9259189ce8397f2f4967060240c6bafd74"><code>2c9e5a9</code></a> Automatically add Default implementation to EnumDiscriminant if it exists on ...</li> <li><a href="https://github.com/Peternator7/strum/commit/e241243e48359b8b811b8eaccdcfa1ae87138e0d"><code>e241243</code></a> Fix existing cargo fmt + clippy issues and add GH actions (<a href="https://redirect.github.com/Peternator7/strum/issues/473">#473</a>)</li> <li><a href="https://github.com/Peternator7/strum/commit/639b67fefd20eaead1c5d2ea794e9afe70a00312"><code>639b67f</code></a> feat: allow any kind of passthrough attributes on <code>EnumDiscriminants</code> (<a href="https://redirect.github.com/Peternator7/strum/issues/461">#461</a>)</li> <li><a href="https://github.com/Peternator7/strum/commit/0ea1e2d0fd1460e7492ea32e6b460394d9199ff8"><code>0ea1e2d</code></a> docs: Fix typo (<a href="https://redirect.github.com/Peternator7/strum/issues/463">#463</a>)</li> <li><a href="https://github.com/Peternator7/strum/commit/36c051b91086b37d531c63ccf5a49266832a846d"><code>36c051b</code></a> Upgrade <code>phf</code> to v0.13 (<a href="https://redirect.github.com/Peternator7/strum/issues/465">#465</a>)</li> <li><a href="https://github.com/Peternator7/strum/commit/9328b38617dc6f4a3bc5fdac03883d3fc766cf34"><code>9328b38</code></a> Use absolute paths in proc macro (<a href="https://redirect.github.com/Peternator7/strum/issues/469">#469</a>)</li> <li>Additional commits viewable in <a href="https://github.com/Peternator7/strum/compare/v0.27.2...v0.28.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
281 lines
11 KiB
TOML
281 lines
11 KiB
TOML
# 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]
|
|
members = [
|
|
"datafusion/common",
|
|
"datafusion/common-runtime",
|
|
"datafusion/catalog",
|
|
"datafusion/catalog-listing",
|
|
"datafusion/datasource",
|
|
"datafusion/datasource-arrow",
|
|
"datafusion/datasource-avro",
|
|
"datafusion/datasource-csv",
|
|
"datafusion/datasource-json",
|
|
"datafusion/datasource-parquet",
|
|
"datafusion/core",
|
|
"datafusion/expr",
|
|
"datafusion/expr-common",
|
|
"datafusion/execution",
|
|
"datafusion/ffi",
|
|
"datafusion/functions",
|
|
"datafusion/functions-aggregate",
|
|
"datafusion/functions-aggregate-common",
|
|
"datafusion/functions-table",
|
|
"datafusion/functions-nested",
|
|
"datafusion/functions-window",
|
|
"datafusion/functions-window-common",
|
|
"datafusion/optimizer",
|
|
"datafusion/physical-expr",
|
|
"datafusion/physical-expr-adapter",
|
|
"datafusion/physical-expr-common",
|
|
"datafusion/physical-optimizer",
|
|
"datafusion/pruning",
|
|
"datafusion/physical-plan",
|
|
"datafusion/proto",
|
|
"datafusion/proto/gen",
|
|
"datafusion/proto-common",
|
|
"datafusion/proto-common/gen",
|
|
"datafusion/session",
|
|
"datafusion/spark",
|
|
"datafusion/sql",
|
|
"datafusion/sqllogictest",
|
|
"datafusion/substrait",
|
|
"datafusion/wasmtest",
|
|
"datafusion-cli",
|
|
"datafusion-examples",
|
|
"datafusion-examples/examples/ffi/ffi_example_table_provider",
|
|
"datafusion-examples/examples/ffi/ffi_module_interface",
|
|
"datafusion-examples/examples/ffi/ffi_module_loader",
|
|
"test-utils",
|
|
"benchmarks",
|
|
"datafusion/macros",
|
|
"datafusion/doc",
|
|
]
|
|
exclude = ["dev/depcheck"]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
authors = ["Apache DataFusion <dev@datafusion.apache.org>"]
|
|
edition = "2024"
|
|
homepage = "https://datafusion.apache.org"
|
|
license = "Apache-2.0"
|
|
readme = "README.md"
|
|
repository = "https://github.com/apache/datafusion"
|
|
# Define Minimum Supported Rust Version (MSRV)
|
|
rust-version = "1.88.0"
|
|
# Define DataFusion version
|
|
version = "52.1.0"
|
|
|
|
[workspace.dependencies]
|
|
# We turn off default-features for some dependencies here so the workspaces which inherit them can
|
|
# selectively turn them on if needed, since we can override default-features = true (from false)
|
|
# for the inherited dependency but cannot do the reverse (override from true to false).
|
|
#
|
|
# See for more details: https://github.com/rust-lang/cargo/issues/11329
|
|
ahash = { version = "0.8", default-features = false, features = [
|
|
"runtime-rng",
|
|
] }
|
|
apache-avro = { version = "0.21", default-features = false }
|
|
arrow = { version = "57.3.0", features = [
|
|
"prettyprint",
|
|
"chrono-tz",
|
|
] }
|
|
arrow-buffer = { version = "57.2.0", default-features = false }
|
|
arrow-flight = { version = "57.3.0", features = [
|
|
"flight-sql-experimental",
|
|
] }
|
|
arrow-ipc = { version = "57.2.0", default-features = false, features = [
|
|
"lz4",
|
|
] }
|
|
arrow-ord = { version = "57.2.0", default-features = false }
|
|
arrow-schema = { version = "57.2.0", default-features = false }
|
|
async-trait = "0.1.89"
|
|
bigdecimal = "0.4.8"
|
|
bytes = "1.11"
|
|
bzip2 = "0.6.1"
|
|
chrono = { version = "0.4.44", default-features = false }
|
|
criterion = "0.8"
|
|
ctor = "0.6.3"
|
|
dashmap = "6.0.1"
|
|
datafusion = { path = "datafusion/core", version = "52.1.0", default-features = false }
|
|
datafusion-catalog = { path = "datafusion/catalog", version = "52.1.0" }
|
|
datafusion-catalog-listing = { path = "datafusion/catalog-listing", version = "52.1.0" }
|
|
datafusion-common = { path = "datafusion/common", version = "52.1.0", default-features = false }
|
|
datafusion-common-runtime = { path = "datafusion/common-runtime", version = "52.1.0" }
|
|
datafusion-datasource = { path = "datafusion/datasource", version = "52.1.0", default-features = false }
|
|
datafusion-datasource-arrow = { path = "datafusion/datasource-arrow", version = "52.1.0", default-features = false }
|
|
datafusion-datasource-avro = { path = "datafusion/datasource-avro", version = "52.1.0", default-features = false }
|
|
datafusion-datasource-csv = { path = "datafusion/datasource-csv", version = "52.1.0", default-features = false }
|
|
datafusion-datasource-json = { path = "datafusion/datasource-json", version = "52.1.0", default-features = false }
|
|
datafusion-datasource-parquet = { path = "datafusion/datasource-parquet", version = "52.1.0", default-features = false }
|
|
datafusion-doc = { path = "datafusion/doc", version = "52.1.0" }
|
|
datafusion-execution = { path = "datafusion/execution", version = "52.1.0", default-features = false }
|
|
datafusion-expr = { path = "datafusion/expr", version = "52.1.0", default-features = false }
|
|
datafusion-expr-common = { path = "datafusion/expr-common", version = "52.1.0" }
|
|
datafusion-ffi = { path = "datafusion/ffi", version = "52.1.0" }
|
|
datafusion-functions = { path = "datafusion/functions", version = "52.1.0" }
|
|
datafusion-functions-aggregate = { path = "datafusion/functions-aggregate", version = "52.1.0" }
|
|
datafusion-functions-aggregate-common = { path = "datafusion/functions-aggregate-common", version = "52.1.0" }
|
|
datafusion-functions-nested = { path = "datafusion/functions-nested", version = "52.1.0", default-features = false }
|
|
datafusion-functions-table = { path = "datafusion/functions-table", version = "52.1.0" }
|
|
datafusion-functions-window = { path = "datafusion/functions-window", version = "52.1.0" }
|
|
datafusion-functions-window-common = { path = "datafusion/functions-window-common", version = "52.1.0" }
|
|
datafusion-macros = { path = "datafusion/macros", version = "52.1.0" }
|
|
datafusion-optimizer = { path = "datafusion/optimizer", version = "52.1.0", default-features = false }
|
|
datafusion-physical-expr = { path = "datafusion/physical-expr", version = "52.1.0", default-features = false }
|
|
datafusion-physical-expr-adapter = { path = "datafusion/physical-expr-adapter", version = "52.1.0", default-features = false }
|
|
datafusion-physical-expr-common = { path = "datafusion/physical-expr-common", version = "52.1.0", default-features = false }
|
|
datafusion-physical-optimizer = { path = "datafusion/physical-optimizer", version = "52.1.0" }
|
|
datafusion-physical-plan = { path = "datafusion/physical-plan", version = "52.1.0" }
|
|
datafusion-proto = { path = "datafusion/proto", version = "52.1.0" }
|
|
datafusion-proto-common = { path = "datafusion/proto-common", version = "52.1.0" }
|
|
datafusion-pruning = { path = "datafusion/pruning", version = "52.1.0" }
|
|
datafusion-session = { path = "datafusion/session", version = "52.1.0" }
|
|
datafusion-spark = { path = "datafusion/spark", version = "52.1.0" }
|
|
datafusion-sql = { path = "datafusion/sql", version = "52.1.0" }
|
|
datafusion-substrait = { path = "datafusion/substrait", version = "52.1.0" }
|
|
|
|
doc-comment = "0.3"
|
|
env_logger = "0.11"
|
|
flate2 = "1.1.9"
|
|
futures = "0.3"
|
|
glob = "0.3.0"
|
|
half = { version = "2.7.0", default-features = false }
|
|
hashbrown = { version = "0.16.1" }
|
|
hex = { version = "0.4.3" }
|
|
indexmap = "2.13.0"
|
|
insta = { version = "1.46.3", features = ["glob", "filters"] }
|
|
itertools = "0.14"
|
|
liblzma = { version = "0.4.6", features = ["static"] }
|
|
log = "^0.4"
|
|
memchr = "2.8.0"
|
|
num-traits = { version = "0.2" }
|
|
object_store = { version = "0.12.5", default-features = false }
|
|
parking_lot = "0.12"
|
|
parquet = { version = "57.3.0", default-features = false, features = [
|
|
"arrow",
|
|
"async",
|
|
"object_store",
|
|
] }
|
|
paste = "1.0.15"
|
|
pbjson = { version = "0.9.0" }
|
|
pbjson-types = "0.9"
|
|
# Should match arrow-flight's version of prost.
|
|
prost = "0.14.1"
|
|
rand = "0.9"
|
|
recursive = "0.1.1"
|
|
regex = "1.12"
|
|
rstest = "0.26.1"
|
|
serde_json = "1"
|
|
sha2 = "^0.10.9"
|
|
sqlparser = { version = "0.61.0", default-features = false, features = ["std", "visitor"] }
|
|
strum = "0.28.0"
|
|
strum_macros = "0.28.0"
|
|
tempfile = "3"
|
|
testcontainers-modules = { version = "0.15" }
|
|
tokio = { version = "1.48", features = ["macros", "rt", "sync"] }
|
|
tokio-stream = "0.1"
|
|
tokio-util = "0.7"
|
|
url = "2.5.7"
|
|
uuid = "1.21"
|
|
zstd = { version = "0.13", default-features = false }
|
|
|
|
[workspace.lints.clippy]
|
|
# Detects large stack-allocated futures that may cause stack overflow crashes (see threshold in clippy.toml)
|
|
large_futures = "warn"
|
|
used_underscore_binding = "warn"
|
|
or_fun_call = "warn"
|
|
unnecessary_lazy_evaluations = "warn"
|
|
uninlined_format_args = "warn"
|
|
inefficient_to_string = "warn"
|
|
# https://github.com/apache/datafusion/issues/18503
|
|
needless_pass_by_value = "warn"
|
|
# https://github.com/apache/datafusion/issues/18881
|
|
allow_attributes = "warn"
|
|
|
|
[workspace.lints.rust]
|
|
unexpected_cfgs = { level = "warn", check-cfg = [
|
|
'cfg(datafusion_coop, values("tokio", "tokio_fallback", "per_stream"))',
|
|
"cfg(tarpaulin)",
|
|
"cfg(tarpaulin_include)",
|
|
] }
|
|
unused_qualifications = "deny"
|
|
|
|
# --------------------
|
|
# Compilation Profiles
|
|
# --------------------
|
|
# A Cargo profile is a preset for the compiler/linker knobs that trade off:
|
|
# - Build time: how quickly code compiles and links
|
|
# - Runtime performance: how fast the resulting binaries execute
|
|
# - Binary size: how large the executables end up
|
|
# - Debuggability: how much debug information is preserved for debugging and profiling
|
|
#
|
|
# Profiles available:
|
|
# - dev: default debug build; fastest to compile, slowest to run, full debug info
|
|
# for everyday development.
|
|
# Run: cargo run
|
|
# - release: optimized build; slowest to compile, fastest to run, smallest
|
|
# binaries for public releases.
|
|
# Run: cargo run --release
|
|
# - release-nonlto: skips LTO, so it builds quicker while staying close to
|
|
# release performance. It is useful when developing performance optimizations.
|
|
# Run: cargo run --profile release-nonlto
|
|
# - profiling: inherits release optimizations but retains debug info to support
|
|
# profiling tools and flamegraphs.
|
|
# Run: cargo run --profile profiling
|
|
# - ci: derived from `dev` but disables incremental builds and strips dependency
|
|
# symbols to keep CI artifacts small and reproducible.
|
|
# Run: cargo run --profile ci
|
|
#
|
|
# If you want to optimize compilation, the `compile_profile` benchmark can be useful.
|
|
# See `benchmarks/README.md` for more details.
|
|
[profile.release]
|
|
codegen-units = 1
|
|
lto = true
|
|
strip = true # Eliminate debug information to minimize binary size
|
|
|
|
[profile.release-nonlto]
|
|
codegen-units = 16
|
|
debug-assertions = false
|
|
incremental = false
|
|
inherits = "release"
|
|
lto = false
|
|
opt-level = 3
|
|
overflow-checks = false
|
|
rpath = false
|
|
strip = false # Retain debug info for flamegraphs
|
|
|
|
[profile.ci]
|
|
debug = false
|
|
inherits = "dev"
|
|
incremental = false
|
|
|
|
# This rule applies to every package except workspace members (dependencies
|
|
# such as `arrow` and `tokio`). It disables debug info and related features on
|
|
# dependencies so their binaries stay smaller, improving cache reuse.
|
|
[profile.ci.package."*"]
|
|
debug = false
|
|
debug-assertions = false
|
|
strip = "debuginfo"
|
|
incremental = false
|
|
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
debug = true
|
|
strip = false
|