]> git.ipfire.org Git - thirdparty/openssl.git/blame - CONTRIBUTING.md
Add OPENSSL_riscvcap man page
[thirdparty/openssl.git] / CONTRIBUTING.md
CommitLineData
2876872f 1HOW TO CONTRIBUTE TO OpenSSL
5f8e6c50 2============================
eb05f173 3
6c8149df 4Please visit our [Getting Started] page for other ideas about how to contribute.
eb05f173 5
6c8149df 6 [Getting Started]: <https://www.openssl.org/community/getting-started.html>
5f8e6c50 7
6c8149df 8Development is done on GitHub in the [openssl/openssl] repository.
5f8e6c50 9
6c8149df 10 [openssl/openssl]: <https://github.com/openssl/openssl>
eb05f173 11
260d9722
DDO
12To request new a feature, ask a question, or report a bug,
13please open an [issue on GitHub](https://github.com/openssl/openssl/issues).
c5eed277 14
260d9722
DDO
15To submit a patch or implement a new feature, please open a
16[pull request on GitHub](https://github.com/openssl/openssl/pulls).
17If you are thinking of making a large contribution,
18open an issue for it before starting work, to get comments from the community.
19Someone may be already working on the same thing,
20or there may be special reasons why a feature is not implemented.
f2b9c257 21
2876872f
RS
22To make it easier to review and accept your pull request, please follow these
23guidelines:
24
5f8e6c50 25 1. Anything other than a trivial contribution requires a [Contributor
6c8149df 26 License Agreement] (CLA), giving us permission to use your code.
260d9722 27 If your contribution is too small to require a CLA (e.g., fixing a spelling
cad48c5b
JM
28 mistake), then place the text "`CLA: trivial`" on a line by itself below
29 the rest of your commit message separated by an empty line, like this:
30
31 ```
32 One-line summary of trivial change
33
34 Optional main body of commit message. It might contain a sentence
35 or two explaining the trivial change.
36
37 CLA: trivial
38 ```
39
40 It is not sufficient to only place the text "`CLA: trivial`" in the GitHub
41 pull request description.
e955edcd 42
6c8149df 43 [Contributor License Agreement]: <https://www.openssl.org/policies/cla.html>
e955edcd 44
5f8e6c50 45 To amend a missing "`CLA: trivial`" line after submission, do the following:
257e9d03 46
5f8e6c50 47 ```
e955edcd 48 git commit --amend
cad48c5b
JM
49 # add the line, save and quit the editor
50 git push -f [<repository> [<branch>]]
5f8e6c50 51 ```
257e9d03 52
5f8e6c50 53 2. All source files should start with the following text (with
f2b9c257
RS
54 appropriate comment characters at the start of each line and the
55 year(s) updated):
257e9d03 56
5f8e6c50 57 ```
f2b9c257
RS
58 Copyright 20xx-20yy The OpenSSL Project Authors. All Rights Reserved.
59
15133316 60 Licensed under the Apache License 2.0 (the "License"). You may not use
f2b9c257
RS
61 this file except in compliance with the License. You can obtain a copy
62 in the file LICENSE in the source distribution or at
63 https://www.openssl.org/source/license.html
5f8e6c50 64 ```
f2b9c257 65
5f8e6c50 66 3. Patches should be as current as possible; expect to have to rebase
2876872f
RS
67 often. We do not accept merge commits, you will have to remove them
68 (usually by rebasing) before it will be acceptable.
f2b9c257 69
e817766c 70 4. Code provided should follow our [coding style] and [documentation policy]
71 and compile without warnings.
260d9722
DDO
72 There is a [Perl tool](util/check-format.pl) that helps
73 finding code formatting mistakes and other coding style nits.
af33b200 74 Where `gcc` or `clang` is available, you should use the
1dc1ea18 75 `--strict-warnings` `Configure` option. OpenSSL compiles on many varied
260d9722
DDO
76 platforms: try to ensure you only use portable features.
77 Clean builds via GitHub Actions are required. They are started automatically
78 whenever a PR is created or updated by committers.
f2b9c257 79
31ff3635 80 [coding style]: https://www.openssl.org/policies/technical/coding-style.html
e817766c 81 [documentation policy]: https://openssl.org/policies/technical/documentation-policy.html
5f8e6c50 82
260d9722 83 5. When at all possible, code contributions should include tests. These can
7954dced 84 either be added to an existing test, or completely new. Please see
1dc1ea18 85 [test/README.md](test/README.md) for information on the test framework.
49c2a00d 86
5f8e6c50 87 6. New features or changed functionality must include
260d9722
DDO
88 documentation. Please look at the `.pod` files in `doc/man[1357]` for
89 examples of our style. Run `make doc-nits` to make sure that your
2876872f 90 documentation changes are clean.
029c11c2 91
5f8e6c50 92 7. For user visible changes (API changes, behaviour changes, ...),
ee6c7cde
NT
93 consider adding a note in [CHANGES.md](CHANGES.md).
94 This could be a summarising description of the change, and could
95 explain the grander details.
df443918 96 Have a look through existing entries for inspiration.
7fa8bcfe 97 Please note that this is NOT simply a copy of git-log one-liners.
1dc1ea18 98 Also note that security fixes get an entry in [CHANGES.md](CHANGES.md).
260d9722 99 This file helps users get more in-depth information of what comes
029c11c2
RL
100 with a specific release without having to sift through the higher
101 noise ratio in git-log.
102
ea15508b 103 8. Guidelines on how to integrate error output of new crypto library modules
b897b353 104 can be found in [crypto/err/README.md](crypto/err/README.md).