diff --git a/docs/source/guides/development/index.rst b/docs/source/guides/development/index.rst index e606005d..bf6b2c12 100644 --- a/docs/source/guides/development/index.rst +++ b/docs/source/guides/development/index.rst @@ -1,5 +1,64 @@ Development and Contributing ============================ -.. toctree:: - \ No newline at end of file +Requirements +------------ +- python >= 3.10 +- ffmpeg/ffprobe 4.4.5 (test checksums rely on this version) +- make + + +Local Install +------------- +.. tab-set-code:: + + .. code-block:: shell + + pip install -e .[test,lint,docs] + + .. code-block:: zsh + + pip install -e .\[test,lint,docs\] + +Linter +------ +All source code contributed must be formatted to our linter specification. +Run the following to auto-format and check for any issues with your code: + +.. code-block:: shell + + make lint + +Adding Documentation +-------------------- + +Docs can be found in ``ytdl-sub/docs/source/``, and are built using the command: + + +.. code-block:: shell + :caption: Viewable at http://localhost:63342/ytdl-sub/docs/build/html/index.html once built + + make docs + +Some of the documentation is built using doc-strings from the python source code. The above +command will rebuild those as well. + +Testing +------- +Tests are written using pytest. Many of them evaluate checksums of output files to ensure no unintended +changes are introduced to the way ``ytdl-sub`` produces files. This checksum can be inaccurate for +end-to-end tests, but are reliable for integration tests. + +If integration tests are failing, ensure... + +- you're using the correct ffmpeg version +- you are developing on Linux or Mac (have not tested windows yet) +- your local ``ytdl-sub`` dependencies are up-to-date + +IDE Setup +--------- +PyCharm is our preferred IDE. The codebase is simple enough to where it's not required, but +is highly recommended. + +TODO: screenshots of configuration +