Welcome to gameML and thanks for considering to contribute to this repository! Every contribution is welcome, no matter how small or large.
To setup your local development environment, first clone the repository:
git clone https://github.com/rbaltrusch/gameML
Then install the dependencies of the project to be worked on:
cd projects/<projectdir>
python -m pip install -r requirements.txt
If you are using conda, you could setup your development virtual environment using the following command:
conda env update --file environment.yml --name test-env
To run all tests, run the following commands:
cd tests
python run_tests.py --all
All other test options can be listed using:
python run_tests.py -h
Please make sure that all tests still pass after your contribution. If code changes are implemented on your branch, please also commit new tests or update existing tests, if applicable.
After pushing to your branch, you should be able to see whether the existing workflows still pass. Make sure that all workflows that passed before your changes are still passing, otherwise your pull request will need to fix those failures first after being submitted.
To be consistent with coding guidelines, it would be desireable to also set up pre-commit hooks using the pre-commit module:
pip install pre-commit
pre-commit install
All commits will now be checked before being accepted. Some of the tests may automatically fix your files if they fail. These will not be staged and have to be added to the staging index before re-attempting the commit.
As the pre-commit pylint has issues importing external modules, it is acceptable to ignore pylint failures after reviewing that nothing else fails, using:
git commit --no-verify
The general procedure for submitting pull requests that can be easily reviewed and accepted is detailed in the pull request template. Please go through the points specified in the template before submitting your pull request to avoid a lengthy back-and-forth between reviews and refactoring your changes.
If what you are improving on in your pull request is not detailed in any issue, it would be great if you could submit an issue first and then submit your pull request, referencing that issue.
For any questions or feedback, please raise an issue or reach out to me by email: richard@baltrusch.net.