Skip to content

Commit 7e45dac

Browse files
authored
Merge branch 'main' into python3.13
2 parents dac52a3 + b3669ac commit 7e45dac

File tree

99 files changed

+792
-698
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+792
-698
lines changed

.github/actions/create-dev-env/action.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,12 @@ runs:
1414
pip install --upgrade pip
1515
pip install --upgrade -r requirements-dev.txt
1616
shell: bash
17+
18+
# We need to have a recent docker version
19+
# More info: https://github.com/jupyter/docker-stacks/pull/2255
20+
# Can be removed after Docker Engine is updated
21+
# https://github.com/actions/runner-images/issues/11766
22+
- name: Set Up Docker 🐳
23+
uses: docker/setup-docker-action@b60f85385d03ac8acfca6d9996982511d8620a19 # v4.3.0
24+
with:
25+
set-host: true

.github/workflows/docker-build-test-upload.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Download a parent image, build a new one, and test it; then upload the image, tags, and manifests to GitHub artifacts
1+
name: Download a parent image, build a new one, and test it; upload the image, tags, build history line and manifest to GitHub artifacts
22

33
env:
44
REGISTRY: quay.io
@@ -127,6 +127,7 @@ jobs:
127127
name: ${{ inputs.image }}-${{ inputs.platform }}-${{ inputs.variant }}
128128
path: /tmp/jupyter/images/${{ inputs.image }}-${{ inputs.platform }}-${{ inputs.variant }}.tar.zst
129129
retention-days: 3
130+
compression-level: 0
130131

131132
- name: Run tests ✅
132133
run: >

.github/workflows/docker-wiki-update.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Download build manifests from GitHub artifacts and push them to GitHub wiki
1+
name: Download build history lines and manifests from GitHub artifacts and push them to the GitHub wiki
22
# We're doing everything in one workflow on purpose
33
# This way we make sure we don't access wiki pages from several jobs simultaneously
44

.github/workflows/docker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build, test, and push Docker Images
1+
name: Docker Stacks
22

33
# [FAST_BUILD] in the PR title makes this workflow only build
44
# the `jupyter/docker-stacks-foundation` and `jupyter/base-notebook` images

.github/workflows/sphinx.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,35 @@ on:
77
pull_request:
88
paths:
99
- ".github/workflows/sphinx.yml"
10+
- "Makefile"
1011

1112
- "docs/**"
13+
14+
# Thse files are also rendered as docs pages
1215
- "README.md"
1316
- "CHANGELOG.md"
17+
18+
# These files are used to generate some code snippets in the docs
19+
- "tagging/manifests/apt_packages.py"
20+
- "tagging/manifests/manifest_interface.py"
21+
- "tagging/taggers/sha.py"
22+
- "tagging/taggers/tagger_interface.py"
1423
push:
1524
branches:
1625
- main
1726
paths:
1827
- ".github/workflows/sphinx.yml"
28+
- "Makefile"
1929

2030
- "docs/**"
31+
2132
- "README.md"
2233
- "CHANGELOG.md"
34+
35+
- "tagging/manifests/apt_packages.py"
36+
- "tagging/manifests/manifest_interface.py"
37+
- "tagging/taggers/sha.py"
38+
- "tagging/taggers/tagger_interface.py"
2339
workflow_dispatch:
2440

2541
jobs:

.pre-commit-config.yaml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ repos:
2121

2222
# Automatically sort python imports
2323
- repo: https://github.com/PyCQA/isort
24-
rev: 6.0.0
24+
rev: 6.0.1
2525
hooks:
2626
- id: isort
2727
args: [--profile, black]
@@ -35,7 +35,7 @@ repos:
3535

3636
# Check python code static typing
3737
- repo: https://github.com/pre-commit/mirrors-mypy
38-
rev: v1.14.1
38+
rev: v1.15.0
3939
hooks:
4040
- id: mypy
4141
args: [--config, ./mypy.ini]
@@ -63,7 +63,7 @@ repos:
6363

6464
# Autoformat: YAML, JSON, Markdown, etc.
6565
- repo: https://github.com/rbubley/mirrors-prettier
66-
rev: v3.4.2
66+
rev: v3.5.3
6767
hooks:
6868
- id: prettier
6969

@@ -72,6 +72,8 @@ repos:
7272
rev: v5.0.0
7373
hooks:
7474
- id: check-added-large-files
75+
- id: check-executables-have-shebangs
76+
- id: check-shebang-scripts-are-executable
7577
- id: end-of-file-fixer
7678
- id: requirements-txt-fixer
7779
- id: trailing-whitespace
@@ -100,7 +102,6 @@ repos:
100102
hooks:
101103
- id: yamllint
102104
args: ["-d {extends: relaxed, rules: {line-length: disable}}", "-s"]
103-
files: \.(yaml|yml)$
104105

105106
# Lint: Bash scripts
106107
- repo: https://github.com/openstack/bashate
@@ -118,7 +119,7 @@ repos:
118119

119120
# Lint: Python
120121
- repo: https://github.com/PyCQA/flake8
121-
rev: 7.1.1
122+
rev: 7.1.2
122123
hooks:
123124
- id: flake8
124125

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,35 @@ Affected: all images.
99

1010
- **Breaking:** `docker-stacks-foundation`: switch to Python 3.13 ([#2163](https://github.com/jupyter/docker-stacks/pull/2163)).
1111

12+
## 2025-03-22
13+
14+
Affected: all images.
15+
16+
- **Non-breaking:** Use tty for running docker commands by default ([#2260](https://github.com/jupyter/docker-stacks/pull/2260)).
17+
- **Non-breaking:** Improve logs around running docker ([#2261](https://github.com/jupyter/docker-stacks/pull/2261)).
18+
19+
## 2025-03-21
20+
21+
Affected: all images.
22+
23+
- **Non-breaking:** Refactor TrackedContainer run_detached/exec_cmd functions ([#2256](https://github.com/jupyter/docker-stacks/pull/2256)).
24+
- **Non-breaking:** Do not allocate TTY in tests if not needed ([#2257](https://github.com/jupyter/docker-stacks/pull/2257)).
25+
- **Non-breaking:** `base-notebook`: Flush output in Python before running execvp ([#2258](https://github.com/jupyter/docker-stacks/pull/2258)).
26+
27+
## 2025-03-20
28+
29+
Affected: all images except `docker-stacks-foundation`.
30+
31+
- **Non-breaking:** `base-notebook`: Refactor healthcheck tests to use one function ([#2254](https://github.com/jupyter/docker-stacks/pull/2254)).
32+
- **Non-breaking:** `base-notebook`: Test server listening on IPv4/IPv6 ([#2255](https://github.com/jupyter/docker-stacks/pull/2255)).
33+
34+
## 2025-03-12
35+
36+
Affected: all images.
37+
38+
- **Non-breaking:** Add `conda` and `mamba` version taggers ([#2251](https://github.com/jupyter/docker-stacks/pull/2251)).
39+
- **Non-breaking:** Make taggers and manifests functions ([#2252](https://github.com/jupyter/docker-stacks/pull/2252)).
40+
1241
## 2025-02-21
1342

1443
Affected: all images.

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ help:
3535

3636

3737

38-
# Note that `ROOT_IMAGE` and `PYTHON_VERSION` arguments are only applicable to `docker-stacks-foundation` image
38+
# Note that `ROOT_IMAGE` and `PYTHON_VERSION` arguments are only applicable to the `docker-stacks-foundation` image
3939
build/%: DOCKER_BUILD_ARGS?=
4040
build/%: ROOT_IMAGE?=ubuntu:24.04
4141
build/%: PYTHON_VERSION?=3.13
@@ -54,7 +54,7 @@ build-all: $(foreach I, $(ALL_IMAGES), build/$(I)) ## build all stacks
5454

5555

5656
check-outdated/%: ## check the outdated mamba/conda packages in a stack and produce a report
57-
@TEST_IMAGE="$(REGISTRY)/$(OWNER)/$(notdir $@)" pytest tests/docker-stacks-foundation/test_outdated.py
57+
@TEST_IMAGE="$(REGISTRY)/$(OWNER)/$(notdir $@)" pytest tests/by_image/docker-stacks-foundation/test_outdated.py
5858
check-outdated-all: $(foreach I, $(ALL_IMAGES), check-outdated/$(I)) ## check all the stacks for outdated packages
5959

6060

@@ -71,7 +71,7 @@ cont-clean-all: cont-stop-all cont-rm-all ## clean all containers (stop + rm)
7171

7272
docs: ## build HTML documentation
7373
sphinx-build -W --keep-going --color docs/ docs/_build/
74-
linkcheck-docs: ## check broken links
74+
linkcheck-docs: ## check for broken links
7575
sphinx-build -W --keep-going --color -b linkcheck docs/ docs/_build/
7676

7777

README.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Jupyter Docker Stacks
22

3-
[![GitHub actions badge](https://github.com/jupyter/docker-stacks/actions/workflows/docker.yml/badge.svg)](https://github.com/jupyter/docker-stacks/actions/workflows/docker.yml?query=branch%3Amain "Docker images build status")
3+
[![GitHub Actions badge](https://github.com/jupyter/docker-stacks/actions/workflows/docker.yml/badge.svg)](https://github.com/jupyter/docker-stacks/actions/workflows/docker.yml?query=branch%3Amain "Docker images build status")
44
[![Read the Docs badge](https://img.shields.io/readthedocs/jupyter-docker-stacks.svg)](https://jupyter-docker-stacks.readthedocs.io/en/latest/ "Documentation build status")
55
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/jupyter/docker-stacks/main.svg)](https://results.pre-commit.ci/latest/github/jupyter/docker-stacks/main "pre-commit.ci build status")
66
[![Discourse badge](https://img.shields.io/discourse/users.svg?color=%23f37626&server=https%3A%2F%2Fdiscourse.jupyter.org)](https://discourse.jupyter.org/ "Jupyter Discourse Forum")
@@ -29,11 +29,11 @@ Older images are available on Docker Hub, but they will no longer be updated.
2929

3030
### Example 1
3131

32-
This command pulls the `jupyter/scipy-notebook` image tagged `2025-02-12` from Quay.io if it is not already present on the local host.
32+
This command pulls the `jupyter/scipy-notebook` image tagged `2025-03-14` from Quay.io if it is not already present on the local host.
3333
It then starts a container running a Jupyter Server with the JupyterLab frontend and exposes the container's internal port `8888` to port `10000` of the host machine:
3434

3535
```bash
36-
docker run -p 10000:8888 quay.io/jupyter/scipy-notebook:2025-02-12
36+
docker run -p 10000:8888 quay.io/jupyter/scipy-notebook:2025-03-14
3737
```
3838

3939
You can modify the port on which the container's port is exposed by [changing the value of the `-p` option](https://docs.docker.com/engine/containers/run/#exposed-ports) to `-p 8888:8888`.
@@ -48,11 +48,11 @@ The container remains intact for restart after the Server exits.
4848

4949
### Example 2
5050

51-
This command pulls the `jupyter/datascience-notebook` image tagged `2025-02-12` from Quay.io if it is not already present on the local host.
51+
This command pulls the `jupyter/datascience-notebook` image tagged `2025-03-14` from Quay.io if it is not already present on the local host.
5252
It then starts an _ephemeral_ container running a Jupyter Server with the JupyterLab frontend and exposes the server on host port 10000.
5353

5454
```bash
55-
docker run -it --rm -p 10000:8888 -v "${PWD}":/home/jovyan/work quay.io/jupyter/datascience-notebook:2025-02-12
55+
docker run -it --rm -p 10000:8888 -v "${PWD}":/home/jovyan/work quay.io/jupyter/datascience-notebook:2025-03-14
5656
```
5757

5858
The use of the `-v` flag in the command mounts the current working directory on the host (`${PWD}` in the example command) as `/home/jovyan/work` in the container.
@@ -106,6 +106,8 @@ more information is available in the [documentation](https://jupyter-docker-stac
106106

107107
## Using old images
108108

109+
[![Python versions badge](https://img.shields.io/badge/python-3.7%20%7C%203.8%20%7C%203.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue.svg)](https://www.python.org/downloads/ "Python versions supported")
110+
109111
This project only builds one set of images at a time.
110112
If you want to use the older `Ubuntu` and/or `Python` version, you can use the following images:
111113

binder/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# https://quay.io/repository/jupyter/base-notebook?tab=tags
55
ARG REGISTRY=quay.io
66
ARG OWNER=jupyter
7-
ARG BASE_IMAGE=$REGISTRY/$OWNER/base-notebook:2025-02-12
7+
ARG BASE_IMAGE=$REGISTRY/$OWNER/base-notebook:2025-03-14
88
FROM $BASE_IMAGE
99

1010
LABEL maintainer="Jupyter Project <[email protected]>"
@@ -13,7 +13,7 @@ LABEL maintainer="Jupyter Project <[email protected]>"
1313
# Fix: https://github.com/koalaman/shellcheck/wiki/SC3014
1414
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
1515

16-
ENV TAG="2025-02-12"
16+
ENV TAG="2025-03-14"
1717

1818
COPY --chown=${NB_UID}:${NB_GID} binder/README.ipynb "${HOME}"/README.ipynb
1919

0 commit comments

Comments
 (0)