Skip to content

Latest commit

 

History

History
52 lines (34 loc) · 2.42 KB

CONTRIBUTING.md

File metadata and controls

52 lines (34 loc) · 2.42 KB

Contributing to libcbor

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.

Principles

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.

Pull Request Process

  1. Ensure that all CI checks pass
  2. 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
  3. Code changes: Update the changelog. Do not change the version number.

Interactions

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.

Coding style

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);

Resources