Skip to content

Latest commit

 

History

History
87 lines (63 loc) · 2.69 KB

CONTRIBUTING.md

File metadata and controls

87 lines (63 loc) · 2.69 KB

Contribution guide

Issues

We use GitHub issues for bug reports and feature requests.

Step-by-step guide

New feature
  1. Make an issue with your feature description;
  2. We shall discuss the design and its implementation details;
  3. Once we agree that the plan looks good, go ahead and implement it.
Bugfix
  1. Goto GitHub issues;
  2. Pick an issue and comment on the task that you want to work on this feature;
  3. If you need more context on a specific issue, please ask, and we will discuss the details.

Once you finish implementing a feature or bugfix, please send a Pull Request.

If you are not familiar with creating a Pull Request, here are some guides:

Contribution best practices
  1. Install pre-commit hook:
pip install pre-commit
  1. Break your work into small, single-purpose updates if possible. It's much harder to merge in a large change with a lot of disjoint features.
  2. Submit the update as a GitHub pull request against the master branch.
  3. Make sure that you provide docstrings for all your new methods and classes
  4. Make sure that your code passes the unit tests.
  5. Add new unit tests for your code.

Codestyle

Do not forget to check the codestyle for your PR with

make codestyle

and add new requirements in the [isort] section of a setup.cfg file.

Make sure to have your python packages complied with requirements/requirements.txt and requirements/requirements-dev.txt to get codestyle run clean.

Documentation

Catalyst uses Google style for formatting docstrings. Length of line inside docstrings block must be limited to 80 characters to fit into Jupyter documentation popups.

Check that you have written working docs

make check-docs

The command requires Sphinx and some sphinx-specific libraries. If you don't want to install them, you may make a catalyst-dev container

make docker-dev
# and then run test
docker run \
    -v `pwd`/:/workspace/ \
    catalyst-dev:latest \
    bash -c "make check-docs"

To build docs add environment variable REMOVE_BUILDS=0

REMOVE_BUILDS=0 make check-docs

or through docker

docker run \
    -v `pwd`/:/workspace/ \
    catalyst-dev:latest \
    bash -c "REMOVE_BUILDS=0 make check-docs"

The docs will be stored in builds/ folder.