Skip to content

Add contribution guidance (CONTRIBUTING.md) - #284

Open
dgarske wants to merge 1 commit into
wolfSSL:mainfrom
dgarske:contributing_md
Open

Add contribution guidance (CONTRIBUTING.md)#284
dgarske wants to merge 1 commit into
wolfSSL:mainfrom
dgarske:contributing_md

Conversation

@dgarske

@dgarske dgarske commented Aug 11, 2026

Copy link
Copy Markdown
Member

Description

Adds a CONTRIBUTING.md to 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.

Copilot AI lite review requested due to automatic review settings August 11, 2026 23:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread CONTRIBUTING.md
@@ -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.
Comment thread CONTRIBUTING.md

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).
Comment thread CONTRIBUTING.md

## 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 thread CONTRIBUTING.md
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 thread CONTRIBUTING.md
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.
Comment thread CONTRIBUTING.md

## 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 thread CONTRIBUTING.md
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`.
Comment thread CONTRIBUTING.md

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).
Comment thread CONTRIBUTING.md

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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants