Thank you for your interest in contributing to EvoTorch!
Plans and/or ideas for contributing to EvoTorch are welcome! Below we list the contribution guidelines.
If you find any bugs or issues with the project, please report them using the GitHub issue tracker.
We would like to recommend the following steps for getting started.
- Create an issue, explaining what contribution you would like to work on. This will ensure that you are working on something that is needed and will prevent duplication of effort. It also allows us to discuss and plan any implementation details.
- Fork the repository on GitHub.
- Clone the forked repository.
git clone <https://github.com/{your_username}/evotorch.git>
- We recommend creating a new conda environment from our
env.yaml
file, which will contain all development dependencies.
conda env create -f env.yaml
- As an alternative to the
conda env create ...
command shown above, you could also create a new empty working environment (usingconda
orvirtualenv
), and then you could install into this new environment all development dependencies usingpip
:
pip install -e .[dev]
- Install pre-commit hooks. This will ensure you are using our code style.
pre-commit install
Please follow these steps for making changes:
- Make the necessary changes to the code.
- Test your changes to ensure that everything is working properly. We are using pytest for writing and running tests.
- Commit and push your changes.
- Create a pull request (PR) on GitHub to merge your changes into the main repository.
We would be grateful if you could:
- Follow PEP8 + black coding standards (pre-commit will help with that).
- Write clear and concise commit messages.
- Document your code using appropriate inline comments and clear docstrings. In case of a new bigger feature, feel free to recommend an extra doc page.
- Write unit tests for your code and ensure that they pass before submitting a pull request.
- When submitting the PR, provide a clear summary of the purpose of the PR and the features it brings.
While we appreciate the enthusiasm of any potential contributor and we are grateful for the PRs, we cannot guarantee to respond to or accept all PRs. In more details, we can:
- Reject a PR if we evaluate it as not suitable for the project's main repository
- Suggest to move a PR from the main EvoTorch repository to another EvoTorch-related repository
If you have any questions or concerns about contributing to our project, you can also contact us at evotorch@nnaisense.com.
Thank you in advance, and looking forward to improving EvoTorch together! 🙌