Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 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
5 changes: 4 additions & 1 deletion .github/workflows/piplock-renewal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,10 @@ jobs:
python-version: ${{ matrix.python-version }}

- name: Install pipenv
run: pip install pipenv
run: pip install "pipenv==2025.0.4"

- name: Install uv
run: pip install "uv==0.8.12"

- name: Run make refresh-pipfilelock-files
run: |
Expand Down
8 changes: 4 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -448,12 +448,12 @@ refresh-pipfilelock-files:
echo "Processing directory: $$dir"
cd $(ROOT_DIR)
if [ -d "$$dir" ]; then
echo "Updating $(PYTHON_VERSION) Pipfile.lock in $$dir"
echo "Updating $(PYTHON_VERSION) uv.lock in $$dir"
cd $$dir
if [ -f "Pipfile" ]; then
pipenv lock || pipenv lock --verbose
if [ -f "pyproject.toml" ]; then
uv lock
else
echo "No Pipfile found in $$dir, skipping."
echo "No pyproject.toml found in $$dir, skipping."
fi
else
echo "Skipping $$dir as it does not exist"
Expand Down
4 changes: 2 additions & 2 deletions codeserver/ubi9-python-3.12/Dockerfile.cpu
Original file line number Diff line number Diff line change
Expand Up @@ -141,13 +141,13 @@ ENV PYTHONPATH=/opt/app-root/bin/python3
USER 1001

# Install useful packages from requirements.txt
COPY ${CODESERVER_SOURCE_CODE}/requirements.txt ./
COPY ${CODESERVER_SOURCE_CODE}/pylock.toml ./

# Install packages and cleanup
RUN echo "Installing softwares and packages" && \
# This may have to download and compile some dependencies, and as we don't lock requirements from `build-system.requires`,
# we often don't know the correct hashes and `--require-hashes` would therefore fail on non amd64, where building is common.
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./requirements.txt --build-constraints=./requirements.txt && \
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./pylock.toml && \
# Fix permissions to support pip in Openshift environments \
chmod -R g+w /opt/app-root/lib/python3.12/site-packages && \
fix-permissions /opt/app-root -P
Expand Down
1,547 changes: 1,547 additions & 0 deletions codeserver/ubi9-python-3.12/pylock.toml

Large diffs are not rendered by default.

35 changes: 35 additions & 0 deletions codeserver/ubi9-python-3.12/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[project]
name = "notebooks"
version = "0.1.0"
requires-python = "==3.12.*"

dependencies = [
# Base packages
"wheel~=0.45.1",
"setuptools~=78.1.1",

# Datascience packages
"boto3~=1.37.8",
"kafka-python-ng~=2.2.3",
"matplotlib~=3.10.1",
"numpy~=2.2.3",
"pandas~=2.2.3",
"plotly~=6.0.0",
"scikit-learn~=1.6.1",
"scipy~=1.15.2",
"skl2onnx~=1.18.0",
"ipykernel~=6.29.5",
"kubeflow-training==1.9.2",

# Some extra useful packages
"opencensus~=0.11.4",
"smart-open~=7.0.1",
"virtualenv~=20.29.3",
"py-spy~=0.4.0",
"prometheus-client~=0.21.1",
]

[tool.uv]
environments = [
"sys_platform == 'linux' and implementation_name == 'cpython'",
]
4 changes: 2 additions & 2 deletions jupyter/datascience/ubi9-python-3.12/Dockerfile.cpu
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,14 @@ ENV PATH="$PATH:/opt/mssql-tools18/bin"
USER 1001

# Install Python packages and Jupyterlab extensions from requirements.txt
COPY ${DATASCIENCE_SOURCE_CODE}/requirements.txt ./
COPY ${DATASCIENCE_SOURCE_CODE}/pylock.toml ./
# Copy Elyra setup to utils so that it's sourced at startup
COPY ${DATASCIENCE_SOURCE_CODE}/setup-elyra.sh ${DATASCIENCE_SOURCE_CODE}/utils ./utils/

RUN echo "Installing softwares and packages" && \
# This may have to download and compile some dependencies, and as we don't lock requirements from `build-system.requires`,
# we often don't know the correct hashes and `--require-hashes` would therefore fail on non amd64, where building is common.
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./requirements.txt --build-constraints=./requirements.txt && \
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./pylock.toml && \
# setup path for runtime configuration
mkdir /opt/app-root/runtimes && \
mkdir /opt/app-root/pipeline-runtimes && \
Expand Down
4,047 changes: 4,047 additions & 0 deletions jupyter/datascience/ubi9-python-3.12/pylock.toml

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions jupyter/datascience/ubi9-python-3.12/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
[project]
name = "datascience-notebook"
version = "0.1.0"
requires-python = "==3.12.*"

dependencies = [
# Datascience and useful extensions
"boto3~=1.37.8",
"kafka-python-ng~=2.2.3",
"kfp~=2.12.1",
"matplotlib~=3.10.1",
"numpy~=2.2.3",
"pandas~=2.2.3",
"plotly~=6.0.0",
"scikit-learn~=1.6.1",
"scipy~=1.15.2",
"skl2onnx~=1.18.0",
"onnxconverter-common~=1.13.0", # Required for skl2onnx, as upgraded version is not compatible with protobuf
"codeflare-sdk~=0.30.0",
"kubeflow-training==1.9.3",

# DB connectors
"pymongo~=4.11.2",
"psycopg~=3.2.5",
"pyodbc~=5.2.0",
"mysql-connector-python~=9.3.0",

# JupyterLab packages
"odh-elyra==4.2.3",

"jupyterlab==4.4.4",
"jupyter-bokeh~=4.0.5",
"jupyter-server~=2.16.0",
"jupyter-server-proxy~=4.4.0",
"jupyter-server-terminals~=0.5.3",
"jupyterlab-git~=0.51.1",
"jupyterlab-lsp~=5.1.1",
"jupyterlab-widgets~=3.0.15",
"jupyter-resource-usage~=1.1.1",
"nbdime~=4.0.2",
"nbgitpuller~=1.2.2",

# Base packages
"wheel~=0.45.1",
"setuptools~=78.1.1",
]

[tool.uv]
environments = [
"sys_platform == 'linux' and implementation_name == 'cpython'",
]
4 changes: 2 additions & 2 deletions jupyter/minimal/ubi9-python-3.12/Dockerfile.cpu
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,13 @@ ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH"

USER 1001

COPY ${MINIMAL_SOURCE_CODE}/requirements.txt ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./
COPY ${MINIMAL_SOURCE_CODE}/pylock.toml ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./

# Install Python dependencies from requirements.txt file
RUN echo "Installing softwares and packages" && \
# This may have to download and compile some dependencies, and as we don't lock requirements from `build-system.requires`,
# we often don't know the correct hashes and `--require-hashes` would therefore fail on non amd64, where building is common.
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./requirements.txt --build-constraints=./requirements.txt && \
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./pylock.toml && \
# Disable announcement plugin of jupyterlab \
jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \
# Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \
Expand Down
4 changes: 2 additions & 2 deletions jupyter/minimal/ubi9-python-3.12/Dockerfile.cuda
Original file line number Diff line number Diff line change
Expand Up @@ -160,13 +160,13 @@ ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH"

USER 1001

COPY ${MINIMAL_SOURCE_CODE}/requirements.txt ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./
COPY ${MINIMAL_SOURCE_CODE}/pylock.toml ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./

# Install Python dependencies from requirements.txt file
RUN echo "Installing softwares and packages" && \
# This may have to download and compile some dependencies, and as we don't lock requirements from `build-system.requires`,
# we often don't know the correct hashes and `--require-hashes` would therefore fail on non amd64, where building is common.
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./requirements.txt --build-constraints=./requirements.txt && \
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./pylock.toml && \
# Disable announcement plugin of jupyterlab \
jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \
# Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \
Expand Down
4 changes: 2 additions & 2 deletions jupyter/minimal/ubi9-python-3.12/Dockerfile.rocm
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,13 @@ ENV PATH="/usr/local/texlive/bin/linux:/usr/local/pandoc/bin:$PATH"

USER 1001

COPY ${MINIMAL_SOURCE_CODE}/requirements.txt ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./
COPY ${MINIMAL_SOURCE_CODE}/pylock.toml ${MINIMAL_SOURCE_CODE}/start-notebook.sh ./

# Install Python dependencies from Pipfile.lock file
RUN echo "Installing softwares and packages" && \
# This may have to download and compile some dependencies, and as we don't lock requirements from `build-system.requires`,
# we often don't know the correct hashes and `--require-hashes` would therefore fail on non amd64, where building is common.
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./requirements.txt --build-constraints=./requirements.txt && \
uv pip install --strict --no-deps --no-cache --no-config --no-progress --verify-hashes --compile-bytecode --index-strategy=unsafe-best-match --requirements=./pylock.toml && \
# Disable announcement plugin of jupyterlab \
jupyter labextension disable "@jupyterlab/apputils-extension:announcements" && \
# Replace Notebook's launcher, "(ipykernel)" with Python's version 3.x.y \
Expand Down
Loading
Loading