1337982SjkimHOW TO CONTRIBUTE TO OpenSSL
2337982Sjkim----------------------------
3291707Sjkim
4306195Sjkim(Please visit https://www.openssl.org/community/getting-started.html for
5306195Sjkimother ideas about how to contribute.)
6291707Sjkim
7337982SjkimDevelopment is done on GitHub, https://github.com/openssl/openssl.
8291707Sjkim
9337982SjkimTo request new features or report bugs, please open an issue on GitHub
10291707Sjkim
11337982SjkimTo submit a patch, please open a pull request on GitHub.  If you are thinking
12337982Sjkimof making a large contribution, open an issue for it before starting work,
13337982Sjkimto get comments from the community.  Someone may be already working on
14337982Sjkimthe same thing or there may be reasons why that feature isn't implemented.
15291707Sjkim
16337982SjkimTo make it easier to review and accept your pull request, please follow these
17337982Sjkimguidelines:
18306195Sjkim
19337982Sjkim    1. Anything other than a trivial contribution requires a Contributor
20337982Sjkim    License Agreement (CLA), giving us permission to use your code. See
21337982Sjkim    https://www.openssl.org/policies/cla.html for details.  If your
22337982Sjkim    contribution is too small to require a CLA, put "CLA: trivial" on a
23337982Sjkim    line by itself in your commit message body.
24337982Sjkim
25306195Sjkim    2.  All source files should start with the following text (with
26306195Sjkim    appropriate comment characters at the start of each line and the
27306195Sjkim    year(s) updated):
28306195Sjkim
29306195Sjkim        Copyright 20xx-20yy The OpenSSL Project Authors. All Rights Reserved.
30306195Sjkim
31306195Sjkim        Licensed under the OpenSSL license (the "License").  You may not use
32306195Sjkim        this file except in compliance with the License.  You can obtain a copy
33306195Sjkim        in the file LICENSE in the source distribution or at
34306195Sjkim        https://www.openssl.org/source/license.html
35306195Sjkim
36312826Sjkim    3.  Patches should be as current as possible; expect to have to rebase
37337982Sjkim    often. We do not accept merge commits, you will have to remove them
38337982Sjkim    (usually by rebasing) before it will be acceptable.
39306195Sjkim
40306195Sjkim    4.  Patches should follow our coding style (see
41337982Sjkim    https://www.openssl.org/policies/codingstyle.html) and compile
42337982Sjkim    without warnings. Where gcc or clang is available you should use the
43306195Sjkim    --strict-warnings Configure option.  OpenSSL compiles on many varied
44337982Sjkim    platforms: try to ensure you only use portable features.  Clean builds
45337982Sjkim    via Travis and AppVeyor are required, and they are started automatically
46337982Sjkim    whenever a PR is created or updated.
47306195Sjkim
48312826Sjkim    5.  When at all possible, patches should include tests. These can
49312826Sjkim    either be added to an existing test, or completely new.  Please see
50312826Sjkim    test/README for information on the test framework.
51306195Sjkim
52312826Sjkim    6.  New features or changed functionality must include
53337982Sjkim    documentation. Please look at the "pod" files in doc for
54337982Sjkim    examples of our style.
55