If you notice something is broken, a feature is missing, or you have a request to make the project better, please feel free to submit an issue via the issue tracker. You do not need to have a solution or commit to fixing the problem in order to create an issue. However, if you would like to contribute to the project, we would love to have your contribution!
To contribute to this project, first make a fork of the repo.
Then create a branch on your local fork. This branch should be based off of the develop
branch, NOT the master
branch. Active development is merged into the develop
branch and develop
is merged into master
when
there is a new release or a hotfix to be released on PyPi.
If your change corresponds to an issue your branch name should start with to that issue number. Your name branch should be descriptive.
Example: 13-add-delete-to-owned-book
Once you've made your changes and the unit test suite is passing, create a pull request. Make sure that your pull
request is pointing to develop
and not master
.
This project uses pre-commit hooks to ensure consistent code style throughout the repo. We use black for Python files and Python code within documentation. We use prettier for all other filetypes.
Make sure you've installed all the packages listed in both requirements.txt
and requirements-dev.txt
.
This will install pre-commit for you. Then run pre-commit install
to set up the local pre-commit environment.
Pre-commit will run each time you attempt to commit staged changes. You can run the pre-commit checks at any time
using pre-commit run
.
You will not need your own developer keys to run the unit tests. However, you will need developer keys for the Goodreads API in order to run the integration test suite.
Any changes you make likely shouldn't impact the integration tests, but if for some reason you do need to adjust them
and run them, set your developer keys as GOODREADS_KEY
and GOODREADS_SECRET
environment variables.
You can obtain a Goodreads developer key here.
To run the test suite, make sure you've installed the packages listed in requirements.txt
and
requirements-dev.txt
. Then run pytest --cov=betterreads
Pull requests that cause the repository's overall test coverage to drop below 85% or cause a decrease in coverage of %5 or more will be rejected. Please make sure to update tests in accordance with your changes.
In general, PRs will be acknowledged within one week of receipt. I wish I could say that they would all be reviewed and merge in in this time frame, but sometimes life gets the better of us. I'll do my best.
All contributions and discussions in this repo should abide by the Code of Conduct.