Contributing
Anyone is welcome to contribute fixes and enhancements to this project. We use:
tox to run the test suite and linters for the Python API
Any pull request that modifies module code and has new functionality that does not include tests will be blocked until tests have been written for it.
Help Wanted
The following areas are where help is currently needed:
Creating a test suite for the React frontend
Filling out the test suite for the Python API to get near total coverage
Various bug fixes and new features
Contributors
A big “Thank You!” to all those who have contributed to Gemini and to the Gemini Documentation.
Testing Python
Once you have written your new feature into the API, and have created a test for it, please run the test suite and fix any lint. In order to run tests, you must have tox installed:
pip install tox
Then you can run both the tests and the linting by simply typing from the
<gemini-repo>/src/api directory:
tox
Tox will create a virtual environment specifically for testing, so if you have added
requirements, ensure that they are listed in the <gemini-repo>/src/api/requirements.txt
file.
If it is a requirement only for testing, it should be listed in the appropriate section
of the <gemini-repo>/src/api/tox.ini file.
Note
Please, ensure that your tests pass before submitting a PR.
Documentation
You do not need to create a virtual environment with all of the Gemini dependencies
to update this documentation. It is sufficient to install the requirements listed in the
<docs-repo>/requirements-docs.txt file, and make your documentation changes. To preview
the documentation, run:
make html
and then open the index file at <docs-repo>/_build/index.html in a browser to verify that
your changes are working before you submit a PR for this documentation.