- Add "Development setup" section with workspace overview, build/lint/test commands, and integration test note - Fix grammar: "classify you request" → "classify your request", "clear false expectation" → "clear false expectations", "existing test are not get broken" → "existing tests are not broken" - Replace dangling "reporting guidelines" reference with a link to GitHub Issues - Add PR checklist (fmt, clippy, test, docs) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.0 KiB
How to contribute
Thank you for taking the time to contribute!
Development setup
Bear is a Cargo workspace with the following crates:
- bear — the main driver and semantic analysis tool
- intercept-preload — the
LD_PRELOAD/DYLD_INSERT_LIBRARIESshared library - platform-checks — compile-time platform feature detection
- integration-tests — end-to-end tests that exercise the installed tool
Build, lint, and test with:
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
Integration tests require a debug build (cargo build) to be present before
running cargo test.
Reporting bugs
-
Please read the documentation — it may be a known limitation of the current release. This might also help to clear false expectations about the tool, or help you classify your request not as a bug but as an enhancement.
-
Ensure that the bug was not already reported by searching on GitHub under Issues.
-
If you have not found an open issue addressing the problem, open a new one. Be sure to include a title and clear description, with as much relevant information as possible. Attach the output of the tool — try running in verbose mode.
Suggesting enhancements
-
Enhancement suggestions are tracked as GitHub issues.
-
Use a clear and descriptive title for the issue to identify the suggestion.
-
Describe the current behavior and explain which behavior you expected to see instead and why.
Pull Requests
-
Open a new GitHub pull request with the patch.
-
Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
-
Think about testability. Please write test(s) for the problem you have fixed. Make sure that existing tests are not broken.
PR checklist:
cargo fmt --checkpassescargo clippy --all-targets -- -D warningspassescargo testpasses (including integration tests)- Documentation updated if behavior changed