Skip to content
Open
Show file tree
Hide file tree
Changes from all 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 .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
# jobs or have "template" jobs, so we use `if` conditions on steps
tests:
runs-on: ubuntu-22.04
timeout-minutes: 10
timeout-minutes: 20

permissions:
contents: read
Expand Down
6 changes: 3 additions & 3 deletions binderhub/repoproviders.py
Original file line number Diff line number Diff line change
Expand Up @@ -357,16 +357,16 @@ class FigshareProvider(RepoProvider):
"ref": {"enabled": False},
}

url_regex = re.compile(r"(.*)/articles/([^/]+)/([^/]+)/(\d+)(/)?(\d+)?")
url_regex = re.compile(r"(.*)/articles/([^/]+)/(\d+)(/)?(\d+)?")

async def get_resolved_ref(self):
client = AsyncHTTPClient()
req = HTTPRequest(f"https://doi.org/{self.spec}", user_agent="BinderHub")
r = await client.fetch(req)

match = self.url_regex.match(r.effective_url)
article_id = match.groups()[3]
article_version = match.groups()[5]
article_id = match.groups()[2]
article_version = match.groups()[4]
if not article_version:
article_version = "1"
self.record_id = f"{article_id}.v{article_version}"
Expand Down
4 changes: 4 additions & 0 deletions binderhub/static/js/components/LinkGenerator.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,10 @@ export function LinkGenerator({
</div>
</div>
</div>
<div style={{ textAlign: "right" }}>
→<a href="https://jdcat.jsps.go.jp/analysis-In-case-of-error.html" target="_blank" rel="noopener noreferrer">問い合わせ先/エラーが発生したときは</a><br/>
→<a href="https://jdcat.jsps.go.jp/analysis-In-case-of-error.html" target="_blank" rel="noopener noreferrer">Contact Information/Troubleshooting</a>
</div>
</form>
);
}
2 changes: 1 addition & 1 deletion ci/refreeze
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ docker run --rm \
--volume="$PWD:/io" \
--workdir=/io \
--user=root \
python:3.11-bullseye \
python:3.13-bookworm \
sh -c 'pip install pip-tools==7.* && pip-compile --allow-unsafe --strip-extras --upgrade helm-chart/images/binderhub/requirements.in'
4 changes: 2 additions & 2 deletions helm-chart/binderhub/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Chart.yaml v2 reference: https://helm.sh/docs/topics/charts/#the-chartyaml-file
apiVersion: v2
name: binderhub
version: 0.2.0-jhub-1.1.3.git.2398.h2365dd6
version: 0.2.5-20251121.3
dependencies:
# Source code: https://github.com/jupyterhub/zero-to-jupyterhub-k8s
# Latest version: https://github.com/jupyterhub/zero-to-jupyterhub-k8s/tags
Expand All @@ -12,7 +12,7 @@ dependencies:
# and run "./dependencies freeze --upgrade".
#
- name: jupyterhub
version: "4.1.0-0.dev.git.6950.h5e4c7698"
version: "4.1.0-20251118.2"
repository: "https://rcosdp.github.io/CS-jhub-helm-chart/"
description: |-
BinderHub is like a JupyterHub that automatically builds environments for the
Expand Down
20 changes: 18 additions & 2 deletions helm-chart/images/binderhub/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#
# NOTE: If the image version is updated, also update it in ci/refreeze!
#
FROM python:3.11-bullseye as build-stage
FROM python:3.13-bookworm as build-stage

# Workaround: CS-jupyterhub requires nodejs and npm to be installed.
RUN apt-get update \
Expand Down Expand Up @@ -50,7 +50,7 @@ RUN --mount=type=cache,target=${PIP_CACHE_DIR} \
# ---------------
# This stage is built and published as quay.io/jupyterhub/k8s-binderhub.
#
FROM python:3.11-slim-bullseye
FROM python:3.13-slim-bookworm

ENV PYTHONUNBUFFERED=1
ENV DEBIAN_FRONTEND=noninteractive
Expand All @@ -68,6 +68,22 @@ RUN apt-get update \
# or "kubectl delete pod" is run. By doing that the pod can
# terminate very quickly.
curl gpg \
# OpenSSL コンパイル用
build-essential \
wget \
zlib1g-dev \
ca-certificates \
&& wget -O /tmp/ssl-source.tar.gz https://www.openssl.org/source/openssl-3.0.18.tar.gz \
&& tar -xzf /tmp/ssl-source.tar.gz -C /tmp \
&& (cd /tmp/openssl-3.0.18 && ./Configure --prefix=/usr/local --openssldir=/etc/ssl --libdir=lib shared zlib-dynamic) \
&& (cd /tmp/openssl-3.0.18 && make -j$(nproc)) \
&& (cd /tmp/openssl-3.0.18 && make install_sw) \
&& echo "/usr/local/lib" > /etc/ld.so.conf.d/openssl-3.0.18.conf \
&& ldconfig \
&& rm -f /tmp/ssl-source.tar.gz \
&& rm -rf /tmp/openssl-3.0.18 \
&& apt-get remove -y build-essential wget zlib1g-dev \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/*

# Workaround: CS-jupyterhub requires nodejs and npm to be installed.
Expand Down
8 changes: 7 additions & 1 deletion helm-chart/images/binderhub/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
# Use the "Run workflow" button at https://github.com/jupyterhub/binderhub/actions/workflows/watch-dependencies.yaml
Expand All @@ -14,6 +14,8 @@ anyio==4.11.0
# via httpx
arrow==1.4.0
# via isoduration
async-generator==1.10
# via jupyterhub
attrs==25.4.0
# via
# jsonschema
Expand All @@ -38,6 +40,8 @@ charset-normalizer==3.4.4
# via requests
cryptography==46.0.3
# via certipy
deprecated==1.2.18
# via opentelemetry-api
docker==7.1.0
# via
# -r helm-chart/images/binderhub/../../../requirements.txt
Expand Down Expand Up @@ -305,6 +309,8 @@ webcolors==25.10.0
# via jsonschema
websocket-client==1.9.0
# via kubernetes
wrapt==1.17.2
# via deprecated
zipp==3.23.0
# via importlib-metadata

Expand Down
11 changes: 4 additions & 7 deletions testing/k8s-binder-k8s-hub/binderhub-chart-config-old.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
# This config is used when both BinderHub and the JupyterHub it uses are
# deployed to a kubernetes cluster.
cors:
allowOrigin: '*'

service:
type: NodePort
nodePort: 30901
Expand All @@ -15,6 +12,7 @@ config:
hub_url_local: http://proxy-public
use_registry: false
log_level: 10
cors_allow_origin: "*"

# NOTE: This is a mirror of the jupyterhub section in
# jupyterhub-chart-config.yaml in testing/local-binder-k8s-hub, keep these
Expand All @@ -23,10 +21,6 @@ jupyterhub:
debug:
enabled: true

custom:
cors:
allowOrigin: "*"

hub:
# cookieSecret must be a hex encoded even length string
cookieSecret: "cccccccccc"
Expand All @@ -35,6 +29,9 @@ jupyterhub:
services:
binder:
apiToken: "dummy-binder-secret-token"
config:
BinderSpawner:
cors_allow_origin: "*"

proxy:
secretToken: "dummy-proxy-secret-token"
Expand Down
Loading