We want to make contributing to this project as easy and transparent as possible. We appreciate all contributions, from bug fixes and documentation improvements to new features.
All contributors are expected to follow our Code of Conduct.
To accept your pull request, we need you to submit a CLA. You only need to do this once to work on any of Meta's open source projects.
Complete your CLA here: https://code.facebook.com/cla
We welcome contributions in many forms:
- Bug Reports: If you find a bug, please file a detailed issue on GitHub.
- Feature Requests: If you have an idea for a new feature, open an issue to discuss it.
- Pull Requests: We actively welcome your pull requests for bug fixes, improvements, and new features.
- Documentation: Improvements to our documentation are always welcome.
Our documentation is built with Docusaurus and is located in the website/ directory. To contribute to the documentation:
- Edit the Markdown files in
website/docs/. - To preview your changes locally, run
cd website && npm install && npm start. - Submit a pull request with your changes.
- Fork the repository and create your branch from
main. - Add tests if you've added code that should be tested.
- Update documentation if you've changed APIs or added new features.
- Ensure the test suite passes by running
python3 ./build/fbcode_builder/getdeps.py --allow-system-packages test cachelib. - Format your code using
clang-formatwith the provided.clang-formatconfiguration. - Complete the CLA if you haven't already.
We use a "rebase and merge" workflow. Please ensure your branch is up-to-date with main before submitting your PR.
When you open a pull request, please use the provided template and fill out the following sections:
- Summary: A brief description of the changes.
- Test Plan: How you tested your changes.
- Documentation: A description of any documentation updates.
We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to reproduce the issue.
For security bugs, please do not file a public issue. Instead, report it through Meta's Whitehat Bug Bounty program.
We use clang-format to enforce a consistent code style. Please run clang-format on your changes before submitting a pull request. You can find the configuration in the .clang-format file in the root of the repository.
By contributing to CacheLib, you agree that your contributions will be licensed under the Apache-2.0 License that covers the project.md project uses in this project.