Skip to content

Latest commit

 

History

History
49 lines (30 loc) · 2.19 KB

CONTRIBUTING.md

File metadata and controls

49 lines (30 loc) · 2.19 KB

Contributing to Curifactory

Outside help to improving Curifactory is always welcome!

If you find any bugs while using Curifactory, or believe there's a feature that would prove useful, feel free to submit an appropriate issue.

If you have a question, double check that it's not answered in our documentation, and if not feel free to email the developers at [email protected].

Submitting a PR

If you have added a useful feature or fixed a bug, open a new pull request with the changes. When submitting a pull request, please describe what the pull request is addressing and briefly list any significant changes made. If it's in regards to a specific issue, please include the issue number. Please check and follow the formatting conventions below!

Getting Started

First, create a fork of the repository and clone it onto your development machine

It is recommended to do development within a conda environment, so run

conda create -n curifactory python python-graphviz

(python-graphviz is recommended to make experiment graphs show up in output reports.)

All development dependencies are contained in the project root requirements.txt, so intsall those with

pip install -r requirements.txt

We use pre-commit extensively to help keep the repository clean and using consistent formatting conventions (formatting is done primarily with black, flake8, and isort). A PR that doesn't pass the pre-commit CI pipeline won't get merged. To run the checks/formatters locally, initialize pre-commit with

pre-commit init

From that point, any time you commit, it will run all of the checks and formatters. Note that when a formatter changes any file, it marks it as a "failure", but a subsequent git commit should pass that check.

Use the makefile to run various commands without needing to commit first:

  • make style - runs the linters and autoformatters.
  • make pre-commit - runs all pre-commit hooks.
  • make test - runs pytests.