Contributing to DIG

Thank you very much for your interest in contributing to DIG: Dive into Graphs! Any forms of contributions are welcomed, including but not limited to the following.

Overview of DIG

Before contributing, it is helpful to have an understanding of the general structure of DIG. Namely, DIG is not one single graph deep learning model; instead, it is a collection of datasets, algorithms, and evaluation metrics across different topics. The objective of DIG is to provide a unified testbed for higher level, research-oriented graph deep learning tasks, which enables researchers to benchmark their work and implement new ideas.

Structurally, DIG is currently divided into four topics: Graph Generation, Self-supervised Learning on Graphs, Explainability of Graph Neural Networks, and Deep Learning on 3D Graphs.

Specifically, every directory under the /dig sources root contains a directory of algorithms (method), a directory of datasets (dataset), a directory of metrics (evaluation), and a directory of utilities (utils) if applicable.

Reporting issues

We use the GitHub issues tracker to manage any issues, questions, and reports. Please use the label feature to indicate what topic your issue concerns.

Contributing to code

Before you plan to fix buges, add algorithms, add datasets, add metrics, and add utilities, please firstly open an issue to describe the features you plan to add. We can discuss it and achieve an agreement before you start coding, which can save lots of efforts.

We explain the preferred GitHub workflow as follows.

  1. Fork the DIG repository by clicking “Fork” in the top right of the screen at this URL.

  2. Uninstall existing DIG (if applicable):

    pip uninstall dive-into-graphs
  3. Clone your fork:

    git clone[YOUR_GITHUB_USERNAME]/DIG.git
    cd DIG
  4. Install DIG in develop mode:

    pip install -e .


    This develop mode allows you to edit your code, and have the changes take effect immediately. That means you don’t need to reinstall DIG after you make modifications.

  5. Once the contributions are ready, push them to your forked repository.

  6. Navigate to your fork on GitHub, and create a pull request. The pull request will be reviewed by a member familiar with the topic.

Improving documentations

  1. Install sphinx, sphinx_rtd_theme, and autodocsumm:

    pip install sphinx
    pip install sphinx-rtd-theme
    pip install git+
  2. All the documentation source files are in DIG/docs/source/. Find the .rst file you want to contribute and write the documentation. The language we use is reStructuredText.


    Most documentations should be written in the code as comments, which will be converted to docs automatically.

  3. Make your html locally.

    cd docs
    make html
  4. Then, you can preview the documentation locally by opening DIG/docs/biuld/html/index.html.

  5. Before pushing to the GitHub repository, please clean the make.
    cd docs
    make clean
  6. Push the contribution to your forked repository, and then submit a pull request.