First of all, thank you for 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
We use github to host code, to track issues and feature requests, as well as accept pull requests.
We have a code of conduct that describes how to participate in our community.
Pull requests are the best way to propose changes to the codebase. We actively welcome your pull requests.
This project was written using Poetry for packaging and dependency management. As such, if you want to make your own changes to the code, is suggested that you:
- Install Poetry according to these instructions.
- Clone the repository to your machine
cd
to the repository directory and runpoetry install
to create a virtual-env with dependencies installed.- To activate the virtual-env you can use the command
poetry shell
to access to installed dependencies. Alternatively, you can usepoetry run <command>
to execute the command within the environment. - To run the tests from outside the environment the command to use is
poetry run pytest
. If the environment is activated, runpytest tests/
. By default, these commands run the CPU and GPU tests. To exclude the GPU tests, append the flag-m "not gpu"
. Please add tests if you've added code that can be tested. If you have the hardware, please run all tests, including GPU tests, before submitting changes. - If you've added methods to the public API, make sure that docstrings have been added/updated.
- Upload your changes to a new branch and issue a pull request ✨.
In short, when you submit code changes, your submissions are understood to be under the same Apache v2.0 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.
Good Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- 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)
This document was adapted from the open-source contribution guidelines for Transcriptase which were in turn adapted from Facebook's Draft