Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update team membership docs and refactor #517

Merged
merged 5 commits into from
May 25, 2022
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
_build
docs/team/contributors-*.txt
docs/_data/contributors/contributors-jupyterhub.txt
.ipynb_checkpoints
.vscode
67 changes: 5 additions & 62 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## The JupyterHub team compass
# The JupyterHub team compass

This meta-repository is meant to help us organize ourselves across the many organizations,
projects, and use-cases in the JupyterHub community. It's meant to make the project more
Expand All @@ -8,72 +8,15 @@ please reach out!
Most of the Team Compass lives in this website:

* [The JupyterHub Team Compass](http://jupyterhub-team-compass.readthedocs.io/)

Please familiarise yourself with the [Code of Conduct](https://jupyter.org/conduct/).

## Team information

[![team website](https://img.shields.io/badge/team-website-orange.svg)](https://jupyterhub-team-compass.readthedocs.io/en/latest/)
[![monthly agenda](https://img.shields.io/badge/agenda-this%20month-blue.svg)](https://hackmd.io/@sgibson91/hubs-team-meeting)

**Documentation status and codecov for several repositories**

The JupyterHub community tries to keep its documentation strong and its code coverage for tests relatively high. A **great** way
to contribute is to help improve either of these things. Below is a table of relevant information
and links for each of these.

|Name | Documentation | Code Coverage | Changelogs
| :---: | :---: | :---: | :---:
JupyterHub |[![Documentation Status](https://readthedocs.org/projects/jupyterhub/badge/?version=latest)](https://jupyterhub.readthedocs.org/en/latest/?badge=latest) | [![codecov](https://codecov.io/gh/jupyterhub/jupyterhub/branch/master/graph/badge.svg)](https://codecov.io/gh/jupyterhub/jupyterhub) |[changelog](https://github.com/jupyterhub/jupyterhub/blob/master/docs/source/changelog.md)
KubeSpawner | [![Documentation Status](http://readthedocs.org/projects/jupyterhub-kubespawner/badge/?version=latest)](https://jupyterhub-kubespawner.readthedocs.io/en/latest/?badge=latest) | [![codecov](https://codecov.io/gh/jupyterhub/kubespawner/branch/master/graph/badge.svg)](https://codecov.io/gh/jupyterhub/kubespawner) | [changelog](https://jupyterhub-kubespawner.readthedocs.io/en/latest/changelog.html)
Z2JH |[![Documentation Status](https://readthedocs.org/projects/zero-to-jupyterhub/badge/?version=latest)](https://zero-to-jupyterhub.readthedocs.org/en/latest/?badge=latest) | |[changelog](https://github.com/jupyterhub/zero-to-jupyterhub-k8s/blob/master/CHANGELOG.md)
TLJH | [![Documentation Status](https://readthedocs.org/projects/the-littlest-jupyterhub/badge/?version=latest)](https://the-littlest-jupyterhub.readthedocs.org/en/latest/?badge=latest) | [![codecov](https://codecov.io/gh/jupyterhub/the-littlest-jupyterhub/branch/master/graph/badge.svg)](https://codecov.io/gh/jupyterhub/the-littlest-jupyterhub) |
BinderHub | [![Documentation Status](https://readthedocs.org/projects/binderhub/badge/?version=latest)](https://binderhub.readthedocs.org/en/latest/?badge=latest) | [![codecov](https://codecov.io/gh/jupyterhub/binderhub/branch/master/graph/badge.svg)](https://codecov.io/gh/jupyterhub/binderhub) | [changelog](https://github.com/jupyterhub/binderhub/blob/master/CHANGES.md)
repo2docker | [![Documentation Status](https://readthedocs.org/projects/repo2docker/badge/?version=latest)](https://repo2docker.readthedocs.org/en/latest/?badge=latest) | [![codecov](https://codecov.io/gh/jupyter/repo2docker/branch/master/graph/badge.svg)](https://codecov.io/gh/jupyter/repo2docker) | [changelog](https://repo2docker.readthedocs.io/en/latest/changelog.html)
binder docs | [![Documentation Status](https://readthedocs.org/projects/mybinder/badge/?version=latest)](https://mybinder.readthedocs.org/en/latest/?badge=latest) | |
team compass | [![Documentation Status](http://readthedocs.org/projects/jupyterhub-team-compass/badge/?version=latest)](http://jupyterhub-team-compass.readthedocs.io/en/latest/?badge=latest) | |
mybinder.org SRE | [![Documentation Status](http://readthedocs.org/projects/mybinder-sre/badge/?version=latest)](https://mybinder-sre.readthedocs.io/en/latest/?badge=latest) | |


* Please familiarise yourself with the [Code of Conduct](https://jupyter.org/governance/conduct/code_of_conduct.html).

---

## Planning and operations

Currently, the JupyterHub team is keeping track of the goings-on in the community
via the following main channels:
## Team Meetings

* A monthly team meeting on the third Tuesday of every month
* Issues / PRs in the JupyterHub repositories
* The JupyterHub / Binder Gitter channels
See [our team meetings page](https://jupyterhub-team-compass.readthedocs.io/en/latest/meetings.html) for information about team meetings and how to join.

*Note: any member of the community is welcome to participate in any of the process around discussion, archiving, and planning team meetings. Participate in whatever way works for you! Input is welcome!*

### Team Meetings

**The JupyterHub Team meetings occur on the 3rd Tuesday of every month,
alternating at UTC 07:00 ([your timezone](http://arewemeetingyet.com/UTC/2019-08-15/07:00/q/Binder%20and%20JupyterHub%20team%20meeting))
and UTC 17:00 ([your timezone](http://arewemeetingyet.com/UTC/2019-07-18/17:00/q/Binder%20and%20JupyterHub%20team%20meeting))**.
These are open to the community and we'd love for you to join!

Here are some useful links:

* [**Videoconference link**](https://calpoly.zoom.us/my/jupyter) provides access to the meeting.
* [**The monthly meeting archive**](http://jupyterhub-team-compass.readthedocs.io/en/latest/monthly-meeting/monthly_report_index.html) has the contents / summary of each meeting.
* [**The monthly meeting agenda**](https://hackmd.io/u2ghJJUCRWK-zRidCFid_Q?view) will be filled in during the meeting.
* [**The meeting agenda template**](https://hackmd.io/yLEoYgH8TcelS_EaXKJ6Hg?both) is used to structure the conversation each month.

### The JupyterHub and Binder core teams
## Team Membership

The list of "core" members of the JupyterHub and Binder projects can be found on
[the team-compass website](https://jupyterhub-team-compass.readthedocs.io/en/latest/team.html).

### Weekly Team Reports

> :rotating_light: The weekly team reports have been deprecated in favour of the monthly team meeting :rotating_light:

The currently-active team report [exists in a HackMD](https://hackmd.io/MYNgpgHATAZgrAIwLQAYCMwAsTNhRJAThBQGYkoATEw0gQxgkroHYg==?view). Each week, team reports
are archived in the [weekly reports archive](http://jupyterhub-team-compass.readthedocs.io/en/latest/weekly-reports/weekly_report_index.html). Then, a new report is created with the [team report template](http://jupyterhub-team-compass.readthedocs.io/en/latest/weekly-reports/team-meeting.html).

* [Current week team report](https://hackmd.io/MYNgpgHATAZgrAIwLQAYCMwAsTNhRJAThBQGYkoATEw0gQxgkroHYg==?view)
* [Weekly report archive](https://github.com/jupyterhub/team-compass/tree/master/docs/weekly-reports)
9 changes: 8 additions & 1 deletion docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,11 @@ help:
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)


live:
sphinx-autobuild \
--ignore */_data/contributors/contributors-jupyterhub.txt \
--ignore */_build/ \
. _build/html
Original file line number Diff line number Diff line change
@@ -1,114 +1,113 @@
# Use ALPHABETICAL ORDER please :-)
- name: Matthias Busonnier
handle: "@carreau"
handle: "carreau"
affiliation: UC Merced
contributions: code,infra
team: blue
focus: jupyterhub
status: active
last-check-in: 2019-10

- name: Georgiana Dolocan
handle: "@GeorgianaElena"
handle: "GeorgianaElena"
affiliation: Simula
contributions: code
team: blue
focus: jupyterhub
status: active
last-check-in: 2019-10

- name: Jessica Forde
handle: "@jzf2101"
handle: "jzf2101"
affiliation: UC Berkeley
contributions: doc
team: red
focus: jupyterhub, binder
status: active
last-check-in: 2019-10

- name: Sarah Gibson
handle: "@sgibson91"
handle: "sgibson91"
affiliation: 2i2c
contributions: question,doc,tutorial,infra,talk,test
team: red
focus: jupyterhub, binder
status: active
last-check-in: 2019-10

- name: Tim Head
handle: "@betatim"
handle: "betatim"
affiliation: Wild Tree Tech
contributions: bizdev, code, fundingFinding, ideas, talk, infra
team: red
focus: jupyterhub, binder
status: active
last-check-in: 2019-12

- name: Chris Holdgraf
handle: "@choldgraf"
handle: "choldgraf"
affiliation: 2i2c
contributions: code,ideas,doc,question
team: red
focus: jupyterhub, binder
status: active
last-check-in: 2019-10

- name: Simon Li
handle: "@manics"
handle: "manics"
affiliation: Open Microscopy Environment, University of Dundee
contributions: code,question
team: blue
focus: jupyterhub
status: active
last-check-in: 2019-11

- name: M Pacer
handle: "@mpacer"
handle: "mpacer"
affiliation: Netflix
contributions: ""
team: blue
focus: binder
status: active
last-check-in: 2019-10

- name: Yuvi Panda
handle: "@yuvipanda"
handle: "yuvipanda"
affiliation: UC Berkeley
contributions: "code,infra"
team: blue
focus: jupyterhub
status: active
last-check-in: 2019-10

- name: Min Ragan-Kelley
handle: "@minrk"
handle: "minrk"
affiliation: Simula
contributions: code,infra
team: lead
focus: jupyterhub, binder
status: active
last-check-in: 2019-10

- name: Erik Sundell
handle: "@consideRatio"
handle: "consideRatio"
affiliation: Sandvik CODE
contributions: code,infra
team: blue
focus: jupyterhub, binder
status: active
last-check-in: 2019-10

- name: Carol Willing
handle: "@willingc"
handle: "willingc"
affiliation: Project Jupyter
contributions: Python,Community
team: red
focus: jupyterhub, binder
status: active
last-check-in: 2019-10


# Green team members at the end, also alphabetical
- name: Lindsey Heagy
handle: "@lheagy"
handle: "lheagy"
affiliation: UC Berkeley
contributions: ideas,example
team: green
focus: binder
status: inactive
last-check-in: 2019-10

- name: Zach Sailer
handle: "@Zsailer"
handle: "Zsailer"
affiliation: Project Jupyter
contributions: code,ideas,question
team: green
focus: binder
status: inactive
last-check-in: 2019-10
66 changes: 66 additions & 0 deletions docs/_data/contributors/gen_contributors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
"""Generate HTML Contributors tables for team pages
"""
import pandas as pd
import os
from pathlib import Path
from yaml import safe_load
from textwrap import dedent, indent

# Load data that we'll use for the table
path_data = Path(__file__).parent
path_contributor_data = path_data / "contributors-jupyterhub.yaml"
contributors = safe_load(path_contributor_data.read_text())
keyvals = pd.read_csv(path_data / "contributor_key.csv", index_col=0)

snippet = dedent("""
.. grid:: 1 2 3 3
:gutter: 3
:class-container: contributor-grid
""")

inactive_contributors = []
for contributor in contributors:
if contributor["status"] == "inactive":
inactive_contributors.append(contributor)
continue

# Pull out the contribution image
contributions = []
for contribution in contributor["contributions"].split(','):
if contribution in keyvals.index:
contribution = keyvals.loc[contribution]["image"]
contributions.append(contribution)
contributions = ", ".join(contributions)


# Create the card rST. Needs to be indented underneath its parent
snippet += indent(dedent(f"""

.. grid-item-card::
:class-header: bg-light
:text-align: center
:link: https://github.com/{contributor["handle"]}

**{contributor["name"]}**

^^^

.. image:: https://github.com/{contributor["handle"]}.png?size=125

**@{contributor["handle"]}**

{contributions}

+++
{contributor["affiliation"]}
"""), " ")

# Add text about inactive contributors

snippet += "\n**Inactive Contributors**:\n\n"
for ii, contributor in enumerate(inactive_contributors):
inactive_contributors[ii] = f'**{contributor["name"]}** `(@{contributor["handle"]}) <https://github.com/{contributor["handle"]}>`_'
snippet += ", ".join(inactive_contributors)

# Write a snippet that we will include in our docs
path_contributor_data.with_suffix(".txt").write_text(snippet)
60 changes: 2 additions & 58 deletions docs/_static/custom.css
Original file line number Diff line number Diff line change
@@ -1,59 +1,3 @@
.contrib_entry p {
margin: 2px;
text-align: center;
}

p.contrib_affiliation {
font-size: .7em;
font-weight: bold;
}

.contribs_text {
font-size: .8em;
}

.contrib_entry p.contribs {
float: left;
margin: 0px;
}

td.contrib_entry {
width: 100px;
height: 200px;
padding: 1em !important;
vertical-align: top;
text-align: center;
}

td.contrib_entry a {
text-decoration: none;
}

td.contrib_entry img {
max-width: 120px;
}

table.contributors {
margin: 0px auto;
}

/* Team colors */
p.team {
font-size: .8em;
}

p.team-blue {
color: blue;
}

p.team-red {
color: red;
}

p.team-green {
color: green;
}

p.team-lead {
font-weight: bold;
.contributor-grid .sd-card-text {
margin-bottom: 0;
}
Loading