This is an automated email from the ASF dual-hosted git repository.
yihua pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hudi-rs.git
The following commit(s) were added to refs/heads/main by this push:
new 6cd7134c build: drop dependency debug info from dev builds (#928)
6cd7134c is described below
commit 6cd7134ca69cf74bc687ce2de8fda9ea7c6809cb
Author: Y Ethan Guo <[email protected]>
AuthorDate: Fri Oct 30 09:10:36 2026 -0700
build: drop dependency debug info from dev builds (#928)
---
CONTRIBUTING.md | 14 ++++++++++++++
Cargo.toml | 7 +++++++
2 files changed, 21 insertions(+)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 2317ad6e..f8df7ed7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -127,6 +127,20 @@ pytest -s python/tests
pytest python/tests/test_table_read.py -s -k
"test_read_table_has_correct_schema"
```
+## Keep disk usage down
+
+A debug build compiles DataFusion, Arrow, Parquet and RocksDB, and every
integration test links its
+own executable, so a checkout's `target/` directory can grow to tens of GB. To
keep it in check:
+
+- Run `cargo clean` in checkouts you no longer build.
+- Test the crate you changed, for example `cargo test -p hudi-core --lib`,
rather than the whole
+ workspace.
+- On an arm64 Mac, run cargo through `make` or `./build-wrapper.sh` every time
(for example
+ `./build-wrapper.sh cargo test -p hudi-core --lib`). The wrapper's
dependency opt-level is part of
+ each dependency's build hash, so alternating with plain `cargo` keeps two
copies of every dependency.
+- Sharing one `CARGO_TARGET_DIR` across worktrees builds dependencies once,
but concurrent builds then
+ wait on Cargo's build-directory lock.
+
## Before creating a pull request
Run the below command and fix issues if any:
diff --git a/Cargo.toml b/Cargo.toml
index 9024c2bc..b9e24b9d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -116,3 +116,10 @@ flate2 = { version = "1" }
serial_test = { version = "4" }
tempfile = { version = "3" }
zip = { version = "9.0.3", default-features = false, features = ["deflate"] }
+
+# Dependency debug info (DataFusion, Arrow, Parquet, and RocksDB's C++
objects) is about a
+# third of a debug `target/` and is rarely stepped through. Workspace crates
keep full debug
+# info, so debuggers and backtraces still resolve hudi-rs code. To step into a
dependency,
+# build with `--config 'profile.dev.package."*".debug=true'`.
+[profile.dev.package."*"]
+debug = false