.. _pre-reqs:
==============
Pre-requisites
==============
Smoothly working with the JupyterHubs maintained in this repository has a number
of pre-requisite skills you must possess. The rest of the documentation assumes
you have at least a basic level of these skills, and know how to get help related
to these technologies when necessary.
Basic
=====
These skills let you interact with the repository in a basic manner. This lets you
do most 'self-service' tasks - such as adding admin users, libraries, making changes
to resource allocation, etc. This doesn't give you any skills to debug things when
they break, however.
#. Basic `git `_ & `GitHub `_ skills.
The `Git Book `_ & `GitHub Help `_
are good resources for this.
#. Familiarity with `YAML `_ syntax.
#. Understanding of how packages are installed in the languages we support.
#. Rights to merge changes into this repository on GitHub.
Full
====
In addition to the basic skills, you'll need the following skills to 'fully' work
with this repository. Primarily, you need this to **debug issues when things break** -
since we strive to never have things break in the same way more than twice.
#. Knowledge of our tech stack:
#. `Kubernetes `_
#. `Google Cloud `_
#. `Helm `_
#. `Docker `_
#. `repo2docker `_
#. `Jupyter `_
#. Languages we support: `Python `_ & `R `_
#. Understanding of our JupyterHub distribution, `Zero to JupyterHub `_.
#. Full access to the various cloud providers we use.