|
1 | 1 | # How to contribute
|
2 | 2 |
|
3 |
| -This project started because I needed an easy, small, and crash-proof CBOR library for my [WebAuthn (FIDO2) server library](https://github.com/fxamacker/webauthn). I believe this was the first and still only standalone CBOR library (in Go) that is fuzz tested as of November 10, 2019. |
| 3 | +Here are some ways you can contribute: |
4 | 4 |
|
5 |
| -To my surprise, Stefan Tatschner (rumpelsepp) submitted the first 2 issues when I didn't expect this project to be noticed. So I decided to make it more full-featured for others by announcing releases and asking for feedback. Even this document exists because Montgomery Edwards⁴⁴⁸ (x448) opened [issue #22](https://github.com/fxamacker/cbor/issues/22). In other words, you can contribute by opening an issue that helps the project improve. Especially in the early stages. |
6 |
| - |
7 |
| -When I announced v1.2 on Go Forum, Jakob Borg (calmh) responded with a thumbs up and encouragement. Another project of equal priority needed my time and Jakob's kind words tipped the scale for me to work on this one (speedups for [milestone v1.3](https://github.com/fxamacker/cbor/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.3.0).) So words of appreciation or encouragement is nice way to contribute to open source projects. |
8 |
| - |
9 |
| -Another way is by using this library in your project. It can lead to features that benefit both projects, which is what happened when oasislabs/oasis-core switched to this CBOR libary -- thanks Yawning Angel (yawning) for requesting BinaryMarshaler/BinaryUnmarshaler and Jernej Kos (kostco) for requesting RawMessage! |
| 5 | +- Give this library a star on GitHub. It doesn't cost anything and it lets maintainers know you appreciate their work. |
| 6 | +- Use this library in your project. By using this library, you're more likely to open an issue with feature request, etc. |
| 7 | +- Report security vulnerabilities privately by email after reading this contributing guide and [Security Policy](https://github.com/fxamacker/cbor#security-policy). |
| 8 | +- Open an issue with a feature request. It can help prioritize issues if you provide a link to your project and mention if a missing feature prevents your project from using this library. |
| 9 | +- Open an issue with a bug report. It's helpful if the bug report includes a link to a reproducer at [Go Playground](https://go.dev/play/). |
| 10 | +- Open a PR that would close a specific issue. Ask if it's a good time to open a PR in the issue because a solution might already be in progress. Please also read about the signing requirements before spending time on a PR. |
10 | 11 |
|
11 | 12 | If you'd like to contribute code or send CBOR data, please read on (it can save you time!)
|
12 | 13 |
|
13 | 14 | ## Private reports
|
| 15 | + |
14 | 16 | Usually, all issues are tracked publicly on [GitHub](https://github.com/fxamacker/cbor/issues).
|
15 | 17 |
|
16 | 18 | To report security vulnerabilities, please email [email protected] and allow time for the problem to be resolved before disclosing it to the public. For more info, see [Security Policy ](https://github.com/fxamacker/cbor#security-policy).
|
17 | 19 |
|
18 | 20 | Please do not send data that might contain personally identifiable information, even if you think you have permission. That type of support requires payment and a contract where I'm indemnified, held harmless, and defended for any data you send to me.
|
19 | 21 |
|
20 |
| -## Prerequisites to pull requests |
| 22 | +## Pull requests |
| 23 | + |
| 24 | +Pull requests have signing requirements and must not be anonymous. Exceptions can be made for docs and CI scripts. |
| 25 | + |
| 26 | +See our [Pull Request Template](https://github.com/fxamacker/cbor/blob/master/.github/pull_request_template.md) for details. |
| 27 | + |
21 | 28 | Please [create an issue](https://github.com/fxamacker/cbor/issues/new/choose), if one doesn't already exist, and describe your concern. You'll need a [GitHub account](https://github.com/signup/free) to do this.
|
22 | 29 |
|
23 | 30 | If you submit a pull request without creating an issue and getting a response, you risk having your work unused because the bugfix or feature was already done by others and being reviewed before reaching Github.
|
24 | 31 |
|
25 | 32 | ## Describe your issue
|
| 33 | + |
26 | 34 | Clearly describe the issue:
|
27 | 35 | * If it's a bug, please provide: **version of this library** and **Go** (`go version`), **unmodified error message**, and describe **how to reproduce it**. Also state **what you expected to happen** instead of the error.
|
28 | 36 | * If you propose a change or addition, try to give an example how the improved code could look like or how to use it.
|
29 | 37 | * If you found a compilation error, please confirm you're using a supported version of Go. If you are, then provide the output of `go version` first, followed by the complete error message.
|
30 | 38 |
|
31 | 39 | ## Please don't
|
| 40 | + |
32 | 41 | Please don't send data containing personally identifiable information, even if you think you have permission. That type of support requires payment and a contract where I'm indemnified, held harmless, and defended for any data you send to me.
|
33 | 42 |
|
34 | 43 | Please don't send CBOR data larger than 512 bytes. If you want to send crash-producing CBOR data > 512 bytes, please get my permission before sending it to me.
|
35 | 44 |
|
36 | 45 | ## Wanted
|
| 46 | + |
37 | 47 | * Opening issues that are helpful to the project
|
38 | 48 | * Using this library in your project and letting me know
|
39 | 49 | * Sending well-formed CBOR data (<= 512 bytes) that causes crashes (none found yet).
|
40 | 50 | * Sending malformed CBOR data (<= 512 bytes) that causes crashes (none found yet, but bad actors are better than me at breaking things).
|
41 |
| -* Sending tests or data for unit tests that increase code coverage (currently at 97.8% for v1.2.) |
| 51 | +* Sending tests or data for unit tests that increase code coverage (currently around 98%) |
42 | 52 | * Pull requests with small changes that are well-documented and easily understandable.
|
43 |
| -* Sponsors, donations, bounties, subscriptions: I'd like to run uninterrupted fuzzing between releases on a server with dedicated CPUs (after v1.3 or v1.4.) |
| 53 | +* Sponsors, donations, bounties, or subscriptions. |
44 | 54 |
|
45 | 55 | ## Credits
|
46 |
| -This guide used nlohmann/json contribution guidelines for inspiration as suggested in issue #22. |
47 | 56 |
|
| 57 | +- This guide used nlohmann/json contribution guidelines for inspiration as suggested in issue #22. |
| 58 | +- Special thanks to @lukseven for pointing out the contribution guidelines didn't mention signing requirements. |
0 commit comments