developers/README.md

51 lines
2.1 KiB
Markdown

# 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
`libgraphviz-dev` package.
After installing `poetry`, run `poetry install`.
### Authorization Tokens
The scripts provided by this project require two files:
- `GITHUB_TOKEN`: a GitHub API token with permission to read the necessary repositories.
- `ZENHUB_TOKEN`: a ZenHub REST API token. (Not a GraphQL token.)
After generating each token, paste the literal contents into the associated file. There is a
`.gitignore` which ignores these files to ensure they are not committed. Be careful to avoid
that editor temporary files or any copies or renames of these files aren't committed.
You can generate a GitHub token with [this url](https://github.com/settings/tokens/new). This
token should not have any excess authority; it only needs public read access! Make sure all of
those extra capability checkboxes are unchecked.
The DAG script depends upon GraphQL APIs for GitHub which can be generated using
`./gen-schema.sh`.
## Generating DAGs
The simplest way to generate one or more DAGs is to use `./gen-dag.sh` script. This takes
a list of DAGs to render as arguments (default: `core wallet tfl halo2 zf`).
Alternatively, the `zcash-issue-dag.py` script supports several configuration options
supplied as environment variables:
- `DAG_VIEW=[core|halo2|tfl|wallet|wallet-ios|wallet-android|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`).
Example command:
```
DAG_VIEW=core SHOW_MILESTONES=false poetry run python ./zcash-issue-dag.py
```