Skip to content

chore: trim dev/test debuginfo to line tables for faster links#75

Merged
bhekanik merged 1 commit into
mainfrom
chore/test-speed-quickwins
Jun 11, 2026
Merged

chore: trim dev/test debuginfo to line tables for faster links#75
bhekanik merged 1 commit into
mainfrom
chore/test-speed-quickwins

Conversation

@bhekanik

@bhekanik bhekanik commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

What

Sets the workspace dev profile to debug = "line-tables-only" to speed up cargo test/cargo build link time. Audit backlog item #25 (test-speed quick wins), requested during the session.

Why

There was no [profile] config, so everything built with full debug = 2 DWARF. Link time — especially relinking the several large daemon integration-test binaries — is the dominant cost of the test suite, and full per-variable debuginfo is the bulk of it.

How

[profile.dev] debug = "line-tables-only" (the test profile inherits from dev). This keeps file:line in panic backtraces while dropping the heavy variable debuginfo, and lets macOS skip the slow dsymutil packaging step. No source changes; backtraces are preserved by design (cargo documents line-tables-only as "minimal debug info for backtraces with filename/line number").

Deferred follow-ups (larger, noted not done)

  • Merge the ~9 crates/daemon/tests/*.rs integration binaries into one — each currently relinks the whole daemon crate; merging into a single binary with per-file modules would cut that to one link. Mechanical but touches the test layout, so kept separate.
  • nextest — faster parallel runner, but changes the CI test invocation; out of scope for a zero-risk config PR.

Verification

cargo build succeeds under the new profile (Finished dev [unoptimized + debuginfo]). Off main, config-only.

Generated with Claude Code


Summary by cubic

Trim dev/test debug info to line tables to cut link time in cargo test/cargo build, while keeping file:line backtraces and letting macOS skip dsymutil. Addresses Linear issue 25 (test-speed quick wins).

Written for commit d4e7bc0. Summary will update on new commits.

Review in cubic

`cargo test` here is dominated by link time, and full per-variable DWARF
is the bulk of it — the daemon test suite relinks several large
binaries. Set the dev profile (which the test profile inherits) to
`debug = "line-tables-only"`: panic backtraces still report file:line,
but the heavy variable debuginfo is dropped and macOS skips the slow
dsymutil packaging step, cutting link time across the suite.
@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mxr-mail Ready Ready Preview, Comment Jun 10, 2026 7:21pm

@coderabbitai

coderabbitai Bot commented Jun 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@bhekanik, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 54 minutes and 17 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 74016f1d-441f-492e-93ce-c19e7e48480c

📥 Commits

Reviewing files that changed from the base of the PR and between 7bb7a09 and d4e7bc0.

📒 Files selected for processing (1)
  • Cargo.toml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/test-speed-quickwins

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Re-trigger cubic

@bhekanik bhekanik merged commit c67b5c2 into main Jun 11, 2026
25 of 27 checks passed
@bhekanik bhekanik deleted the chore/test-speed-quickwins branch June 11, 2026 00:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant