Contributing to AAQ
Thank you for your interest in contributing to AAQ!
AAQ is an open source project started by data scientists at IDinsight and sponsored by
Google.org. Everyone is welcome to contribute!
Note
If you want to set up the complete development environment for AAQ first, you can follow the setup instructions here. Otherwise, this page provides general guidelines on how to contribute to the project with a minimal setup.
Pull requests guide
This section shows you how to raise a pull request to the project.
Make a fork
- Fork the project repository by clicking on the "Fork" button.
-
Clone the repo using:
git clone git@github.com:<your GitHub handle>/ask-a-question.git -
Navigate to the project directory.
cd ask-a-question
Install prerequisites
Install conda.
Setup your virtual Python environment
You can automatically create a ready-to-go aaq conda environment with:
make fresh-env
conda activate aaq
If you encounter errors while installing psycopg2, see here for
troubleshooting.
If you would like to set up your Python environment manually, you can follow the steps here.
Make your changes
-
Create a
featurebranch for your development changes:git checkout -b feature -
Run
mypywithmypy core_backend/app(1) -
Then
git addandgit commityour changes:git add modified_files git commit -
And then push the changes to your fork in GitHub
git push -u origin feature -
Go to the GitHub web page of your fork of the AAQ repo. Click the
Pull requestbutton to send your changes to the project’s maintainers for review. This will send a notification to the committers.
pre-commitruns in its own virtual environment. Sincemypyneeds all the packages installed, this would mean keeping a whole separate copy of your environment just for it. That's too bulky so the pre-commit only checks a few high-level typing things. You still need to runmypydirectly to catch all the typing issues. If you forget, GitHub Actions 'Linting' workflow will pick up all the mypy errors.
Next steps
If you haven't already, see Setup on how to set up the complete development environment for AAQ. Otherwise, you can check out how to test the AAQ codebase.