Thank you for considering contributing to Explainit!
We welcome both code and non-code contributions. You can:
- Report a bug
- Improve documentation
- Submit a bug fix
- Propose a new feature or improvement
- Contribute a new feature or improvement
- Test Explainit
Here is the general workflow:
- Fork the Explainit repository
- Clone the repository
- Make the changes and commit them
- Push the branch to your local fork
- Make sure that all the tests are passing successfully
- Submit a Pull Request with described changes
- Explainit is under active development.
- We are happy to receive a Pull Request for bug fixes or new functions for any section of the app. If you need help or guidance, you can open an Issue first.
- We highly recommend that you open an issue, describe your contribution, share all needed information there and link it to a Pull Request.
- We evaluate Pull Requests taking into account: code architecture and quality, code style, comments & docstrings and coverage by tests.
git clone https://github.com/explainit/explainit.git
cd /path/to/explainit_repo
python3 -m venv venv
. venv/bin/activate
cd C:\path\to\explainit_repo
py -m venv venv
.\venv\Scripts\activate
To use the cloned version in the virtual environment as an app, you need to install the requirements in the editable mode:
cd /path/to/explainit_repo
pip install -e .[dev]
cd C:\path\to\explainit_repo
pip install -e .[dev]
Conforms to Black code style
black explainit
We use flake8 for code style checks.
flake8 explainit
We use mypy for object types checks.
# if you are running for the first time, use `mypy --install-types` instead
mypy
Currently, the project is not fully covered by unit tests, but we are going to add more soon and expect to receive PRs with some unit tests 🙂
pytest -v
⚠️ Warning: using the default integrations with IDEs like VSCode or IntelliJ will not sign commits. When you submit a PR, you'll have to re-sign commits to pass the DCO check.
Use git signoffs to sign your commits. See https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification for details.
Then, you can sign off commits with the -s
flag:
git commit -s -m "My first commit"
GPG-signing commits with -S is optional.