Thank you for taking the time to contribute!
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 testIntegration tests require a debug build (cargo build) to be present before
running cargo test.
-
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.
-
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.
-
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 --checkpasses -
cargo clippy --all-targets -- -D warningspasses -
cargo testpasses (including integration tests) - Documentation updated if behavior changed