Skip to content
Merged
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
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 && rm 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