Welcome! As a Jupyter project, we follow the Jupyter contributor guide.
We recommend using minikube for local development.
-
Start minikube
minikube start
-
Use the docker daemon inside minikube for building:
eval $(minikube docker-env)
-
Clone the zero-to-jupyterhub repo:
git clone git@github.com:jupyterhub/zero-to-jupyterhub-k8s.git cd zero-to-jupyterhub-k8s
-
Create a virtualenv & install the libraries required for builds to happen:
python3 -m venv . pip install -r dev-requirements.txt
-
Now run
build.py
to build the requisite docker images inside minikube:./build.py
This will build the docker images inside minikube & modify
jupyterhub/values.yaml
with the appropriate values to make the chart installable! -
Install / Upgrade JupyterHub Chart!
helm upgrade --wait --install --namespace=hub hub jupyterhub/ -f minikube-config.yaml
You can easily change the options in
minikube-config.yaml
file to test what you want, or create anotherconfig.yaml
file & pass that as an additional-f config.yaml
file to thehelm upgrade
command. -
Open the URL for your instance of JupyterHub!
minikube service --namespace=hub proxy-public
-
Make the changes you want. You need to re-run step 6 if you changed anything under
images
, but only step 7 if you changed things only underjupyterhub
In order to release a new version of the Helm Chart, make sure to perform each of the following steps:
- Generate a release document. This should follow the structure of previous entries in the CHANGELOG.
- Double-check that there aren't any un-documented breaking changes.
- If applicable, include a section in the CHANGELOG that contains upgrade instructions (usually only applicable for major changes to the code).
- Generate a list of contributors since the latest release. Use the script
in
tools/contributors.py
to list all contributions (anyone who made a commit or a comment) since the latest release. Update the dates in that script, run it, and paste the output into the changelog. For an example, see the v0.5 list of contributors. - ...