Open-Source Wikis

/

OpenSSL

/

How to contribute

openssl/openssl

How to contribute

OpenSSL development happens on GitHub. Pull requests are reviewed by Committers, signed off, and merged via a fixed approval pipeline. The authoritative document is CONTRIBUTING.md; this section summarizes and points to the relevant code.

Where to start

If you want to… Read
Open a PR for the first time development-workflow
Run the test suite or write a new test testing
Track down a bug or learn the tracing facility debugging
Match the project's style patterns-and-conventions
Understand the build system tooling and reference/build-system

The PR pipeline

  1. Fork openssl/openssl on GitHub. Do not push directly to the upstream.
  2. Open a PR against master. (Backports to release branches are usually handled by maintainers via cherry-pick.)
  3. CI runs across Linux, macOS, Windows, BSDs, and a small zoo of compilers and configurations (see .github/workflows/ci.yml). Clean builds are required.
  4. The PR enters the approval: review pending state. Two committer approvals move it to approval: done. After 24 hours (the cooling-off window) the label changes to approval: ready to merge. At some point a committer merges it.
  5. Reviewers may request changes at any time. Use fixup commits (git commit --fixup <hash>); they are squashed at merge.

The list of Committers lives at https://openssl-library.org/about/committers/index.html.

CLA and trivial-change policy

Anything non-trivial requires a Contributor License Agreement. For trivial changes (typos, comment fixes), put a line CLA: trivial in your commit message body. See CONTRIBUTING.md for the canonical text.

Where the rules are enforced

Concern Enforced by
C formatting (WebKit clang-format) .clang-format, .pre-commit-config.yaml, .github/workflows/style-checks.yml, util/reformat-patches.sh
Spelling .codespellrc, .github/workflows/style-checks.yml
Documentation lint make doc-nits (script: util/find-doc-nits)
Public symbol bookkeeping make update regenerates util/libcrypto.num, util/libssl.num, util/providers.num, error code maps
News changelog .github/workflows/check-news-changes.yml reminds you to add an entry in CHANGES.md for user-visible changes
FIPS module fingerprint .github/workflows/fips-checksums.yml (touching providers/fips.module.sources re-runs the checksumming)
Pull-request template .github/PULL_REQUEST_TEMPLATE.md

Coding policy and documentation policy

The official policies are at:

The local mirror enforces the coding style via .clang-format (WebKit base, customized in .clang-format) and .pre-commit-config.yaml. Run before pushing:

pre-commit run --all-files
# or, for an existing patch series:
util/reformat-patches.sh

Where to ask

Channel What for
GitHub issues Bugs, feature requests
openssl-users mailing list User-level questions
openssl-project mailing list Project / governance discussions
#openssl on Libera.Chat IRC Live chat

SUPPORT.md lists all of them with current URLs.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

How to contribute – OpenSSL wiki | Factory