libcbor is maintained by @PJK in his spare time on a best-effort basis.
Community contributions are welcome as long as they align with the project priorities and goals and follow the guidelines described below.
Bug reports and questions: Bug reports and specific technical questions are always welcome. Feel free to open an issue.
Incremental improvements: Bug fixes (including build scripts, examples, test, typos, CI/CD config, etc.) and documentation improvements (fixes of typos, inaccuracies, out of date content, etc.) are always welcome. Feel free to open a PR.
New features: I am looking to keep the scope of libcbor small. If you would like to add a feature, please open an issue with your proposal (or reach out to me privately) to discuss if the feature fits into libcbor before opening a PR.
Major changes: Please open an issue with your proposal (or reach out to me privately) to discuss if the improvement fits into cbor before opening a PR.
- Ensure that all CI checks pass
- Check that the PR is complete and of good quality
- Include a descriptive summary of the change. If the PR addresses an open issue, please link it.
- Code changes: Add tests
- If necessary: Update documentation, including any links
- Code changes: Update the changelog. Do not change the version number.
I work on libcbor on a best effort basis. The typical response time is a few days.
If you do not receive a response in a few weeks, feel free to ping the PR or issue.
C++ code: ./clang-format.sh
.
Function Doxygen strings:
/** An example short description
*
* @param item The item to fooify. Describe any expectations on it (e.g."must
* be a valid array") and reference counting manipulation.
* Multi-line descriptions are OK where necessary.
* @param target_item Short description, always with a full stop.
* @return Has fooification succeeded? List any special cases.
*/
bool foo(cbor_item_t *item, cbor_item_t *target_item);