Skip to content

Commit 6fdda45

Browse files
github-actions[bot]Ruinong TianSageMaker Distribution Bot
authored
release: v1.12.1 (#558)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Ruinong Tian <[email protected]> Co-authored-by: SageMaker Distribution Bot <sm-distribution-github-bot[bot]@amazon.com>
1 parent 9837726 commit 6fdda45

27 files changed

+2020
-0
lines changed

Diff for: build_artifacts/v1/v1.12/v1.12.1/CHANGELOG-cpu.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Change log: 1.12.1(cpu)
2+
3+
## Upgrades:
4+
5+
Package | Previous Version | Current Version
6+
---|---|---
7+
jupyterlab|4.3.4|4.3.5
8+
amazon-q-developer-jupyterlab-ext|3.4.5|3.4.6
9+
amazon-sagemaker-jupyter-ai-q-developer|1.0.14|1.0.16
10+
amazon-sagemaker-jupyter-scheduler|3.1.8|3.1.9
11+
fastapi|0.115.6|0.115.8
12+
sagemaker-jupyterlab-emr-extension|0.3.5|0.3.7
13+
sagemaker-studio-analytics-extension|0.1.3|0.1.4

Diff for: build_artifacts/v1/v1.12/v1.12.1/CHANGELOG-gpu.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Change log: 1.12.1(gpu)
2+
3+
## Upgrades:
4+
5+
Package | Previous Version | Current Version
6+
---|---|---
7+
jupyterlab|4.3.4|4.3.5
8+
amazon-q-developer-jupyterlab-ext|3.4.5|3.4.6
9+
amazon-sagemaker-jupyter-ai-q-developer|1.0.14|1.0.16
10+
amazon-sagemaker-jupyter-scheduler|3.1.8|3.1.9
11+
fastapi|0.115.6|0.115.8
12+
sagemaker-jupyterlab-emr-extension|0.3.5|0.3.7
13+
sagemaker-studio-analytics-extension|0.1.3|0.1.4

Diff for: build_artifacts/v1/v1.12/v1.12.1/Dockerfile

+213
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
ARG TAG_FOR_BASE_MICROMAMBA_IMAGE
2+
FROM mambaorg/micromamba:$TAG_FOR_BASE_MICROMAMBA_IMAGE
3+
4+
ARG CUDA_MAJOR_MINOR_VERSION=''
5+
ARG ENV_IN_FILENAME
6+
ARG ARG_BASED_ENV_IN_FILENAME
7+
ARG IMAGE_VERSION
8+
9+
ARG AMZN_BASE="/opt/amazon/sagemaker"
10+
ARG DB_ROOT_DIR="/opt/db"
11+
ARG DIRECTORY_TREE_STAGE_DIR="${AMZN_BASE}/dir-staging"
12+
13+
ARG NB_USER="sagemaker-user"
14+
ARG NB_UID=1000
15+
ARG NB_GID=100
16+
17+
# https://www.openssl.org/source/
18+
ARG FIPS_VALIDATED_SSL=3.0.8
19+
20+
ENV SAGEMAKER_LOGGING_DIR="/var/log/sagemaker/"
21+
ENV STUDIO_LOGGING_DIR="/var/log/studio/"
22+
ENV EDITOR="nano"
23+
ENV IMAGE_VERSION=$IMAGE_VERSION
24+
ENV PINNED_MICROMAMBA_MINOR_VERSION="1.5.*"
25+
26+
USER root
27+
# Upgrade micromamba to the latest patch version in the pinned minor version range, if applicable
28+
RUN CURRENT_MICROMAMBA_VERSION=$(micromamba --version) && \
29+
echo "Current micromamba version: $CURRENT_MICROMAMBA_VERSION" && \
30+
if [[ "$CURRENT_MICROMAMBA_VERSION" == $PINNED_MICROMAMBA_MINOR_VERSION ]]; then \
31+
echo "Upgrading micromamba to the latest $PINNED_MICROMAMBA_MINOR_VERSION version..." && \
32+
micromamba self-update -c conda-forge --version "$MIN_REQUIRED_MICROMAMBA_VERSION" && \
33+
micromamba clean --all --yes --force-pkgs-dirs; \
34+
else \
35+
echo "Micromamba is already at version $CURRENT_MICROMAMBA_VERSION (outside $PINNED_MICROMAMBA_MINOR_VERSION). No upgrade performed."; \
36+
fi
37+
38+
RUN usermod "--login=${NB_USER}" "--home=/home/${NB_USER}" --move-home "-u ${NB_UID}" "${MAMBA_USER}" && \
39+
groupmod "--new-name=${NB_USER}" --non-unique "-g ${NB_GID}" "${MAMBA_USER}" && \
40+
# Update the expected value of MAMBA_USER for the
41+
# _entrypoint.sh consistency check.
42+
echo "${NB_USER}" > "/etc/arg_mamba_user" && \
43+
:
44+
ENV MAMBA_USER=$NB_USER
45+
ENV USER=$NB_USER
46+
47+
RUN apt-get update && apt-get upgrade -y && \
48+
apt-get install -y --no-install-recommends sudo gettext-base wget curl unzip git rsync build-essential openssh-client nano cron less mandoc && \
49+
# We just install tzdata below but leave default time zone as UTC. This helps packages like Pandas to function correctly.
50+
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata krb5-user libkrb5-dev libsasl2-dev libsasl2-modules && \
51+
chmod g+w /etc/passwd && \
52+
echo "ALL ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && \
53+
touch /etc/krb5.conf.lock && chown ${NB_USER}:${MAMBA_USER} /etc/krb5.conf* && \
54+
# Note that we do NOT run `rm -rf /var/lib/apt/lists/*` here. If we did, anyone building on top of our images will
55+
# not be able to run any `apt-get install` commands and that would hamper customizability of the images.
56+
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \
57+
unzip awscliv2.zip && \
58+
sudo ./aws/install && \
59+
rm -rf aws awscliv2.zip && \
60+
:
61+
RUN echo "source /usr/local/bin/_activate_current_env.sh" | tee --append /etc/profile
62+
63+
# CodeEditor - create server, user data dirs
64+
RUN mkdir -p /opt/amazon/sagemaker/sagemaker-code-editor-server-data /opt/amazon/sagemaker/sagemaker-code-editor-user-data \
65+
&& chown $MAMBA_USER:$MAMBA_USER /opt/amazon/sagemaker/sagemaker-code-editor-server-data /opt/amazon/sagemaker/sagemaker-code-editor-user-data
66+
67+
# create dir to store user data files
68+
RUN mkdir -p /opt/amazon/sagemaker/user-data \
69+
&& chown $MAMBA_USER:$MAMBA_USER /opt/amazon/sagemaker/user-data
70+
71+
72+
# Merge in OS directory tree contents.
73+
RUN mkdir -p ${DIRECTORY_TREE_STAGE_DIR}
74+
COPY dirs/ ${DIRECTORY_TREE_STAGE_DIR}/
75+
RUN rsync -a ${DIRECTORY_TREE_STAGE_DIR}/ / && \
76+
rm -rf ${DIRECTORY_TREE_STAGE_DIR}
77+
78+
# CodeEditor - download the extensions
79+
RUN mkdir -p /etc/code-editor/extensions && \
80+
while IFS= read -r url || [ -n "$url" ]; do \
81+
echo "Downloading extension from ${url}..." && \
82+
wget --no-check-certificate -P /etc/code-editor/extensions "${url}"; \
83+
done < /etc/code-editor/extensions.txt
84+
85+
USER $MAMBA_USER
86+
COPY --chown=$MAMBA_USER:$MAMBA_USER $ENV_IN_FILENAME *.in /tmp/
87+
88+
# Make sure that $ENV_IN_FILENAME has a newline at the end before the `tee` command runs. Otherwise, nasty things
89+
# will happen.
90+
RUN if [[ -z $ARG_BASED_ENV_IN_FILENAME ]] ; \
91+
then echo 'No ARG_BASED_ENV_IN_FILENAME passed' ; \
92+
else envsubst < /tmp/$ARG_BASED_ENV_IN_FILENAME | tee --append /tmp/$ENV_IN_FILENAME ; \
93+
fi
94+
95+
ARG CONDA_OVERRIDE_CUDA=$CUDA_MAJOR_MINOR_VERSION
96+
RUN micromamba install -y --name base --file /tmp/$ENV_IN_FILENAME && \
97+
micromamba clean --all --yes --force-pkgs-dirs && \
98+
rm -rf /tmp/*.in
99+
100+
101+
ARG MAMBA_DOCKERFILE_ACTIVATE=1
102+
RUN sudo ln -s $(which python3) /usr/bin/python && \
103+
# Update npm version
104+
npm update -g npm
105+
106+
# Configure CodeEditor - Install extensions and set preferences
107+
RUN \
108+
extensionloc=/opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions && mkdir -p "${extensionloc}" \
109+
# Loop through all vsix files in /etc/code-editor/extensions and install them
110+
&& for ext in /etc/code-editor/extensions/*.vsix; do \
111+
echo "Installing extension ${ext}..."; \
112+
sagemaker-code-editor --install-extension "${ext}" --extensions-dir "${extensionloc}" --server-data-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data --user-data-dir /opt/amazon/sagemaker/sagemaker-code-editor-user-data; \
113+
done \
114+
# Copy the settings
115+
&& cp /etc/code-editor/code_editor_machine_settings.json /opt/amazon/sagemaker/sagemaker-code-editor-server-data/data/Machine/settings.json \
116+
&& cp /etc/code-editor/code_editor_user_settings.json /opt/amazon/sagemaker/sagemaker-code-editor-server-data/data/User/settings.json
117+
118+
# Install glue kernels, and move to shared directory
119+
# Also patching base kernel so Studio background code doesn't start session silently
120+
RUN install-glue-kernels && \
121+
SITE_PACKAGES=$(pip show aws-glue-sessions | grep Location | awk '{print $2}') && \
122+
jupyter-kernelspec install $SITE_PACKAGES/aws_glue_interactive_sessions_kernel/glue_pyspark --user && \
123+
jupyter-kernelspec install $SITE_PACKAGES/aws_glue_interactive_sessions_kernel/glue_spark --user && \
124+
mv /home/sagemaker-user/.local/share/jupyter/kernels/glue_pyspark /opt/conda/share/jupyter/kernels && \
125+
mv /home/sagemaker-user/.local/share/jupyter/kernels/glue_spark /opt/conda/share/jupyter/kernels && \
126+
sed -i '/if not store_history and (/i\ if "sm_analytics_runtime_check" in code:\n return await self._complete_cell()\n' \
127+
"$SITE_PACKAGES/aws_glue_interactive_sessions_kernel/glue_kernel_base/BaseKernel.py"
128+
129+
130+
# Patch glue kernels to use kernel wrapper
131+
COPY patch_glue_pyspark.json /opt/conda/share/jupyter/kernels/glue_pyspark/kernel.json
132+
COPY patch_glue_spark.json /opt/conda/share/jupyter/kernels/glue_spark/kernel.json
133+
134+
# Configure RTC - disable jupyter_collaboration by default
135+
RUN jupyter labextension disable @jupyter/collaboration-extension
136+
137+
USER root
138+
RUN HOME_DIR="/home/${NB_USER}/licenses" \
139+
&& mkdir -p ${HOME_DIR} \
140+
&& curl -o ${HOME_DIR}/oss_compliance.zip https://aws-dlinfra-utilities.s3.amazonaws.com/oss_compliance.zip \
141+
&& unzip ${HOME_DIR}/oss_compliance.zip -d ${HOME_DIR}/ \
142+
&& cp ${HOME_DIR}/oss_compliance/test/testOSSCompliance /usr/local/bin/testOSSCompliance \
143+
&& chmod +x /usr/local/bin/testOSSCompliance \
144+
&& chmod +x ${HOME_DIR}/oss_compliance/generate_oss_compliance.sh \
145+
&& ${HOME_DIR}/oss_compliance/generate_oss_compliance.sh ${HOME_DIR} python \
146+
&& rm -rf ${HOME_DIR}/oss_compliance*
147+
148+
# Create logging directories for supervisor
149+
RUN mkdir -p $SAGEMAKER_LOGGING_DIR && \
150+
chmod a+rw $SAGEMAKER_LOGGING_DIR && \
151+
mkdir -p ${STUDIO_LOGGING_DIR} && \
152+
chown ${NB_USER}:${MAMBA_USER} ${STUDIO_LOGGING_DIR}
153+
154+
# Clean up CodeEditor artifacts
155+
RUN rm -rf /etc/code-editor
156+
157+
# Create supervisord runtime directory
158+
RUN mkdir -p /var/run/supervisord && \
159+
chmod a+rw /var/run/supervisord
160+
161+
# Create root directory for DB
162+
# Create logging directories for supervisor
163+
RUN mkdir -p $DB_ROOT_DIR && \
164+
chmod a+rw $DB_ROOT_DIR
165+
166+
USER $MAMBA_USER
167+
ENV PATH="/opt/conda/bin:/opt/conda/condabin:$PATH"
168+
WORKDIR "/home/${NB_USER}"
169+
170+
# Install FIPS Provider for OpenSSL, on top of existing OpenSSL installation
171+
# v3.0.8 is latest FIPS validated provider, so this is the one we install
172+
# But we need to run tests against the installed version.
173+
# see https://github.com/openssl/openssl/blob/master/README-FIPS.md https://www.openssl.org/source/
174+
RUN INSTALLED_SSL=$(micromamba list | grep openssl | tr -s ' ' | cut -d ' ' -f 3 | head -n 1) && \
175+
# download source code for installed, and FIPS validated openssl versions
176+
curl -L https://github.com/openssl/openssl/releases/download/openssl-$FIPS_VALIDATED_SSL/openssl-$FIPS_VALIDATED_SSL.tar.gz > openssl-$FIPS_VALIDATED_SSL.tar.gz && \
177+
curl -L https://github.com/openssl/openssl/releases/download/openssl-$INSTALLED_SSL/openssl-$INSTALLED_SSL.tar.gz > openssl-$INSTALLED_SSL.tar.gz && \
178+
tar -xf openssl-$FIPS_VALIDATED_SSL.tar.gz && tar -xf openssl-$INSTALLED_SSL.tar.gz && cd openssl-$FIPS_VALIDATED_SSL && \
179+
# Configure both versions to enable FIPS and build
180+
./Configure enable-fips --prefix=/opt/conda --openssldir=/opt/conda/ssl && make && \
181+
cd ../openssl-$INSTALLED_SSL && \
182+
./Configure enable-fips --prefix=/opt/conda --openssldir=/opt/conda/ssl && make && \
183+
# Copy validated provider to installed version for testing
184+
cp ../openssl-$FIPS_VALIDATED_SSL/providers/fips.so providers/. && \
185+
cp ../openssl-$FIPS_VALIDATED_SSL/providers/fipsmodule.cnf providers/. && \
186+
make tests && cd ../openssl-$FIPS_VALIDATED_SSL && \
187+
# After tests pass, install FIPS provider and remove source code
188+
make install_fips && cd .. && rm -rf ./openssl-*
189+
# Create new config file with fips-enabled. Then user can override OPENSSL_CONF to enable FIPS
190+
# e.g. export OPENSSL_CONF=/opt/conda/ssl/openssl-fips.cnf
191+
RUN cp /opt/conda/ssl/openssl.cnf /opt/conda/ssl/openssl-fips.cnf && \
192+
sed -i "s:# .include fipsmodule.cnf:.include /opt/conda/ssl/fipsmodule.cnf:" /opt/conda/ssl/openssl-fips.cnf && \
193+
sed -i 's:# fips = fips_sect:fips = fips_sect:' /opt/conda/ssl/openssl-fips.cnf
194+
ENV OPENSSL_MODULES=/opt/conda/lib64/ossl-modules/
195+
196+
# Install Kerberos.
197+
# Make sure no dependency is added/updated
198+
RUN pip install "krb5>=0.5.1,<0.6" && \
199+
pip show krb5 | grep Require | xargs -i sh -c '[ $(echo {} | cut -d: -f2 | wc -w) -eq 0 ] '
200+
201+
# https://stackoverflow.com/questions/122327
202+
RUN SYSTEM_PYTHON_PATH=$(python3 -c "from __future__ import print_function;import sysconfig; print(sysconfig.get_paths().get('purelib'))") && \
203+
# Remove SparkRKernel as it's not supported \
204+
jupyter-kernelspec remove -f -y sparkrkernel && \
205+
# Patch Sparkmagic lib to support Custom Certificates \
206+
# https://github.com/jupyter-incubator/sparkmagic/pull/435/files \
207+
cp -a ${SYSTEM_PYTHON_PATH}/sagemaker_studio_analytics_extension/patches/configuration.py ${SYSTEM_PYTHON_PATH}/sparkmagic/utils/ && \
208+
cp -a ${SYSTEM_PYTHON_PATH}/sagemaker_studio_analytics_extension/patches/reliablehttpclient.py ${SYSTEM_PYTHON_PATH}/sparkmagic/livyclientlib/reliablehttpclient.py && \
209+
sed -i 's= "python"= "/opt/conda/bin/python"=g' /opt/conda/share/jupyter/kernels/pysparkkernel/kernel.json /opt/conda/share/jupyter/kernels/sparkkernel/kernel.json && \
210+
sed -i 's="Spark"="SparkMagic Spark"=g' /opt/conda/share/jupyter/kernels/sparkkernel/kernel.json && \
211+
sed -i 's="PySpark"="SparkMagic PySpark"=g' /opt/conda/share/jupyter/kernels/pysparkkernel/kernel.json
212+
213+
ENV SHELL=/bin/bash

Diff for: build_artifacts/v1/v1.12/v1.12.1/RELEASE.md

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Release notes: 1.12.1
2+
3+
Package | gpu| cpu
4+
---|---|---
5+
python|3.10.16|3.10.16
6+
numpy|1.26.4|1.26.4
7+
jinja2|3.1.5|3.1.5
8+
pytorch|2.0.0|2.0.0
9+
altair|5.5.0|5.5.0
10+
boto3|1.34.162|1.34.162
11+
ipython|8.31.0|8.31.0
12+
jupyter-lsp|2.2.5|2.2.5
13+
jupyterlab|4.3.5|4.3.5
14+
amazon-q-developer-jupyterlab-ext|3.4.6|3.4.6
15+
langchain|0.2.17|0.2.17
16+
jupyter-ai|2.28.5|2.28.5
17+
amazon-sagemaker-jupyter-ai-q-developer|1.0.16|1.0.16
18+
jupyter-scheduler|2.10.0|2.10.0
19+
amazon-sagemaker-jupyter-scheduler|3.1.9|3.1.9
20+
pandas|2.1.4|2.1.4
21+
amazon-sagemaker-sql-magic|0.1.3|0.1.3
22+
jupyterlab-lsp|5.0.3|5.0.3
23+
amazon_sagemaker_sql_editor|0.1.14|0.1.14
24+
scipy|1.11.4|1.11.4
25+
scikit-learn|1.4.2|1.4.2
26+
evaluate|0.4.1|0.4.1
27+
pip|23.3.2|23.3.2
28+
torchvision|0.15.2|0.15.2
29+
autogluon|0.8.3|0.8.3
30+
ipywidgets|8.1.5|8.1.5
31+
notebook|7.3.2|7.3.2
32+
aws-glue-sessions|1.0.8|1.0.8
33+
libmamba|1.5.11|1.5.11
34+
conda|23.11.0|23.11.0
35+
uvicorn|0.34.0|0.34.0
36+
fastapi|0.115.8|0.115.8
37+
jupyter-collaboration|1.2.0|1.2.0
38+
jupyter-dash|0.4.2|0.4.2
39+
jupyter-server-proxy|4.4.0|4.4.0
40+
jupyterlab-git|0.50.2|0.50.2
41+
keras|2.14.0|2.15.0
42+
langchain-aws|0.1.18|0.1.18
43+
matplotlib|3.10.0|3.10.0
44+
nodejs|18.20.3|18.20.3
45+
py-xgboost-gpu|1.7.6|
46+
pyarrow-hotfix|0.6|
47+
thrift_sasl|0.4.3|0.4.3
48+
pyhive|0.7.0|0.7.0
49+
python-gssapi|1.9.0|1.9.0
50+
python-lsp-server|1.12.0|1.12.0
51+
sagemaker-code-editor|1.1.5|1.1.5
52+
sagemaker-headless-execution-driver|0.0.13|0.0.13
53+
sagemaker-jupyterlab-emr-extension|0.3.7|0.3.7
54+
sagemaker-jupyterlab-extension|0.3.3|0.3.3
55+
sagemaker-kernel-wrapper|0.0.4|0.0.4
56+
sagemaker-python-sdk|2.228.0|2.228.0
57+
sagemaker-studio-analytics-extension|0.1.4|0.1.4
58+
sasl|0.3.1|0.3.1
59+
supervisor|4.2.5|4.2.5
60+
tensorflow|2.14.0|2.15.0
61+
catboost| |1.2.7
62+
py-xgboost-cpu| |1.7.6

Diff for: build_artifacts/v1/v1.12/v1.12.1/cpu.env.in

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# This file is auto-generated.
2+
conda-forge::langchain-aws[version='>=0.1.18,<0.2.0']
3+
conda-forge::jupyter-collaboration[version='>=1.2.0,<1.3.0']
4+
conda-forge::sagemaker-code-editor[version='>=1.1.5,<1.2.0']
5+
conda-forge::amazon_sagemaker_sql_editor[version='>=0.1.14,<0.2.0']
6+
conda-forge::amazon-sagemaker-sql-magic[version='>=0.1.3,<0.2.0']
7+
conda-forge::amazon-sagemaker-jupyter-ai-q-developer[version='>=1.0.14,<1.1.0']
8+
conda-forge::amazon-q-developer-jupyterlab-ext[version='>=3.4.5,<3.5.0']
9+
conda-forge::langchain[version='>=0.2.17,<0.3.0']
10+
conda-forge::fastapi[version='>=0.115.6,<0.116.0']
11+
conda-forge::uvicorn[version='>=0.34.0,<0.35.0']
12+
conda-forge::pytorch[version='>=2.0.0,<2.1.0']
13+
conda-forge::tensorflow[version='>=2.15.0,<2.16.0']
14+
conda-forge::python[version='>=3.10.16,<3.11.0']
15+
conda-forge::pip[version='>=23.3.2,<23.4.0']
16+
conda-forge::torchvision[version='>=0.15.2,<0.16.0']
17+
conda-forge::numpy[version='>=1.26.4,<1.27.0']
18+
conda-forge::pandas[version='>=2.1.4,<2.2.0']
19+
conda-forge::scikit-learn[version='>=1.4.2,<1.5.0']
20+
conda-forge::jinja2[version='>=3.1.5,<3.2.0']
21+
conda-forge::matplotlib[version='>=3.10.0,<3.11.0']
22+
conda-forge::sagemaker-headless-execution-driver[version='>=0.0.13,<0.1.0']
23+
conda-forge::ipython[version='>=8.31.0,<8.32.0']
24+
conda-forge::scipy[version='>=1.11.4,<1.12.0']
25+
conda-forge::keras[version='>=2.15.0,<2.16.0']
26+
conda-forge::py-xgboost-cpu[version='>=1.7.6,<1.8.0']
27+
conda-forge::jupyterlab[version='>=4.3.4,<4.4.0']
28+
conda-forge::ipywidgets[version='>=8.1.5,<8.2.0']
29+
conda-forge::conda[version='>=23.11.0,<23.12.0']
30+
conda-forge::boto3[version='>=1.34.162,<1.35.0']
31+
conda-forge::sagemaker-python-sdk[version='>=2.228.0,<2.229.0']
32+
conda-forge::supervisor[version='>=4.2.5,<4.3.0']
33+
conda-forge::autogluon[version='>=0.8.3,<0.9.0']
34+
conda-forge::aws-glue-sessions[version='>=1.0.8,<1.1.0']
35+
conda-forge::sagemaker-kernel-wrapper[version='>=0.0.4,<0.1.0']
36+
conda-forge::jupyter-ai[version='>=2.28.5,<2.29.0']
37+
conda-forge::jupyter-scheduler[version='>=2.10.0,<2.11.0']
38+
conda-forge::nodejs[version='>=18.20.3,<18.21.0']
39+
conda-forge::jupyter-lsp[version='>=2.2.5,<2.3.0']
40+
conda-forge::jupyterlab-lsp[version='>=5.0.3,<5.1.0']
41+
conda-forge::python-lsp-server[version='>=1.12.0,<1.13.0']
42+
conda-forge::notebook[version='>=7.3.2,<7.4.0']
43+
conda-forge::altair[version='>=5.5.0,<5.6.0']
44+
conda-forge::sagemaker-studio-analytics-extension[version='>=0.1.3,<0.2.0']
45+
conda-forge::jupyter-dash[version='>=0.4.2,<0.5.0']
46+
conda-forge::sagemaker-jupyterlab-extension[version='>=0.3.3,<0.4.0']
47+
conda-forge::sagemaker-jupyterlab-emr-extension[version='>=0.3.5,<0.4.0']
48+
conda-forge::amazon-sagemaker-jupyter-scheduler[version='>=3.1.8,<3.2.0']
49+
conda-forge::jupyter-server-proxy[version='>=4.4.0,<4.5.0']
50+
conda-forge::jupyterlab-git[version='>=0.50.2,<0.51.0']
51+
conda-forge::sasl[version='>=0.3.1,<0.4.0']
52+
conda-forge::thrift_sasl[version='>=0.4.3,<0.5.0']
53+
conda-forge::pyhive[version='>=0.7.0,<0.8.0']
54+
conda-forge::python-gssapi[version='>=1.9.0,<1.10.0']
55+
conda-forge::libmamba[version='<2.0.0']
56+
conda-forge::evaluate[version='<0.4.2']
57+
conda-forge::catboost[version='>=1.1.1,<1.3.0',build='*cpu*']

0 commit comments

Comments
 (0)