We use GitHub issues for bug reports and feature requests.
- Make an issue with your feature description;
- We shall discuss the design and its implementation details;
- Once we agree that the plan looks good, go ahead and implement it.
- Goto GitHub issues;
- Pick an issue and comment on the task that you want to work on this feature;
- 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:
- http://stackoverflow.com/questions/14680711/how-to-do-a-github-pull-request
- https://help.github.com/articles/creating-a-pull-request/
- Install pre-commit hook:
pip install pre-commit
- 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.
- Submit the update as a GitHub pull request against the
master
branch. - Make sure that you provide docstrings for all your new methods and classes
- Make sure that your code passes the unit tests.
- Add new unit tests for your code.
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.
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.
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"
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.