Skip to content

Is cargo fmt no longer working properly in parquet crate #6179

Closed
@etseidl

Description

@etseidl

Which part is this question about
Code formatter.

Describe your question
I've noticed recently that running cargo fmt while I'm editing files doesn't always seem to catch problems. Running rustfmt directly will work. For instance, running cargo fmt on the parquet crate yields no output.

% cargo +stable fmt -p parquet -v -- --check
[bench (2021)] "/Users/seidl/src/arrow-rs/parquet/benches/arrow_reader.rs"
[bench (2021)] "/Users/seidl/src/arrow-rs/parquet/benches/arrow_statistics.rs"
[bench (2021)] "/Users/seidl/src/arrow-rs/parquet/benches/arrow_writer.rs"
[bench (2021)] "/Users/seidl/src/arrow-rs/parquet/benches/compression.rs"
[bench (2021)] "/Users/seidl/src/arrow-rs/parquet/benches/encoding.rs"
[bench (2021)] "/Users/seidl/src/arrow-rs/parquet/benches/metadata.rs"
[example (2021)] "/Users/seidl/src/arrow-rs/parquet/examples/async_read_parquet.rs"
[example (2021)] "/Users/seidl/src/arrow-rs/parquet/examples/read_parquet.rs"
[example (2021)] "/Users/seidl/src/arrow-rs/parquet/examples/read_with_rowgroup.rs"
[example (2021)] "/Users/seidl/src/arrow-rs/parquet/examples/write_parquet.rs"
[bin (2021)] "/Users/seidl/src/arrow-rs/parquet/src/bin/parquet-concat.rs"
[bin (2021)] "/Users/seidl/src/arrow-rs/parquet/src/bin/parquet-fromcsv.rs"
[bin (2021)] "/Users/seidl/src/arrow-rs/parquet/src/bin/parquet-index.rs"
[bin (2021)] "/Users/seidl/src/arrow-rs/parquet/src/bin/parquet-layout.rs"
[bin (2021)] "/Users/seidl/src/arrow-rs/parquet/src/bin/parquet-read.rs"
[bin (2021)] "/Users/seidl/src/arrow-rs/parquet/src/bin/parquet-rewrite.rs"
[bin (2021)] "/Users/seidl/src/arrow-rs/parquet/src/bin/parquet-rowcount.rs"
[bin (2021)] "/Users/seidl/src/arrow-rs/parquet/src/bin/parquet-schema.rs"
[bin (2021)] "/Users/seidl/src/arrow-rs/parquet/src/bin/parquet-show-bloom-filter.rs"
[lib (2021)] "/Users/seidl/src/arrow-rs/parquet/src/lib.rs"
[test (2021)] "/Users/seidl/src/arrow-rs/parquet/tests/arrow_reader/mod.rs"
[test (2021)] "/Users/seidl/src/arrow-rs/parquet/tests/arrow_writer_layout.rs"
rustfmt --edition 2021 --check /Users/seidl/src/arrow-rs/parquet/benches/arrow_reader.rs /Users/seidl/src/arrow-rs/parquet/benches/arrow_statistics.rs /Users/seidl/src/arrow-rs/parquet/benches/arrow_writer.rs /Users/seidl/src/arrow-rs/parquet/benches/compression.rs /Users/seidl/src/arrow-rs/parquet/benches/encoding.rs /Users/seidl/src/arrow-rs/parquet/benches/metadata.rs /Users/seidl/src/arrow-rs/parquet/examples/async_read_parquet.rs /Users/seidl/src/arrow-rs/parquet/examples/read_parquet.rs /Users/seidl/src/arrow-rs/parquet/examples/read_with_rowgroup.rs /Users/seidl/src/arrow-rs/parquet/examples/write_parquet.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-concat.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-fromcsv.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-index.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-layout.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-read.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-rewrite.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-rowcount.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-schema.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-show-bloom-filter.rs /Users/seidl/src/arrow-rs/parquet/src/lib.rs /Users/seidl/src/arrow-rs/parquet/tests/arrow_reader/mod.rs /Users/seidl/src/arrow-rs/parquet/tests/arrow_writer_layout.rs
%

But there are files that when run manually do (running the rustfmt command line above with the addition of parquet/src/compression.rs):

% rustfmt --edition 2021 --check /Users/seidl/src/arrow-rs/parquet/benches/arrow_reader.rs /Users/seidl/src/arrow-rs/parquet/benches/arrow_statistics.rs /Users/seidl/src/arrow-rs/parquet/benches/arrow_writer.rs /Users/seidl/src/arrow-rs/parquet/benches/compression.rs /Users/seidl/src/arrow-rs/parquet/benches/encoding.rs /Users/seidl/src/arrow-rs/parquet/benches/metadata.rs /Users/seidl/src/arrow-rs/parquet/examples/async_read_parquet.rs /Users/seidl/src/arrow-rs/parquet/examples/read_parquet.rs /Users/seidl/src/arrow-rs/parquet/examples/read_with_rowgroup.rs /Users/seidl/src/arrow-rs/parquet/examples/write_parquet.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-concat.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-fromcsv.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-index.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-layout.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-read.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-rewrite.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-rowcount.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-schema.rs /Users/seidl/src/arrow-rs/parquet/src/bin/parquet-show-bloom-filter.rs /Users/seidl/src/arrow-rs/parquet/src/lib.rs /Users/seidl/src/arrow-rs/parquet/tests/arrow_reader/mod.rs /Users/seidl/src/arrow-rs/parquet/tests/arrow_writer_layout.rs /Users/seidl/src/arrow-rs/parquet/src/compression.rs 
Diff in /Users/seidl/src/arrow-rs/parquet/src/compression.rs at line 150:
         CodecType::BROTLI(level) => {
             #[cfg(any(feature = "brotli", test))]
             return Ok(Some(Box::new(BrotliCodec::new(level))));
-            Err(ParquetError::General("Disabled feature at compile time: brotli".into()))
-        },
+            Err(ParquetError::General(
+                "Disabled feature at compile time: brotli".into(),
+            ))
+        }
         CodecType::GZIP(level) => {
             #[cfg(any(feature = "flate2", test))]
             return Ok(Some(Box::new(GZipCodec::new(level))));
Diff in /Users/seidl/src/arrow-rs/parquet/src/compression.rs at line 158:
-            Err(ParquetError::General("Disabled feature at compile time: flate2".into()))
-        },
+            Err(ParquetError::General(
+                "Disabled feature at compile time: flate2".into(),
+            ))
+        }
         CodecType::SNAPPY => {
             #[cfg(any(feature = "snap", test))]
             return Ok(Some(Box::new(SnappyCodec::new())));
Diff in /Users/seidl/src/arrow-rs/parquet/src/compression.rs at line 163:
-            Err(ParquetError::General("Disabled feature at compile time: snap".into()))
-        },
+            Err(ParquetError::General(
+                "Disabled feature at compile time: snap".into(),
+            ))
+        }
         CodecType::LZ4 => {
             #[cfg(any(feature = "lz4", test))]
             return Ok(Some(Box::new(LZ4HadoopCodec::new(
Diff in /Users/seidl/src/arrow-rs/parquet/src/compression.rs at line 168:
                 _options.backward_compatible_lz4,
             ))));
-            Err(ParquetError::General("Disabled feature at compile time: lz4".into()))
-        },
+            Err(ParquetError::General(
+                "Disabled feature at compile time: lz4".into(),
+            ))
+        }
         CodecType::ZSTD(level) => {
             #[cfg(any(feature = "zstd", test))]
             return Ok(Some(Box::new(ZSTDCodec::new(level))));
Diff in /Users/seidl/src/arrow-rs/parquet/src/compression.rs at line 175:
-            Err(ParquetError::General("Disabled feature at compile time: zstd".into()))
-        },
+            Err(ParquetError::General(
+                "Disabled feature at compile time: zstd".into(),
+            ))
+        }
         CodecType::LZ4_RAW => {
             #[cfg(any(feature = "lz4", test))]
             return Ok(Some(Box::new(LZ4RawCodec::new())));
Diff in /Users/seidl/src/arrow-rs/parquet/src/compression.rs at line 180:
-            Err(ParquetError::General("Disabled feature at compile time: lz4".into()))
-        },
+            Err(ParquetError::General(
+                "Disabled feature at compile time: lz4".into(),
+            ))
+        }
         CodecType::UNCOMPRESSED => Ok(None),
         _ => Err(nyi_err!("The codec type {} is not supported yet", codec)),
     }
%

Additional context
There are many reports of fmt silently failing, one such is rust-lang/rustfmt#3008.

Has anyone else noticed this or is it something to do with my setup.

%  cargo --version
cargo 1.80.0 (376290515 2024-07-16)
% rustfmt --version
rustfmt 1.7.0-stable (05147895 2024-07-21)

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions