From f4b2f950f2b6dfbb1f9ae1edd20bc6515efc94ce Mon Sep 17 00:00:00 2001 From: Przemyslaw Wysocki Date: Thu, 14 Dec 2023 17:22:24 +0100 Subject: [PATCH] [Docs] Add a single-point starter guide for contributors (#21322) Co-authored-by: Karol Blaszczak --- .github/ISSUE_TEMPLATE/good_first_issue.yml | 5 +- CONTRIBUTING.md | 70 ++++++++++++++++++++- 2 files changed, 69 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/good_first_issue.yml b/.github/ISSUE_TEMPLATE/good_first_issue.yml index 0b7edcbaecd1a4..1d7eecf9a37b5e 100644 --- a/.github/ISSUE_TEMPLATE/good_first_issue.yml +++ b/.github/ISSUE_TEMPLATE/good_first_issue.yml @@ -41,10 +41,7 @@ body: Any materials related to the task, such as operator specifications, discussions, guides. value: | - - [What is OpenVINO?](https://github.com/openvinotoolkit/openvino#what-is-openvino-toolkit) - - [Contribution guide](https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING.md) - - [Blog post on contributing to OpenVINO](https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING.md) - - [User documentation](https://docs.openvino.ai/) + - [Contribution guide - start here!](https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING.md) validations: required: true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5579299cc8b3c6..86ca1d88b5c6d7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,8 +4,14 @@ OpenVINO™ is always looking for opportunities to improve and your contributions play a big role in this process. There are several ways you can make the -product better: +product better. +# Table of Contents +1. [Forms of contribution](#Forms-of-contribution) +2. [Technical guide](#Technical-guide) + + +## Forms of contribution ### Provide Feedback @@ -32,7 +38,7 @@ product better: If you want to help improving OpenVINO, choose one of the issues reported in [GitHub Issue Tracker](https://github.com/openvinotoolkit/openvino/issues) and [create a Pull Request](./CONTRIBUTING_PR.md) addressing it. Consider one of the - tasks listed as [first-time contributions](https://github.com/openvinotoolkit/openvino/issues/17502). + tasks listed as [first-time contributions](https://github.com/orgs/openvinotoolkit/projects/3). If the feature you want to develop is more complex or not well defined by the reporter, it is always a good idea to [discuss it](https://github.com/openvinotoolkit/openvino/discussions) with OpenVINO developers first. Before creating a new PR, check if nobody is already @@ -81,6 +87,66 @@ product better: share your expertise with the community. Check GitHub Discussions and Issues to see if you can help someone. +## Technical guide + +This section lists all the necessary steps required to set up your environment, build OpenVINO locally, and run tests for specific components. It's a perfect place to start when you have just picked a Good First Issue and are wondering how to start working on it. + +Keep in mind that we are here to help - **do not hesitate to ask the development team if something is not clear**. Such questions allow us to keep improving our documentation. + +### 1. Prerequisites + +You can start with the following links: +- [What is OpenVINO?](https://github.com/openvinotoolkit/openvino#what-is-openvino-toolkit) +- [OpenVINO architecture](https://github.com/openvinotoolkit/openvino/blob/master/src/docs/architecture.md) +- [User documentation](https://docs.openvino.ai/) +- [Blog post on contributing to OpenVINO](https://medium.com/openvino-toolkit/how-to-contribute-to-an-ai-open-source-project-c741f48e009e) +- [Pick up a Good First Issue](https://github.com/orgs/openvinotoolkit/projects/3) + +### 2. Building the project + +In order to build the project, follow the [build instructions for your specific OS](https://github.com/openvinotoolkit/openvino/blob/master/docs/dev/build.md). + +### 3. Familiarize yourself with the component you'll be working with + +Choose the component your Good First Issue is related to. You can run tests to make sure it works correctly. + +##### APIs +- [C API](https://github.com/openvinotoolkit/openvino/tree/master/src/bindings/c) +- [Core](https://github.com/openvinotoolkit/openvino/tree/master/src/core) +- [Python API](https://github.com/openvinotoolkit/openvino/tree/master/src/bindings/python) + +##### Frontends +- [IR Frontend](https://github.com/openvinotoolkit/openvino/tree/master/src/frontends/ir) +- [ONNX Frontend](https://github.com/openvinotoolkit/openvino/tree/master/src/frontends/onnx) +- [PaddlePaddle Frontend](https://github.com/openvinotoolkit/openvino/tree/master/src/frontends/paddle) +- [PyTorch Frontend](https://github.com/openvinotoolkit/openvino/tree/master/src/frontends/pytorch) +- [TensorFlow Frontend](https://github.com/openvinotoolkit/openvino/tree/master/src/frontends/tensorflow) + +##### Plugins +- [Auto plugin](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/auto) +- [CPU plugin](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_cpu) +- [GPU plugin](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_gpu) +- [Hetero plugin](https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/hetero) +- [Template plugin](https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/template) + +##### Tools +- [Benchmark Tool](https://github.com/openvinotoolkit/openvino/tree/master/tools/benchmark_tool) +- [Model Optimizer](https://github.com/openvinotoolkit/openvino/tree/master/tools/mo) + +##### Others +- [Documentation](https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING_DOCS.md) + +### 3. Start working on your Good First Issue + +Use the issue description and locally built OpenVINO to complete the task. Remember that you can always ask users tagged in the "Contact points" section for help! + +### 4. Submit a PR with your changes + +Follow our [Good Pull Request guidelines](https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING_PR.md). + +### 5. Wait for a review + +We'll make sure to review your Pull Request as soon as possible and provide you with our feedback. You can expect a merge once your changes are validated with automatic tests and approved by maintainers. ## License