Skip to content

Commit

Permalink
[DOCS] Updating Contribute to OpenVINO articles (#23650)
Browse files Browse the repository at this point in the history
Updating the existing articles about making contributions to OpenVINO,
adding an article to docs.openvino.ai.

---------

Co-authored-by: Tatiana Savina <[email protected]>
Co-authored-by: Przemyslaw Wysocki <[email protected]>
  • Loading branch information
3 people authored Jul 25, 2024
1 parent 34bb671 commit f6ca0e7
Show file tree
Hide file tree
Showing 3 changed files with 258 additions and 2 deletions.
3 changes: 1 addition & 2 deletions docs/articles_en/about-openvino.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
.. {#about_openvino}
About OpenVINO
==============

Expand All @@ -10,6 +8,7 @@ About OpenVINO

about-openvino/performance-benchmarks
about-openvino/compatibility-and-support
about-openvino/contributing
Release Notes <about-openvino/release-notes-openvino>

OpenVINO is a toolkit for simple and efficient deployment of various deep learning models.
Expand Down
169 changes: 169 additions & 0 deletions docs/articles_en/about-openvino/contributing.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
Contribute to OpenVINO
========================

.. toctree::
:maxdepth: 1
:hidden:

contributing/code-contribution-guide

OpenVINO™ is always looking for opportunities to improve and your contributions
play a big role in this process. Here are four ways you can make OpenVINO better:

- `Provide feedback <#provide-feedback>`__
- `Contribute code changes <#contribute-code-changes>`__
- `Improve documentation <#improve-documentation>`__
- `Promote and support OpenVINO <#promote-and-support-openvino>`__


:fas:`comments` Provide feedback
################################

.. rubric:: Report bugs / issues
:name: report-bugs-issues

If you notice unexpected behavior in OpenVINO or its components, you can
`create a new issue <https://github.com/openvinotoolkit/openvino/issues>`__
in the GitHub issue tracker.

.. rubric:: Propose improvements
:name: propose-improvements

If you want to share your ideas for improving OpenVINO:

- Open a new `GitHub Discussion <https://github.com/openvinotoolkit/openvino/discussions>`__.
- Create a `Feature Request Issue <https://github.com/openvinotoolkit/openvino/issues/new?assignees=octocat&labels=enhancement%2Cfeature&projects=&template=feature_request.yml&title=%5BFeature+Request%5D%3A+>`__
if your idea is already well defined.

In both cases, provide a detailed description and list potential use cases,
benefits, and challenges. Keep in mind that even if your input is not immediately
prioritized, it may be used at a later or undertaken by the community.


:fas:`code-branch` Contribute code changes
##########################################

Always check if the change is still needed! Verify if
`the issue <https://github.com/openvinotoolkit/openvino/issues>`__ or
`request <https://github.com/openvinotoolkit/openvino/pulls>`__ is still open
and nobody has started working on it. If the ticket is already work in progress,
you can always ask if you can help.

**Address only the issues that affect the master or**
:doc:`LTS release branches <./release-notes-openvino/release-policy>`.

**Do not start work on contributions, if a proper issue/ request has not been created.**

.. tip::

If you want to start with something simple, check out
`first-time contributions <https://github.com/orgs/openvinotoolkit/projects/3>`__.


.. rubric:: Fix bugs
:name: fix-bugs

Choose one of the issues reported in
`GitHub Issue Tracker <https://github.com/openvinotoolkit/openvino/issues>`__ and
`create a Pull Request <https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING_PR.md>`__
(PR) addressing it.

If you find a new bug and want to fix it, you should still
create a new issue before working on the PR. This way, it will be easier for other
developers to track changes.

.. rubric:: Develop new features
:name: develop-new-features

If you find a `Feature Request <https://github.com/openvinotoolkit/openvino/issues/new?assignees=octocat&labels=enhancement%2Cfeature&projects=&template=feature_request.yml&title=%5BFeature+Request%5D%3A+>`__
you want to work on, make sure it is clearly defined. If you have any doubts,
or the change is complex, `discuss it <https://github.com/openvinotoolkit/openvino/discussions>`__
with OpenVINO developers first.

If you have an idea for a new feature and want
to develop it, you should still create a Feature Request before working on the
PR. This way, it will be easier for other developers to track changes.

.. rubric:: Develop a new device plugin
:name: develop-new-device-plugin

If you want to run inference on a device that is currently not supported, you
can see how to develop a new plugin for it in the
`Plugin Developer Guide <https://docs.openvino.ai/nightly/documentation/openvino-extensibility/openvino-plugin-library.html>`__.


:fas:`file-alt` Improve documentation
#####################################

OpenVINO user documentation is built from several sources, mainly the files in
the `docs/articles_en <https://github.com/openvinotoolkit/openvino/tree/master/docs/articles_en>`__
folder, using `Sphinx <https://www.sphinx-doc.org/>`__ and the
`reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`__
markup language.

OpenVINO `developer documentation <https://github.com/openvinotoolkit/openvino/tree/master/docs/dev>`__
is available only in markdown in the `docs/dev <https://github.com/openvinotoolkit/openvino/tree/master/docs/dev>`__
folder.

To edit docs, consider using the Editor’s
`guide <https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING_DOCS.md>`__
and contacting `documentation maintainers <https://github.com/orgs/openvinotoolkit/teams/openvino-docs-maintainers>`__,
who will help you with information architecture and formatting, as well as
review, adjust, and merge the PR.

.. rubric:: Review user documentation
:name: review-user-documentation

In most cases, creating a PR is enough to correct a documentation mistake, improve
the language, and update or extend the information. For your convenience, the
top-right panel of most pages includes the “Edit on GitHub” button that will
take you to the source file of the given article.

.. rubric:: Write new content
:name: write-new-content

For more extensive changes in docs, reach out to any of the
`documentation maintainers <https://github.com/orgs/openvinotoolkit/teams/openvino-docs-maintainers>`__
to discuss the new content.


:fas:`bullhorn` Promote and support OpenVINO
############################################

.. rubric:: Popularize OpenVINO
:name: popularize-openvino

Articles, tutorials, blog posts, demos, videos, and any other involvement in the
OpenVINO community is more than welcome. If you discuss or present OpenVINO on
various social platforms, you are raising awareness of the product among AI
enthusiasts and enabling other people to discover the toolkit.

Feel free to reach out to OpenVINO developers if you need help with making a
contribution. You can also contact
`documentation maintainers <https://github.com/orgs/openvinotoolkit/teams/openvino-docs-maintainers>`__
, if you need help with visuals, brand materials, or content creation in general.

.. rubric:: Help other community members
:name: help-community

If you are an experienced OpenVINO user and want to help, you can share your
expertise with the community at any time. Check GitHub
`Discussions <https://github.com/openvinotoolkit/openvino/discussions>`__
and `Issues <https://github.com/openvinotoolkit/openvino/issues>`__ to see if
you can help someone.

.. note::

By contributing to the OpenVINO project, you agree that your contributions
will be licensed under `the terms of the OpenVINO repository <https://github.com/openvinotoolkit/openvino/blob/master/LICENSE>`__.


Additional Resources
#####################

- :doc:`Code Contribution Guide <./contributing/code-contribution-guide>`
- Choose a `"Good First Issue" <https://github.com/orgs/openvinotoolkit/projects/3>`__.
- Learn more about `OpenVINO architecture <https://github.com/openvinotoolkit/openvino/blob/master/src/docs/architecture.md>`__.
- Check out a `blog post on contributing to OpenVINO <https://medium.com/openvino-toolkit/how-to-contribute-to-an-ai-open-source-project-c741f48e009e>`__.
- Visit `Intel DevHub Discord server <https://discord.gg/7pVRxUwdWG>`__ to join
discussions and talk to OpenVINO developers.
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
Code Contribution Guide
=======================

This section will start you off with a few simple steps to begin your code contribution.
If you have any doubts, talk to
`the development team <https://github.com/orgs/openvinotoolkit/teams/openvino-developers/teams>`__.
Remember, your questions help us keep improving OpenVINO.


1. **Choose the issue you want to work on.**

Choose one of the existing `issues <https://github.com/openvinotoolkit/openvino/issues>`__ /
requests. The `“Good First Issue” <https://github.com/orgs/openvinotoolkit/projects/3>`__
board is a good place to start. If you have a new idea for the contribution,
make sure to first create a proper issue, discussion, or feature request.

Here are some of the components you may choose to work on.

.. tab-set::

.. tab-item:: APIs

- `Core C++ API <https://github.com/openvinotoolkit/openvino/tree/master/src/core>`__
- `C API <https://github.com/openvinotoolkit/openvino/tree/master/src/bindings/c>`__
- `Python API <https://github.com/openvinotoolkit/openvino/tree/master/src/bindings/python>`__
- `JavaScript (Node.js) API <https://github.com/openvinotoolkit/openvino/tree/master/src/bindings/js>`__

.. tab-item:: 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>`__
- `TensorFlow Lite Frontend <https://github.com/openvinotoolkit/openvino/tree/master/src/frontends/tensorflow_lite>`__

.. tab-item:: 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>`__
- `NPU plugin <https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/intel_npu>`__
- `Hetero plugin <https://github.com/openvinotoolkit/openvino/blob/master/src/plugins/hetero>`__
- `Template plugin <https://github.com/openvinotoolkit/openvino/tree/master/src/plugins/template>`__

.. tab-item:: Tools

- `Benchmark Tool <https://github.com/openvinotoolkit/openvino/tree/master/tools/benchmark_tool>`__
- `Model Conversion <https://github.com/openvinotoolkit/openvino/tree/master/tools/ovc>`__

2. **Assign yourself to the issue.**

To get assigned to a task, simply leave a comment with the ``.take`` command in
the selected issue. You can always ask OpenVINO developers for guidance,
both technical and organizational:

- assign users in the **“Contact points”** section,
- visit `Intel DevHub Discord server <https://discord.gg/7pVRxUwdWG>`__ to ask
questions in the channel dedicated to **“Good First Issue”** support, or any other.

3. **Build OpenVINO.**

In order to build OpenVINO, follow the
`build instructions for your specific OS <https://github.com/openvinotoolkit/openvino/blob/master/docs/dev/build.md>`__.

Use the local build and the information found in the issue description to
develop your contribution.

4. **Submit a PR with your changes.**

Follow the `guidelines <https://github.com/openvinotoolkit/openvino/blob/master/CONTRIBUTING_PR.md>`__
and do not forget to `link your Pull Request to the issue <https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#manually-linking-a-pull-request-to-an-issue-using-the-pull-request-sidebar>`__
it addresses.

5. **Wait for a review.**

We will make sure to review your **Pull Request** as soon as possible and provide feedback.
You can expect a merge once your changes have been validated with automatic tests and
approved by `maintainers <https://github.com/orgs/openvinotoolkit/teams/openvino-maintainers/teams>`__.


Additional Resources
#####################

- Choose a `“Good First Issue” <https://github.com/orgs/openvinotoolkit/projects/3>`__.
- Learn more about `OpenVINO architecture <https://github.com/openvinotoolkit/openvino/blob/master/src/docs/architecture.md>`__.
- Check out a `blog post on contributing to OpenVINO <https://medium.com/openvino-toolkit/how-to-contribute-to-an-ai-open-source-project-c741f48e009e>`__.
- Visit `Intel DevHub Discord server <https://discord.gg/7pVRxUwdWG>`__ to join discussions and talk to OpenVINO developers.

0 comments on commit f6ca0e7

Please sign in to comment.