Add contribution guidance (CONTRIBUTING.md) - #284
Open
dgarske wants to merge 1 commit into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Adds a repository-root CONTRIBUTING.md to document contribution workflow and the required contributor agreement up front (motivated by wolfSSL/wolfssh#1146), reducing surprise/friction for external contributors.
Changes:
- Introduces contribution guidance covering PRs/issues/patch submission paths
- Documents contributor agreement requirements and alternatives if it can’t be signed
- Describes CI visibility (GitHub Actions vs internal Jenkins) and security reporting
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| @@ -0,0 +1,97 @@ | |||
| # Contributing | |||
|
|
|||
| Thank you for your interest in contributing to wolfSSL. This guide applies to all wolfSSL Inc. repositories (wolfSSL, wolfSSH, wolfTPM, wolfBoot, wolfMQTT, wolfCLU, wolfPKCS11, wolfHSM, wolfProvider, wolfSentry, and the rest). Please read the "Contributor Agreement" section below - it is the one requirement that surprises people, and we would rather you know about it up front. | |||
|
|
||
| 1. **Open a pull request.** This is the preferred route and the easiest for us to review, test, and give you credit for. | ||
| 2. **Email the patch to support@wolfssl.com.** If you would rather not work through GitHub, send us the diff directly and we will take it from there. | ||
| 3. **File an issue.** Report a defect, ask a question, or propose a change. Apply whichever of the repository's labels fits - `bug` for a defect, `enhancement` or `Feature Request` for something new, and so on. Tell us what the problem is, how to reproduce it, and what you expected instead, and we can take it from there. This is also the route to use if you are unable to submit code at all (see "If You Cannot Sign the Contributor Agreement" below). |
|
|
||
| ## Contributor Agreement (Required) | ||
|
|
||
| wolfSSL Inc. dual licenses its software: GPLv3 for open source use, and a commercial license for everyone else. To be able to ship your contribution under both, we need to hold the rights to relicense it. That means **we cannot merge a contribution until a signed contributor agreement is on file** for you (and, where applicable, your employer). |
Comment on lines
+58
to
+59
| - **GitHub Actions jobs are public.** Open the "Checks" tab on your pull request, click into any failing job, and read the full log yourself. Please do this first - most failures are a build break or a test regression from the change itself, and you can usually reproduce them locally. | ||
| - **Jenkins jobs are internal.** They cover hardware, toolchains, and configurations we cannot expose publicly, so the logs are not visible to you. **If a Jenkins job fails on your pull request, a maintainer will post the relevant errors into the pull request** so you can act on them. If a Jenkins check is red and nobody has commented yet, just ask - it is not something you can debug on your own, and we are happy to paste the output. |
Comment on lines
+75
to
+76
| - **Keep lines to 80 columns.** This is a hard limit in most wolfSSL repositories and is checked in CI. It applies to source, headers, and scripts. | ||
| - **Clean source text.** 7-bit ASCII only, no trailing whitespace, and a newline at end of file. Several repositories enforce this in CI. |
|
|
||
| ## Before You Start | ||
|
|
||
| - **Check `master` first.** The fix may already be in, or the surrounding code may have moved. Please base your work on the current `master`. |
Comment on lines
+47
to
+49
| 1. Fork the repository and create a topic branch off `master`. | ||
| 2. Keep commits focused; one logical change per commit, with a clear message. | ||
| 3. Open the pull request against `master`. |
|
|
||
| 1. **Open a pull request.** This is the preferred route and the easiest for us to review, test, and give you credit for. | ||
| 2. **Email the patch to support@wolfssl.com.** If you would rather not work through GitHub, send us the diff directly and we will take it from there. | ||
| 3. **File an issue.** Report a defect, ask a question, or propose a change. Apply whichever of the repository's labels fits - `bug` for a defect, `enhancement` or `Feature Request` for something new, and so on. Tell us what the problem is, how to reproduce it, and what you expected instead, and we can take it from there. This is also the route to use if you are unable to submit code at all (see "If You Cannot Sign the Contributor Agreement" below). |
|
|
||
| Some employers do not permit signing third-party agreements, and we understand that. You can still get the change in: | ||
|
|
||
| - Open a GitHub issue in the affected repository and apply the label that fits (`bug`, `enhancement`, and so on). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a
CONTRIBUTING.mdto the repository root. None of the wolfSSL repositories had one, so our contributor agreement requirement was only discovered after someone had already done the work. See wolfSSL/wolfssh#1146, where an outside contributor withdrew a PR over it and asked us to document the requirement up front.The same repo-agnostic file is being added to wolfSSL, wolfSSH, wolfMQTT, wolfTPM, wolfBoot, wolfPKCS11, wolfHSM, wolfProvider, wolfSentry and wolfCLU. It covers how to contribute, the contributor agreement and how to request one, our CI (GitHub Actions is public, Jenkins failures get pasted in by a maintainer), coding expectations, and where to report security issues. Please read the file itself rather than a summary here.
Testing
Documentation only - no code changes.