This is an automated email from the ASF dual-hosted git repository.

wayne pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new cf92f3b01f chore: use taplo to format Cargo.toml manifests (#9263)
cf92f3b01f is described below

commit cf92f3b01ff064308c5e7ca2e15c20770d48a88a
Author: Ruihang Xia <[email protected]>
AuthorDate: Tue Feb 20 10:36:48 2024 +0800

    chore: use taplo to format Cargo.toml manifests (#9263)
    
    * add taplo.toml configuration
    
    Signed-off-by: Ruihang Xia <[email protected]>
    
    * run taplo format
    
    Signed-off-by: Ruihang Xia <[email protected]>
    
    * update CI and script
    
    Signed-off-by: Ruihang Xia <[email protected]>
    
    * update doc
    
    Signed-off-by: Ruihang Xia <[email protected]>
    
    * add license header
    
    Signed-off-by: Ruihang Xia <[email protected]>
    
    * Revert "run taplo format"
    
    This reverts commit 1819daa35eb0ac36cb3d257fb94efda3c7e00be4.
    
    * skip reorder package table
    
    Signed-off-by: Ruihang Xia <[email protected]>
    
    ---------
    
    Signed-off-by: Ruihang Xia <[email protected]>
---
 .github/workflows/rust.yml          | 13 +++-----
 Cargo.toml                          | 21 ++++++++++++-
 ci/scripts/rust_toml_fmt.sh         |  8 ++---
 datafusion-cli/Cargo.toml           | 10 +++++-
 datafusion/core/Cargo.toml          | 25 +++++++++++++--
 datafusion/functions/Cargo.toml     |  1 -
 datafusion/optimizer/Cargo.toml     |  2 +-
 datafusion/physical-expr/Cargo.toml |  6 +++-
 dev/rust_lint.sh                    |  6 ++--
 taplo.toml                          | 62 +++++++++++++++++++++++++++++++++++++
 10 files changed, 129 insertions(+), 25 deletions(-)

diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index 154ac9766e..f7acc896cb 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -480,16 +480,11 @@ jobs:
         uses: ./.github/actions/setup-builder
         with:
           rust-version: stable
-      - name: Install cargo-tomlfmt
-        run: which cargo-tomlfmt || cargo install cargo-tomlfmt
-
+      - name: Install taplo
+        run: cargo +stable install taplo-cli --version ^0.9 --locked
+      # if you encounter an error, try running 'taplo format' to fix the 
formatting automatically.
       - name: Check Cargo.toml formatting
-        run: |
-          # if you encounter an error, try running 'cargo tomlfmt -p 
path/to/Cargo.toml' to fix the formatting automatically.
-          # If the error still persists, you need to manually edit the 
Cargo.toml file, which introduces formatting violation.
-          #
-          # ignore ./Cargo.toml because putting workspaces in multi-line lists 
make it easy to read
-          ci/scripts/rust_toml_fmt.sh
+        run: taplo format --check
 
   config-docs-check:
     name: check configs.md is up-to-date
diff --git a/Cargo.toml b/Cargo.toml
index 31c0005d58..f79e1f2896 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -17,7 +17,26 @@
 
 [workspace]
 exclude = ["datafusion-cli"]
-members = ["datafusion/common", "datafusion/core", "datafusion/expr", 
"datafusion/execution", "datafusion/functions", "datafusion/functions-array",  
"datafusion/optimizer", "datafusion/physical-expr", "datafusion/physical-plan", 
"datafusion/proto", "datafusion/proto/gen", "datafusion/sql", 
"datafusion/sqllogictest", "datafusion/substrait", "datafusion/wasmtest", 
"datafusion-examples", "docs", "test-utils", "benchmarks",
+members = [
+    "datafusion/common",
+    "datafusion/core",
+    "datafusion/expr",
+    "datafusion/execution",
+    "datafusion/functions",
+    "datafusion/functions-array",
+    "datafusion/optimizer",
+    "datafusion/physical-expr",
+    "datafusion/physical-plan",
+    "datafusion/proto",
+    "datafusion/proto/gen",
+    "datafusion/sql",
+    "datafusion/sqllogictest",
+    "datafusion/substrait",
+    "datafusion/wasmtest",
+    "datafusion-examples",
+    "docs",
+    "test-utils",
+    "benchmarks",
 ]
 resolver = "2"
 
diff --git a/ci/scripts/rust_toml_fmt.sh b/ci/scripts/rust_toml_fmt.sh
index 0a8cc346a3..9204a562a3 100755
--- a/ci/scripts/rust_toml_fmt.sh
+++ b/ci/scripts/rust_toml_fmt.sh
@@ -17,11 +17,9 @@
 # specific language governing permissions and limitations
 # under the License.
 
-# Run cargo-tomlfmt with flag `-d` in dry run to check formatting
+# Run `taplo format` with flag `--check` in dry run to check formatting
 # without overwritng the file. If any error occur, you may want to
-# rerun 'cargo tomlfmt -p path/to/Cargo.toml' without '-d' to fix
-# the formatting automatically.
+# rerun `taplo format` to fix the formatting automatically.
 set -ex
-for toml in $(find . -mindepth 2 -name 'Cargo.toml'); do
-       cargo tomlfmt -d -p $toml
+taplo format
 done
diff --git a/datafusion-cli/Cargo.toml b/datafusion-cli/Cargo.toml
index 45e7b740bf..147e432950 100644
--- a/datafusion-cli/Cargo.toml
+++ b/datafusion-cli/Cargo.toml
@@ -35,7 +35,15 @@ async-trait = "0.1.41"
 aws-config = "0.55"
 aws-credential-types = "0.55"
 clap = { version = "3", features = ["derive", "cargo"] }
-datafusion = { path = "../datafusion/core", version = "36.0.0", features = 
["avro", "crypto_expressions", "encoding_expressions", "parquet", 
"regex_expressions", "unicode_expressions", "compression"] }
+datafusion = { path = "../datafusion/core", version = "36.0.0", features = [
+    "avro",
+    "crypto_expressions",
+    "encoding_expressions",
+    "parquet",
+    "regex_expressions",
+    "unicode_expressions",
+    "compression",
+] }
 datafusion-common = { path = "../datafusion/common" }
 dirs = "4.0.0"
 env_logger = "0.9"
diff --git a/datafusion/core/Cargo.toml b/datafusion/core/Cargo.toml
index 09718791d0..874e455132 100644
--- a/datafusion/core/Cargo.toml
+++ b/datafusion/core/Cargo.toml
@@ -43,7 +43,15 @@ avro = ["apache-avro", "num-traits", 
"datafusion-common/avro"]
 backtrace = ["datafusion-common/backtrace"]
 compression = ["xz2", "bzip2", "flate2", "zstd", "async-compression", 
"tokio-util"]
 crypto_expressions = ["datafusion-physical-expr/crypto_expressions", 
"datafusion-optimizer/crypto_expressions"]
-default = ["array_expressions", "crypto_expressions", "encoding_expressions", 
"regex_expressions", "unicode_expressions", "compression", "parquet"]
+default = [
+    "array_expressions",
+    "crypto_expressions",
+    "encoding_expressions",
+    "regex_expressions",
+    "unicode_expressions",
+    "compression",
+    "parquet",
+]
 encoding_expressions = ["datafusion-functions/encoding_expressions"]
 # Used for testing ONLY: causes all values to hash to the same value (test for 
collisions)
 force_hash_collisions = []
@@ -52,7 +60,11 @@ parquet = ["datafusion-common/parquet", "dep:parquet"]
 pyarrow = ["datafusion-common/pyarrow", "parquet"]
 regex_expressions = ["datafusion-physical-expr/regex_expressions", 
"datafusion-optimizer/regex_expressions"]
 serde = ["arrow-schema/serde"]
-unicode_expressions = ["datafusion-physical-expr/unicode_expressions", 
"datafusion-optimizer/unicode_expressions", 
"datafusion-sql/unicode_expressions"]
+unicode_expressions = [
+    "datafusion-physical-expr/unicode_expressions",
+    "datafusion-optimizer/unicode_expressions",
+    "datafusion-sql/unicode_expressions",
+]
 
 [dependencies]
 ahash = { version = "0.8", default-features = false, features = 
["runtime-rng"] }
@@ -61,7 +73,14 @@ arrow = { workspace = true }
 arrow-array = { workspace = true }
 arrow-ipc = { workspace = true }
 arrow-schema = { workspace = true }
-async-compression = { version = "0.4.0", features = ["bzip2", "gzip", "xz", 
"zstd", "futures-io", "tokio"], optional = true }
+async-compression = { version = "0.4.0", features = [
+    "bzip2",
+    "gzip",
+    "xz",
+    "zstd",
+    "futures-io",
+    "tokio",
+], optional = true }
 async-trait = { workspace = true }
 bytes = { workspace = true }
 bzip2 = { version = "0.4.3", optional = true }
diff --git a/datafusion/functions/Cargo.toml b/datafusion/functions/Cargo.toml
index 7109261cc7..f63f18f955 100644
--- a/datafusion/functions/Cargo.toml
+++ b/datafusion/functions/Cargo.toml
@@ -38,7 +38,6 @@ encoding_expressions = ["base64", "hex"]
 # enable math functions
 math_expressions = []
 
-
 [lib]
 name = "datafusion_functions"
 path = "src/lib.rs"
diff --git a/datafusion/optimizer/Cargo.toml b/datafusion/optimizer/Cargo.toml
index cac46eda98..7235dddc8d 100644
--- a/datafusion/optimizer/Cargo.toml
+++ b/datafusion/optimizer/Cargo.toml
@@ -18,7 +18,7 @@
 [package]
 name = "datafusion-optimizer"
 description = "DataFusion Query Optimizer"
-keywords = [ "datafusion", "query", "optimizer" ]
+keywords = ["datafusion", "query", "optimizer"]
 readme = "README.md"
 version = { workspace = true }
 edition = { workspace = true }
diff --git a/datafusion/physical-expr/Cargo.toml 
b/datafusion/physical-expr/Cargo.toml
index 719dc425fc..a46ad42f67 100644
--- a/datafusion/physical-expr/Cargo.toml
+++ b/datafusion/physical-expr/Cargo.toml
@@ -34,7 +34,11 @@ path = "src/lib.rs"
 
 [features]
 crypto_expressions = ["md-5", "sha2", "blake2", "blake3"]
-default = ["crypto_expressions", "regex_expressions", "unicode_expressions", 
"encoding_expressions",
+default = [
+    "crypto_expressions",
+    "regex_expressions",
+    "unicode_expressions",
+    "encoding_expressions",
 ]
 encoding_expressions = ["base64", "hex"]
 regex_expressions = ["regex"]
diff --git a/dev/rust_lint.sh b/dev/rust_lint.sh
index 1191071330..af0fce72cc 100755
--- a/dev/rust_lint.sh
+++ b/dev/rust_lint.sh
@@ -21,9 +21,9 @@
 # DataFusion CI does
 
 set -e
-if ! command -v cargo-tomlfmt &> /dev/null; then
-    echo "Installing cargo-tomlfmt using cargo"
-    cargo install cargo-tomlfmt
+if ! command -v taplo &> /dev/null; then
+    echo "Installing taplo using cargo"
+    cargo install taplo-cli
 fi
 
 ci/scripts/rust_fmt.sh
diff --git a/taplo.toml b/taplo.toml
new file mode 100644
index 0000000000..b7089c5016
--- /dev/null
+++ b/taplo.toml
@@ -0,0 +1,62 @@
+# 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.
+
+## https://taplo.tamasfe.dev/configuration/file.html
+
+include = ["**/Cargo.toml"]
+
+[formatting]
+# Align consecutive entries vertically.
+align_entries = false
+# Append trailing commas for multi-line arrays.
+array_trailing_comma = true
+# Expand arrays to multiple lines that exceed the maximum column width.
+array_auto_expand = true
+# Collapse arrays that don't exceed the maximum column width and don't contain 
comments.
+array_auto_collapse = false
+# Omit white space padding from single-line arrays
+compact_arrays = true
+# Omit white space padding from the start and end of inline tables.
+compact_inline_tables = false
+# Maximum column width in characters, affects array expansion and collapse, 
this doesn't take whitespace into account.
+# Note that this is not set in stone, and works on a best-effort basis.
+column_width = 120
+# Indent based on tables and arrays of tables and their subtables, subtables 
out of order are not indented.
+indent_tables = false
+# The substring that is used for indentation, should be tabs or spaces (but 
technically can be anything).
+indent_string = '    '
+# Add trailing newline at the end of the file if not present.
+trailing_newline = true
+# Alphabetically reorder keys that are not separated by empty lines.
+reorder_keys = false
+# Maximum amount of allowed consecutive blank lines. This does not affect the 
whitespace at the end of the document, as it is always stripped.
+allowed_blank_lines = 1
+# Use CRLF for line endings.
+crlf = false
+
+[[rule]]
+keys = [
+    "build-dependencies",
+    "dependencies",
+    "dev-dependencies",
+    "workspace.dependencies",
+]
+formatting = { reorder_keys = true }
+
+[[rule]]
+keys = ["package"]
+formatting = { reorder_keys = false }

Reply via email to