Zcash Developers Hub

This is the source repository for the Zcash Developers Hub website: https://zcash.github.io/developers/

For now, this repo hosts the script used to generate ECC's development dependency graph, and a workflow that generates and hosts it.

Setup

This project uses poetry for dependency management: https://python-poetry.org/ It also depends on the Graphviz library; for Debian-based distros, install the graphviz-dev package.

After installing poetry, run poetry install.

The scripts provided by this project require two environment variables:

  • GITHUB_TOKEN: a GitHub API token with permission to read the necessary repositories.
  • ZENHUB_TOKEN: a ZenHub API token.

The DAG script depends upon graphql APIs for github which can be generated using the following example script:

#!/usr/bin/env bash

poetry run python3 -m sgqlc.introspection \
  --exclude-deprecated \
  --exclude-description \
  -H "Authorization: bearer $GITHUB_TOKEN" \
  https://api.github.com/graphql \
  github_schema.json

poetry run sgqlc-codegen schema github_schema.json github_schema.py

Generating DAGs

The zcash-issue-dag.py script supports several configuration options, also supplied as environment variables:

  • DAG_VIEW=[core|wallet|zf]: The DAG to render (default: core).
  • SHOW_MILESTONES=[true|false]: Whether or not to render GitHub milestones as boxes (default: false).
  • SHOW_EPICS=[true|false]: Whether or not to render ZenHub epics as boxes (default: false).
  • INCLUDE_FINISHED=[true|false]: Whether or not to include closed issues with no open blockers (default: false).

Here's an example script for easily running the DAG generator:

#!/usr/bin/env bash

DAG_VIEW=core \
SHOW_MILESTONES=false \
GITHUB_TOKEN=<INSERT> \
ZENHUB_TOKEN=<INSERT> \
poetry run python ./zcash-issue-dag.py

You can find a series of template script files inside the folder template_scripts.