Blame CONTRIBUTING

Packit c4476c
HOW TO CONTRIBUTE TO OpenSSL
Packit c4476c
----------------------------
Packit c4476c
Packit c4476c
(Please visit https://www.openssl.org/community/getting-started.html for
Packit c4476c
other ideas about how to contribute.)
Packit c4476c
Packit c4476c
Development is done on GitHub, https://github.com/openssl/openssl.
Packit c4476c
Packit c4476c
To request new features or report bugs, please open an issue on GitHub
Packit c4476c
Packit c4476c
To submit a patch, please open a pull request on GitHub.  If you are thinking
Packit c4476c
of making a large contribution, open an issue for it before starting work,
Packit c4476c
to get comments from the community.  Someone may be already working on
Packit c4476c
the same thing or there may be reasons why that feature isn't implemented.
Packit c4476c
Packit c4476c
To make it easier to review and accept your pull request, please follow these
Packit c4476c
guidelines:
Packit c4476c
Packit c4476c
    1. Anything other than a trivial contribution requires a Contributor
Packit c4476c
    License Agreement (CLA), giving us permission to use your code. See
Packit c4476c
    https://www.openssl.org/policies/cla.html for details.  If your
Packit c4476c
    contribution is too small to require a CLA, put "CLA: trivial" on a
Packit c4476c
    line by itself in your commit message body.
Packit c4476c
Packit c4476c
    2.  All source files should start with the following text (with
Packit c4476c
    appropriate comment characters at the start of each line and the
Packit c4476c
    year(s) updated):
Packit c4476c
Packit c4476c
        Copyright 20xx-20yy The OpenSSL Project Authors. All Rights Reserved.
Packit c4476c
Packit c4476c
        Licensed under the OpenSSL license (the "License").  You may not use
Packit c4476c
        this file except in compliance with the License.  You can obtain a copy
Packit c4476c
        in the file LICENSE in the source distribution or at
Packit c4476c
        https://www.openssl.org/source/license.html
Packit c4476c
Packit c4476c
    3.  Patches should be as current as possible; expect to have to rebase
Packit c4476c
    often. We do not accept merge commits, you will have to remove them
Packit c4476c
    (usually by rebasing) before it will be acceptable.
Packit c4476c
Packit c4476c
    4.  Patches should follow our coding style (see
Packit c4476c
    https://www.openssl.org/policies/codingstyle.html) and compile
Packit c4476c
    without warnings. Where gcc or clang is available you should use the
Packit c4476c
    --strict-warnings Configure option.  OpenSSL compiles on many varied
Packit c4476c
    platforms: try to ensure you only use portable features.  Clean builds
Packit c4476c
    via Travis and AppVeyor are required, and they are started automatically
Packit c4476c
    whenever a PR is created or updated.
Packit c4476c
Packit c4476c
    5.  When at all possible, patches should include tests. These can
Packit c4476c
    either be added to an existing test, or completely new.  Please see
Packit c4476c
    test/README for information on the test framework.
Packit c4476c
Packit c4476c
    6.  New features or changed functionality must include
Packit c4476c
    documentation. Please look at the "pod" files in doc/man[1357] for
Packit c4476c
    examples of our style. Run "make doc-nits" to make sure that your
Packit c4476c
    documentation changes are clean.
Packit c4476c
Packit c4476c
    7.  For user visible changes (API changes, behaviour changes, ...),
Packit c4476c
    consider adding a note in CHANGES.  This could be a summarising
Packit c4476c
    description of the change, and could explain the grander details.
Packit c4476c
    Have a look through existing entries for inspiration.
Packit c4476c
    Please note that this is NOT simply a copy of git-log one-liners.
Packit c4476c
    Also note that security fixes get an entry in CHANGES.
Packit c4476c
    This file helps users get more in depth information of what comes
Packit c4476c
    with a specific release without having to sift through the higher
Packit c4476c
    noise ratio in git-log.
Packit c4476c
Packit c4476c
    8.  For larger or more important user visible changes, as well as
Packit c4476c
    security fixes, please add a line in NEWS.  On exception, it might be
Packit c4476c
    worth adding a multi-line entry (such as the entry that announces all
Packit c4476c
    the types that became opaque with OpenSSL 1.1.0).
Packit c4476c
    This file helps users get a very quick summary of what comes with a
Packit c4476c
    specific release, to see if an upgrade is worth the effort.