#################################
Contributing to MKVBatchMultiplex
#################################

We love your input! We want to make contributing to this project as easy and
transparent as possible, whether it's:

- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer

The Project is Develop with Github
##################################

Github is used to host code, to track issues and feature requests, as well as
accept pull requests.

`Github Flow`_ is used, So All Code Changes Happen Through Pull Requests
########################################################################

Pull requests are the best way to propose changes to the codebase
(`Github Flow`_ is used). Pull requests are welcome:

  #. Fork the repo and create your branch from `master`.
  #. If you've added code that should be tested, add tests.
  #. If you've changed APIs, update the documentation.
  #. Ensure the test suite passes.
  #. Submit test folder listing with files and files description to
     replicate tests.
  #. Make sure your code lints (`pylint`_).
  #. Code is formatted using `black`_.

Any contributions you make will be understood under the MIT Software License
############################################################################

In short, when you submit code changes, your submissions are understood to be
under the same `MIT License`_ that covers the project. Feel free to contact the
maintainers if that's a concern.

Report bugs using Github's `issues`_ We use GitHub issues to track public bugs.
###############################################################################

Report a bug by **opening a new issue**; it's that easy!

Write bug reports with detail, background, and sample code
##########################################################

**Good Bug Reports** tend to have:

- A quick summary and/or background
- Steps to reproduce

  - Be specific!
  - Program version.
  - Copy of command line.
  - List of files in the directories used. This is better achieved using the
    **<Check Files>** button and including the log file found in
    HOMEDIRECTORY/.MKVBatchMultiplex/MKVBatchMultiplex.log.
  - Structure of the files, list of tracks type and order in media files.
  - If tracks are raw please specify the type if it cannot be deduced by file
    extension.

- Include a log file.
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you
  tried that didn't work).  Also the activate and attach log file.

Use a Consistent Coding Style
#############################

The code is formatted using `black`_ and for linting pylint_ is used.

License
#######

By contributing, you agree that your contributions will be licensed under its
`MIT License`_.

References
#############

This document was adapted from the open-source contribution guidelines for
`Facebook's Draft`_

.. Hyperlinks.

.. _`Github Flow`: https://guides.github.com/introduction/flow/index.html
.. _`black`: https://black.readthedocs.io/en/stable/
.. _`pylint`: https://www.pylint.org/
.. _`issues`: https://github.com/akai10tsuki/mkvbatchmultiplex/issues
.. _`MIT License`: http://choosealicense.com/licenses/mit/
.. _`Facebook's Draft`: https://github.com/facebook/draft-js/blob/a9316a723f9e918afde44dea68b5f9f39b7d9b00/CONTRIBUTING.md
