Skip to content

Latest commit

 

History

History
56 lines (36 loc) · 2.4 KB

CONTRIBUTING.md

File metadata and controls

56 lines (36 loc) · 2.4 KB

Gym-preCICE Contribution Guidelines

Development installation

To get the development installation with all the necessary dependencies, please run the following:

git clone https://github.com/gymprecice/gymprecice.git
cd gymprecice
pip install -e .
pip install -e .[dev]
pre-commit install

Development Process

Features and Issues

We use GitHub issues to track public bugs. Please ensure your description is clear and has sufficient instructions to reproduce the issue.

Please avoid using the issue tracker for questions or debugging personal forks. Instead please use our tutorials discussions forum

Please note that if you have any contributions concerning the Gym-preCICE adapter, it should be submitted to our gymprecice repository.

We accept the following types of contributions:

  • Bug reports
  • New environment requests
  • Pull requests for bug fixes
  • Documentation improvements
  • Performance improvements/issues

Testing

For pull requests, the project runs a number of tests for the whole project using pytest.

  • To check all test units locally, run:
pytest ./tests

Formatting, Linting, and Type Checking

Gym-preCICE uses pre-commit to run several checks at every new commit. This enforces a common code style across the repository. We use black for code formatting, flake8 for linting, pyright for type checking, and Pydocstyle to check if all new functions/classes/modules follow the google docstring style.

Please follow the development installation instructions to install the necessary dependencies.

Note: You might have to run pre-commit run --all-files a few times since formatting tool formats the code initially and fails the first time.

Note: We do not check or enforce format/style/type/docstring for Python scripts that define controllers (e.g. ppo_controller.py) in our tutorials.

License

By contributing to Gym-preCICE and its tutorials, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.