contributing.rst 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. :github_url: https://github.com/gopro/OpenGoPro/tree/main/demos/python/sdk_wireless_camera_control
  2. ============
  3. Contributing
  4. ============
  5. Contributions are welcome, are greatly appreciated, and credit will always be given.
  6. Types of Contributions
  7. ----------------------
  8. Report Bugs
  9. ~~~~~~~~~~~
  10. Report bugs at https://github.com/gopro/OpenGoPro/issues.
  11. If you are reporting a bug, please include:
  12. * Your operating system name and version.
  13. * Any details about your local setup that might be helpful in troubleshooting.
  14. * Detailed steps to reproduce the bug.
  15. Fix Bugs
  16. ~~~~~~~~
  17. Look through the GitHub issues for bugs. Anything tagged with "bug"
  18. and "help wanted" is open to whoever wants to implement it.
  19. Implement Features
  20. ~~~~~~~~~~~~~~~~~~
  21. Look through the GitHub issues for features. Anything tagged with "enhancement"
  22. and "help wanted" is open to whoever wants to implement it.
  23. Write Documentation
  24. ~~~~~~~~~~~~~~~~~~~
  25. Open GoPro could always use more documentation, whether as part of the
  26. official Open GoPro docs, in docstrings, or even on the web in blog posts,
  27. articles, and such.
  28. Submit Feedback
  29. ~~~~~~~~~~~~~~~
  30. The best way to send feedback is to file an issue at
  31. https://github.com/gopro/OpenGoPro/issues.
  32. If you are proposing a feature:
  33. * Explain in detail how it would work.
  34. * Keep the scope as narrow as possible, to make it easier to implement.
  35. Get Started!
  36. ------------
  37. Ready to contribute? Here's how to set up Open GoPro for local development.
  38. Minimal Requirements
  39. ~~~~~~~~~~~~~~~~~~~~
  40. * Python (>= 3.10, < 3.13)
  41. * `Poetry <https://python-poetry.org/docs/#installation>`_ : Needed to install dependencies / development tasks
  42. Additional Optional Requirements:
  43. * `protoc <https://grpc.io/docs/protoc-installation/>`_ to build protobuf python files from .proto's
  44. * `graphviz <https://graphviz.org/>`_ to build diagrams in sphinx
  45. Steps
  46. ~~~~~
  47. #. Fork the Open GoPro repo on GitHub.
  48. #. Clone your fork locally:
  49. .. code-block:: console
  50. $ git clone git@github.com:your_name_here/OpenGoPro.git
  51. #. Enter the sdk_wireless_camera_control directory:
  52. .. code-block:: console
  53. $ cd OpenGoPro/demos/python/sdk_wireless_camera_control
  54. #. Create a branch for local development, originating from the `main` branch:
  55. .. code-block:: console
  56. $ git checkout -b name-of-your-bugfix-or-feature main
  57. #. Install your local copy into a virtual environment.
  58. .. code-block:: console
  59. $ poetry install --all-extras
  60. #. Make your changes locally. When you're done making changes, check that your changes are:
  61. * formatted
  62. * pass type checking
  63. * pass linting
  64. * pass unit tests
  65. * pass docstring tests
  66. .. code-block:: console
  67. $ poetry run poe all
  68. Note that each of these checks can be run individually. For more information, see:
  69. .. code-block:: console
  70. $ poetry run poe --help
  71. #. Commit your changes, push your branch to GitHub, and submit a pull request into `main`. Once the Pull Request is made,
  72. Github Actions will test the changes across multiple OS's and Python versions.
  73. Pull Request Guidelines
  74. -----------------------
  75. Before you submit a pull request, check that it meets these guidelines:
  76. #. If the pull request adds functionality, the docs should be updated. The docs can be build locally via:
  77. .. code-block:: console
  78. $ poetry run poe docs
  79. #. Modify the ``CHANGELOG.rst``.
  80. #. The pull request should work for Python 3.10 - 3.13 on the following platforms:
  81. - Windows 10, version 16299 (Fall Creators Update) and greater
  82. - Linux distributions with BlueZ >= 5.43
  83. - OS X / macOS >= 10.11
  84. #. Feel free to add your name as a contributor to the ``AUTHORS.rst`` file!