Skip to content

Commit

Permalink
Add supporters page (#262)
Browse files Browse the repository at this point in the history
  • Loading branch information
choldgraf committed May 19, 2022
1 parent 444bc6a commit b989584
Show file tree
Hide file tree
Showing 18 changed files with 308 additions and 260 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
doc/_build
doc/using/config_files.rst
doc/howto/user_interface.rst
doc/howto/lab_workspaces.rst
doc/howto/languages.rst
doc/_data/snippets
doc/_data/pages
.ipynb_checkpoints
.vscode
9 changes: 8 additions & 1 deletion doc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,11 @@ help:
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

live:
sphinx-autobuild --ignore */.github/* --ignore */federation/data-federation.txt --ignore */howto/languages.rst --ignore */howto/user_interface.rst --ignore */howto/lab_workspaces.rst --ignore */using/config_files.rst . _build/html/
sphinx-autobuild \
--ignore */.github/* \
--ignore */_data/* \
--ignore */howto/languages.rst \
--ignore */howto/user_interface.rst \
--ignore */howto/lab_workspaces.rst \
--ignore */using/config_files.rst \
. _build/html/
56 changes: 56 additions & 0 deletions doc/_data/scripts/gen_federation_md.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
"""Generate snippets of markdown for various types of supporters.
These are meant to be inserted into our docs.
"""
from pathlib import Path
from yaml import safe_load

# Code to generate the HTML grid
template_binderhub = """
```{{grid-item-card}}
:text-align: center
:class-header: bg-light
:class-body: sd-p-4 sd-m-auto
:class-footer: bg-light
:text-align: center
:link: {URL_BINDERHUB}
**{BINDERHUB_SUBDOMAIN}**
^^^
<img src="{LOGO}" style="max-height: 5em; min-height: 2em;" />
```
"""

# Read from our YAML data file
path_root = Path(__file__).parent.parent
path_data = path_root / "support" / "federation.yml"
binderhubs = safe_load(path_data.read_text())

# Generate markdown entries for each federation member
entries = []
for binderhub in binderhubs:
entries.append(template_binderhub.format(URL_BINDERHUB=binderhub["url_binderhub"],
BINDERHUB_SUBDOMAIN=binderhub["url_binderhub"].split("//")[-1],
LOGO=binderhub["logo"],
RUN_BY=binderhub["run_by"],
RUN_BY_LINK=binderhub["run_by_link"],
FUNDED_BY=binderhub["funded_by"],
FUNDED_BY_LINK=binderhub["funded_by_link"],))
entries = "\n".join(entries)

# Wrap the entries in a `grid` directive
directive = f"""
````{{grid}} 1 1 2 2
:class-container: federation-members
:gutter: 4
{entries}
````
"""

# Write a txt file that we can insert into docs
path_md = path_root.joinpath("snippets", "federation_md.txt")
path_md.parent.mkdir(parents=True, exist_ok=True)
path_md.write_text(directive)
54 changes: 54 additions & 0 deletions doc/_data/scripts/gen_support_md.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
"""Generate snippets of markdown for various types of supporters.
These are meant to be inserted into our docs.
"""
from pathlib import Path
from yaml import safe_load
from textwrap import dedent

# Read from our YAML data file
path_root = Path(__file__).parent.parent
path_data = path_root / "support" / "supporters.yml"
supporters_yaml = safe_load(path_data.read_text())
for kind, supporters in supporters_yaml.items():
# This is where we write the txt snippet to be imported
path_snippet = path_root.joinpath("snippets", f"supporters_{kind}_md.txt")
path_snippet.parent.mkdir(parents=True, exist_ok=True)

# If no supporters are listed juts write a short message saying there are none.
if not supporters:
path_snippet.write_text("**There are currently no supporters of this category.**")
continue

# Generate markdown entries for each member
output = ""
for supporter in supporters:
output += dedent(f"""
```{{grid-item-card}}
:text-align: center
:class-header: bg-light
:class-body: sd-p-4 d-flex sd-m-auto
:link: {supporter["url"]}
:text-align: center
**{supporter["name"]}**
^^^
<img src="{supporter['logo']}" style="max-height:5em;min-height:2em;" />
```
""")

# Wrap the entries in a `grid` directive
directive = dedent("""
````{{grid}} 1 1 2 2
:class-container: support-{kind}
:gutter: 4
{output}
````
""")
directive = directive.format(output=output, kind=kind)

# Write a txt file that we can insert into docs
path_snippet.write_text(directive)
37 changes: 37 additions & 0 deletions doc/_data/scripts/load_pages_from_r2d.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
"""
This grabs a few content pages in the repo2docker docs and imports them for use here.
It will put the folders in _data/pages at build time, if they do not currently exist.
"""
import requests
from pathlib import Path

# Grab the latest version of the configuration file examples and howtos
# Files will be placed relative to documentation root
dest_root = Path(__file__).parent.parent.parent
source_root = "https://raw.githubusercontent.com/jupyter/repo2docker/master/docs/source/"
file_mappings = {
"config_files.rst": "using/config_files.rst",
"howto/languages.rst": "howto/languages.rst",
"howto/user_interface.rst": "howto/user_interface.rst",
"howto/lab_workspaces.rst": "howto/lab_workspaces.rst",

}
for source, dest in file_mappings.items():
path_dest = dest_root / dest
if not path_dest.exists():
print(f"repo2docker page does not exist, downloading from repo2docker docs. {source}")
url_source = source_root + source
resp = requests.get(url_source)
path_dest.parent.mkdir(parents=True, exist_ok=True)
path_dest.write_text(
f"""
.. ##################################################
.. DO NOT EDIT THIS FILE, IT IS IMPORTED IN `conf.py`
.. ##################################################
{resp.text}
"""
)
else:
print(f"repo2docker page exists, skipping download. Delete it to re-download. {source} ")
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Data that is used to generate our federation page.
- url_binderhub: https://gke.mybinder.org
logo: https://binderhub.readthedocs.io/en/latest/_static/logo.png
funded_by: Google Cloud
Expand Down
45 changes: 45 additions & 0 deletions doc/_data/support/supporters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# All supporting organizations / federation members are in alphabetical order
# For partner organizations, add them only if their organization lets them contribute
# in an "official" capacity to Binder, not only if they do this off-hours.

partners:
- name: 2i2c
logo: https://github.com/2i2c-org/2i2c-org.github.io/blob/main/static/media/logo.png?raw=true
url: https://2i2c.org

- name: GESIS
logo: https://www.gesis.org/typo3conf/ext/gesis_web_ext/Resources/Public/webpack/dist/img/gs_home_logo_de.svg
url: https://www.gesis.org

- name: Simula Research Laboratory
logo: https://www.simula.no/sites/default/themes/simula2019/images/logo.svg?r9vi8o
url: https://www.simula.

- name: The Turing Institute
logo: https://upload.wikimedia.org/wikipedia/commons/b/b5/Alan_Turing_Institute_logo.svg
url: https://www.turing.ac.uk/

- name: UC Berkeley
logo: https://upload.wikimedia.org/wikipedia/commons/8/82/University_of_California%2C_Berkeley_logo.svg
url: https://www.berkeley.edu/

# Have made substantial contributions to Binder in the last year (>$10,000)
financial: ""

# Have provided cloud credits that power Binder infrastructure
credits:
- name: GESIS
logo: https://www.gesis.org/typo3conf/ext/gesis_web_ext/Resources/Public/webpack/dist/img/gs_home_logo_de.svg
url: https://www.gesis.org

- name: Google Open Source
logo: https://www.gstatic.com/devrel-devsite/prod/v6cd15f45ec209c8961e07ea7e57ed9a0e9da4333bc915e67d1fcd2b2a9ec62d1/opensource/images/lockup.svg
url: https://opensource.google/

- name: OVHCloud
logo: https://upload.wikimedia.org/wikipedia/commons/2/26/Logo-OVH.svg
url: https://www.ovhcloud.com/en/

- name: The Turing Institute
logo: https://upload.wikimedia.org/wikipedia/commons/b/b5/Alan_Turing_Institute_logo.svg
url: https://www.turing.ac.uk/
22 changes: 0 additions & 22 deletions doc/about/contribute.md

This file was deleted.

4 changes: 2 additions & 2 deletions doc/about/federation.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ federation, check out [](federation/joining).
(federation/federation-list)=
## Members of the BinderHub Federation

Here is a list of the current members of the BinderHub federation:
Below is a list of the current member hubs in the BinderHub Federation:

```{include} ../federation/data-federation.txt
```{include} /_data/snippets/federation_md.txt
```


Expand Down
8 changes: 7 additions & 1 deletion doc/about/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,18 @@ This is a collection of pages about the Binder service running at [mybinder.org]

```{toctree}
:maxdepth: 2
:caption: Service information
user-guidelines
status
```

```{toctree}
:maxdepth: 2
:caption: Project information
support
supporters
team
contribute
federation
cite
```
48 changes: 31 additions & 17 deletions doc/about/support.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,25 @@ Open an issue {fas}`arrow-right`

::::

## Who supports mybinder.org?
The Binder Project is supported by an open community of collaborators, as well as by many organizations.
See below for a list of our supporting team members and institutions.

- [The mybinder.org landing page](https://mybinder.org) has list of organizations that financially support mybinder.org.
- {external+tc:doc}`team` has a list of personnel that support the project.
:::::{grid} auto

::::{grid-item}
:::{button-ref} supporters
:color: primary
Supporting organizations
:::
::::

::::{grid-item}
:::{button-ref} team
:color: primary
Our team
:::
::::
:::::

## Our major costs

Expand All @@ -54,23 +69,22 @@ In addition to developing and maintaining the many open source tools built by th
- **Personnel to operate mybinder.org**: Running a heavily-used and complex cloud service requires expertise in cloud infrastructure development and operation.
We receive in-kind contributions from several individuals and organizations to help us sustain these operations.

## Help with our open source efforts
(support:join)=
## Join our team

There are many ways that you can contribute to the Binder project, and the Binder community welcomes any and all contributions that others are willing to give.

To get started contributing, check out [the JupyterHub Team Compass guide to contributing](https://jupyterhub-team-compass.readthedocs.io/en/latest/team/skills.html).

Finally, all of the techology behind mybinder.org is built by an open community.
We welcome any kind of contributions and support.
You can find many ways to contribute to the Binder community, codebase, and services at [](./contribute.md).
Here are a few ways that you can begin contributing to the Binder project as an individual.

## Attribution for team members
### Contribute to the Binder documentation

We wish to recognize the contributions that individuals and organizations make on behalf of Binder.
For this reason, we define a few key contribution areas below, and explicitly recognize these contributions in our mybinder.org pages.
This repository is a "meta-repository" for the Binder user documentation. If you notice anything missing, or feel that it could be improved, please [open an issue to discuss](https://github.com/jupyterhub/binder/issues/new/choose).

- *mybinder.org federation members* - Institutions that deploy, fund, and staff their own BinderHub in the federation.
- *mybinder.org partner institutions* - Institutions that employ individuals that operate any hubs in the mybinder.org federation (if not full federation members).
- *mybinder.org major supporters* - Institutions that provide significant financial resources or credits for any hubs in the mybinder.org federation ("significant" is defined as anything greater than $10,000 annually).
Check out [the documentation contribution guide](https://github.com/jupyterhub/binder/blob/master/CONTRIBUTING.rst) for more
information.

## Previous grants and major support
### Contribute to the codebase of the Binder Project

- From 2019 through 2021, `gke.mybinder.org` was supported by cloud credits from [Google Cloud](https://cloud.google.com/).
- In 2017 the Binder Project received a 1-year grant from the
`Moore Foundation <https://figshare.com/s/e9d0ad7bdc4e405cccfa>`_.
Most of the code used by the Binder Project is not hosted in this repository. If you'd like to contribute to the code, check out [](team:os-projects).
26 changes: 26 additions & 0 deletions doc/about/supporters.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Supporting organizations

Binder relies on the generosity of volunteers and organizations to support our open source tools and our open service at mybinder.org.
This page lists organizations that provide financial or cloud credit support for the project.
For a list of individual team members and their organizations, see [](team.md).

(support:major-supporters)=
## Financial supporters

Organizations that provide significant financial resources or credits for any hubs in the mybinder.org federation ("significant" is defined as anything greater than $10,000 annually).

```{include} ../_data/snippets/supporters_financial_md.txt
```

(support:credit-supporters)=
## Cloud credit supporters

Organizations that provide cloud credits that power the infrastructure behind mybinder.org.

```{include} ../_data/snippets/supporters_credits_md.txt
```

## Previous grants and major support

- In 2017 the Binder Project received [a 1-year grant from the
Moore Foundation](https://figshare.com/s/e9d0ad7bdc4e405cccfa).
Loading

0 comments on commit b989584

Please sign in to comment.