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

Reply via email to