Developer’s Guide#

Deepends on Python 3.5+

Getting started#

  1. Quickstart by forking the main repository

  2. Clone your copy of the repository.

  • Using ssh git clone[your user name]/DeepForest.git

  • Using https git clone[your user name]/DeepForest.git

  1. Link or point your cloned copy to the main repository. (I always name it upstream)

  • git remote add upstream

  1. Check or confirm your settings using git remote -v

origin[your user name]/DeepForest.git (fetch)
origin[your user name]/DeepForest.git (push)
upstream (fetch)
upstream (push)
  1. Install the package from the main directory.

Deepforest can be installed using either pip or conda.

Install using Pip

Installing with Pip uses dev_requirements.txt.

$ pip install -r dev_requirements.txt
$ pip install . -U

Install using Conda

Installing with Conda uses environment yaml.

Conda-based installs can be slow. We recommend using mamba to speed them up.

$ conda create -n deepforest python=3
$ conda activate deepforest
$ pip install . -U
  1. Check if the package was installed; please test using the sample code.


Running tests locally#

$ pip install . --upgrade # or python install
$ pytest -v

Checking and fixing code style#

We use yapf for code formatting and style checking.

The easiest way to make sure your code is formatted correctly is to integrate it into your editor. See

You can also run yapf from the command line to cleanup the style in your changes:

yapf -i --recursive deepforest/

If the style tests fail on a pull request, running the above command is the easiest way to fix this.

Testing the Conda Deepforest Build#

We use the conda_recipe/meta.yaml to make sure that the conda build can build the package

$ cd conda_recipe
$ conda build conda_recipe/meta.yaml -c conda-forge -c defaults

Conda staged recipe update#

Update the Conda recipe after every release.

Clone the Weecology staged recipes. Checkout deepforest branch, update the deepforeset/meta.yaml with the new version and the sha256 values. Sha256 values are obtained from the source on PYPI download files using the deepforest-{version-number}.tar.gz

{% set version = "fill new" %}
{% set sha256 = "fill new" %}


We are using Sphinx and Read the Docs for the documentation.

Update Documentation

The documentation is automatically updated for changes in functions. However, the documentation should be updated after the addition of new functions or modules.

Change to the docs directory and use sphinx-apidoc to update the doc’s source. Exclude the tests and documentation.


sphinx-apidoc -f -o ./source ../ ../tests/* ../

The source is the destination folder for the source rst files. ../ is the path to where the deepforest source code is located relative to the doc directory.

Test documentation locally

cd docs # Go to the docs directory and install the current changes.

pip install ../ -U
make clean # Run
make html # Run

Do not commit the build directory after making html.