👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to AIMarketContest and its packages, which are hosted in the AIMarketContest Organization on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. This document should outline how to get set up for developing this project, and the steps to take to propose a contribution or report a bug.
You should start by forking the repository using the button on Github. You can then clone the repository to your local machine:
git clone [email protected]:your-username/simulation.git
Dependencies can be found in the pyproject.toml
file in the root of the cloned project.
Poetry is used to install all dependencies in a virtual environment.
To make use of this you should:
- Download poetry
- Run
poetry install
to first install all dependencies - Run
poetry shell
to enter the virtual environment with access to the dependencies
We recommend setting up an alias and running all commands from the root directory as follows:
alias aic="python3 src/ai_market_contest/cli/aic.py"
We are happy to help you fix any bugs you find but we ask you to do the following before submitting the issue:
- check open issues to make sure the bug hasn't been reported before
- check closed issues to check if this issue has been resolved before
- give a reproducible example of the bug when filing out the issue
We also welcome suggestions on new features, however, we ask that you are respectful to the contributors as this is a hobby project.
We encourage you to try implementing new features and fixing any bugs in the library. Once you have done this locally you can contribute back to the library by using a pull request. To maintain the quality of the code we would like you to ensure that you do the following:
- Make sure that all existing tests pass with your new changes
- Make sure you have added exhaustive test cases for your new changes
- Format your code using the
black
formatter (runblack .
in the project root) - Sort import using
isort
(runisort .
in the project root)
On submission of the pull request, the automated CI pipeline will run to check the styling and testing of the PR. Once this is passing we will review the changes and merge the PR into main!
We look forward to seeing your contributions to the repository!