xref: /oneTBB/CONTRIBUTING.md (revision f6b7cb1b)
1a6b90fc9SAlexandra<!--
2a6b90fc9SAlexandra******************************************************************************
3a6b90fc9SAlexandra4a6b90fc9SAlexandra* Licensed under the Apache License, Version 2.0 (the "License");
5a6b90fc9SAlexandra* you may not use this file except in compliance with the License.
6a6b90fc9SAlexandra* You may obtain a copy of the License at
7a6b90fc9SAlexandra*
8a6b90fc9SAlexandra*     http://www.apache.org/licenses/LICENSE-2.0
9a6b90fc9SAlexandra*
10a6b90fc9SAlexandra* Unless required by applicable law or agreed to in writing, software
11a6b90fc9SAlexandra* distributed under the License is distributed on an "AS IS" BASIS,
12a6b90fc9SAlexandra* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a6b90fc9SAlexandra* See the License for the specific language governing permissions and
14a6b90fc9SAlexandra* limitations under the License.
15a6b90fc9SAlexandra*******************************************************************************/-->
16a6b90fc9SAlexandra
17a6b90fc9SAlexandra# How to Contribute
18a6b90fc9SAlexandraAs an open source project, we welcome community contributions to oneAPI Threading Building Blocks (oneTBB).  This document explains how to participate in project conversations, log bugs and enhancement requests, and submit code patches to the project.
19a6b90fc9SAlexandra
20a6b90fc9SAlexandra## Licensing
21a6b90fc9SAlexandra
22a6b90fc9SAlexandraLicensing is very important to open source projects. It helps ensure the software continues to be available under the terms that the author desired. The oneTBB project uses the [Apache 2.0 License](https://github.com/oneapi-src/oneTBB/blob/master/LICENSE.txt), a permissive open source license that allows you to freely use, modify, and distribute your own products that include Apache 2.0 licensed software. By contributing to the oneTBB project, you agree to the license and copyright terms therein and release your own contributions under these terms.
23a6b90fc9SAlexandra
24a6b90fc9SAlexandraSome imported or reused components within oneTBB use other licenses, as described in [third-party-programs.txt](https://github.com/oneapi-src/oneTBB/blob/master/third-party-programs.txt). By carefully reviewing potential contributions and enforcing a [Developer Certification of Origin (DCO)](https://developercertificate.org/) for contributed code, we can ensure that the community can develop products with oneTBB without concerns over patent or copyright issues.
25a6b90fc9SAlexandra
26a6b90fc9SAlexandraThe DCO is an attestation attached to every contribution made by every developer. In the commit message of the contribution, (described later), the developer simply adds a Signed-off-by statement and thereby agrees to the DCO.
27a6b90fc9SAlexandra
28a6b90fc9SAlexandra## Prerequisites
29a6b90fc9SAlexandra
30a6b90fc9SAlexandraAs a contributor, you’ll want to be familiar with the oneTBB project and the repository layout. You should also know how to use it as explained in the [oneTBB documentation](https://oneapi-src.github.io/oneTBB/) and how to set up your build development environment to configure, build, and test oneTBB as explained in the [oneTBB Build System Description](cmake/README.md).
31a6b90fc9SAlexandra
32a6b90fc9SAlexandra## Pull Requests
33a6b90fc9SAlexandra
34a6b90fc9SAlexandraYou can find all [open oneTBB pull requests](https://github.com/oneapi-src/oneTBB/pulls) on GitHub.
35a6b90fc9SAlexandra
36*e274a9e4SAlexandraNo anonymous contributions are accepted. The name in the commit message Signed-off-by line and your email must match the change authorship information.  Make sure your .gitconfig is set up correctly so you can use `git commit -s` for signing your patches:
37a6b90fc9SAlexandra
38a6b90fc9SAlexandra`git config --global user.name "Taylor Developer"`
39a6b90fc9SAlexandra
40a6b90fc9SAlexandra`git config --global user.email [email protected]`
41a6b90fc9SAlexandra
42*e274a9e4SAlexandra### Before contributing changes directly to the oneTBB repository
43a6b90fc9SAlexandra
44a6b90fc9SAlexandra* Make sure you can build the product and run all the tests with your patch.
45a6b90fc9SAlexandra* For a larger feature, provide a relevant test.
46a6b90fc9SAlexandra* Document your code. The oneTBB project uses reStructuredText for documentation.
47*e274a9e4SAlexandra* Update the copyright year in the first line of the changing file(s).
48*e274a9e4SAlexandra  For example, if you commit your changes in 2022:
49*e274a9e4SAlexandra  * the copyright year should be `2005-2022` for existing files
50*e274a9e4SAlexandra  * the copyright year should be `2022` for new files
51a6b90fc9SAlexandra* Submit a pull request into the master branch. You can submit changes with a pull request (preferred) or by sending an email patch.
52a6b90fc9SAlexandra
53a6b90fc9SAlexandraContinuous Integration (CI) testing is enabled for the repository. Your pull request must pass all checks before it can be merged. We will review your contribution and may provide feedback to guide you if any additional fixes or modifications are necessary. When reviewed and accepted, your pull request will be merged into our GitHub repository.
54