Pre-commit commands, the pandoc command, the ASCII, SPDX and dependency rules, the linker chain, INTERCEPT_LIBDIR, the debug build before tests, the add-a-compiler steps and the INTERCEPT_FAMILY edit were each told in several guides. Each now lives in one place; the other copies are pointers. The INTERCEPT_LIBDIR note now says what each build script checks, and CONTRIBUTING.md lists typos with the other checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.2 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 application layer: CLI, configuration, modes, output
- semantic - compiler recognition and flag parsing; owns the compiler definition YAML
- 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
The root CLAUDE.md has the full crate table.
Build, lint, and test with:
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
typos
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)typospasses- Documentation updated if behavior changed