From 91b7bea1e20a5683af8c44612bd6ea94afd9fcf4 Mon Sep 17 00:00:00 2001 From: V <156962295+vevetron@users.noreply.github.com> Date: Wed, 15 Jan 2025 14:48:49 -0800 Subject: [PATCH] fix(jupyter-singleuser): hold down setuptools version so it stops breaking and deploy the next image to the testing slot (#3650) --- images/jupyter-singleuser/Dockerfile | 4 +- images/jupyter-singleuser/README.md | 10 +- images/jupyter-singleuser/poetry.lock | 189 +----------------- images/jupyter-singleuser/pyproject.toml | 6 +- kubernetes/apps/charts/jupyterhub/values.yaml | 4 +- 5 files changed, 20 insertions(+), 193 deletions(-) diff --git a/images/jupyter-singleuser/Dockerfile b/images/jupyter-singleuser/Dockerfile index a1c4e248bd..68fe4ce652 100644 --- a/images/jupyter-singleuser/Dockerfile +++ b/images/jupyter-singleuser/Dockerfile @@ -34,8 +34,8 @@ RUN npm install -g --unsafe-perm=true --allow-root netlify-cli RUN npm install -g --unsafe-perm=true --allow-root sql-language-server # gcloud CLI https://cloud.google.com/sdk/docs/install#deb RUN cd $GCLOUD_HOME \ - && curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-423.0.0-linux-x86_64.tar.gz \ - && tar -zxvf google-cloud-cli-423.0.0-linux-x86_64.tar.gz \ + && curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-cli-506.0.0-linux-x86_64.tar.gz \ + && tar -zxvf google-cloud-cli-506.0.0-linux-x86_64.tar.gz \ && ./google-cloud-sdk/install.sh ENV PATH="$GCLOUD_HOME/google-cloud-sdk/bin:$PATH" diff --git a/images/jupyter-singleuser/README.md b/images/jupyter-singleuser/README.md index 71fb17b87e..8861de33a6 100644 --- a/images/jupyter-singleuser/README.md +++ b/images/jupyter-singleuser/README.md @@ -16,14 +16,14 @@ Take the package versions from the build file and document with the PR. Do a cl ``` docker system prune -a # -docker build . 2>&1 | tee build.log +docker build -t envs-hurt . 2>&1 | tee build.log ``` - -```bash -docker build -t ghcr.io/cal-itp/data-infra/jupyter-singleuser:[NEW VERSION TAG] . +You can go into the docker image and do tests: +``` +docker list +docker exec -it upbeat_bhaskara /bin/bash ``` - ## Deploying Changes to Production diff --git a/images/jupyter-singleuser/poetry.lock b/images/jupyter-singleuser/poetry.lock index 075e6f92eb..fdaa1aaf03 100644 --- a/images/jupyter-singleuser/poetry.lock +++ b/images/jupyter-singleuser/poetry.lock @@ -338,54 +338,6 @@ dev = ["duckdb (>=1.0)", "geopandas", "hatch (>=1.13.0)", "ipython[kernel]", "mi doc = ["docutils", "jinja2", "myst-parser", "numpydoc", "pillow (>=9,<10)", "pydata-sphinx-theme (>=0.14.1)", "scipy", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinxext-altair"] save = ["vl-convert-python (>=1.7.0)"] -[[package]] -name = "altair-data-server" -version = "0.4.1" -description = "A background data server for Altair charts." -optional = false -python-versions = ">=3.6" -files = [ - {file = "altair_data_server-0.4.1-py3-none-any.whl", hash = "sha256:bd1414d69dbfec22c804b34210491d7313e5edc7736504dfb8c405ded0e2015b"}, - {file = "altair_data_server-0.4.1.tar.gz", hash = "sha256:b39205a48ab2678020fc58739cb973845879ed169cb5addddc9dcbf5a69aeb2b"}, -] - -[package.dependencies] -altair = "*" -portpicker = "*" -tornado = "*" - -[[package]] -name = "altair-saver" -version = "0.5.0" -description = "Altair extension for saving charts to various formats." -optional = false -python-versions = ">=3.6" -files = [ - {file = "altair_saver-0.5.0-py3-none-any.whl", hash = "sha256:e3b1049e565dd104aa8d5d3ec681a40479f9d070a3094f4918b64b8329308fab"}, - {file = "altair_saver-0.5.0.tar.gz", hash = "sha256:c098bcf6868e3ba11db108904dc3b8515b54505b89bca5f69527115487b88795"}, -] - -[package.dependencies] -altair = "*" -altair-data-server = ">=0.4.0" -altair-viewer = "*" -selenium = "*" - -[[package]] -name = "altair-viewer" -version = "0.4.0" -description = "Viewer for Altair and Vega-Lite visualizations." -optional = false -python-versions = ">=3.6" -files = [ - {file = "altair_viewer-0.4.0-py3-none-any.whl", hash = "sha256:5da49c52ad9fc56b823cc479b8e5332324d1544b3f7ae4939c25a8585eae5245"}, - {file = "altair_viewer-0.4.0.tar.gz", hash = "sha256:f5d33df775cb9094544f15e9b5788224488f506cf546c708980d2d44c2f93534"}, -] - -[package.dependencies] -altair = "*" -altair-data-server = ">=0.4.0" - [[package]] name = "ansicolors" version = "1.1.8" @@ -2595,17 +2547,6 @@ shapely = "*" thefuzz = "*" utm = "*" -[[package]] -name = "h11" -version = "0.14.0" -description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -optional = false -python-versions = ">=3.7" -files = [ - {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, - {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, -] - [[package]] name = "htmlmin" version = "0.1.12" @@ -4758,20 +4699,6 @@ files = [ [package.dependencies] six = ">=1.8.0" -[[package]] -name = "outcome" -version = "1.3.0.post0" -description = "Capture the outcome of Python function calls." -optional = false -python-versions = ">=3.7" -files = [ - {file = "outcome-1.3.0.post0-py2.py3-none-any.whl", hash = "sha256:e771c5ce06d1415e356078d3bdd68523f284b4ce5419828922b6871e65eda82b"}, - {file = "outcome-1.3.0.post0.tar.gz", hash = "sha256:9dcf02e65f2971b80047b377468e72a268e15c0af3cf1238e6ff14f7f91143b8"}, -] - -[package.dependencies] -attrs = ">=19.2.0" - [[package]] name = "packaging" version = "24.2" @@ -5220,20 +5147,6 @@ files = [ dev = ["pre-commit", "tox"] testing = ["pytest", "pytest-benchmark"] -[[package]] -name = "portpicker" -version = "1.6.0" -description = "A library to choose unique available network ports." -optional = false -python-versions = ">=3.6" -files = [ - {file = "portpicker-1.6.0-py3-none-any.whl", hash = "sha256:b2787a41404cf7edbe29b07b9e0ed863b09f2665dcc01c1eb0c2261c1e7d0755"}, - {file = "portpicker-1.6.0.tar.gz", hash = "sha256:bd507fd6f96f65ee02781f2e674e9dc6c99bbfa6e3c39992e3916204c9d431fa"}, -] - -[package.dependencies] -psutil = "*" - [[package]] name = "pre-commit" version = "2.18.1" @@ -5885,18 +5798,6 @@ files = [ [package.dependencies] certifi = "*" -[[package]] -name = "pysocks" -version = "1.7.1" -description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"}, - {file = "PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5"}, - {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, -] - [[package]] name = "pytest" version = "7.4.4" @@ -6814,25 +6715,6 @@ numpy = ">=1.15" pandas = ">=0.23" scipy = ">=1.0" -[[package]] -name = "selenium" -version = "4.27.1" -description = "Official Python bindings for Selenium WebDriver" -optional = false -python-versions = ">=3.8" -files = [ - {file = "selenium-4.27.1-py3-none-any.whl", hash = "sha256:b89b1f62b5cfe8025868556fe82360d6b649d464f75d2655cb966c8f8447ea18"}, - {file = "selenium-4.27.1.tar.gz", hash = "sha256:5296c425a75ff1b44d0d5199042b36a6d1ef76c04fb775b97b40be739a9caae2"}, -] - -[package.dependencies] -certifi = ">=2021.10.8" -trio = ">=0.17,<1.0" -trio-websocket = ">=0.9,<1.0" -typing_extensions = ">=4.9,<5.0" -urllib3 = {version = ">=1.26,<3", extras = ["socks"]} -websocket-client = ">=1.8,<2.0" - [[package]] name = "send2trash" version = "1.8.3" @@ -6851,23 +6733,19 @@ win32 = ["pywin32"] [[package]] name = "setuptools" -version = "75.8.0" +version = "68.2.2" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.9" +python-versions = ">=3.8" files = [ - {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"}, - {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"}, + {file = "setuptools-68.2.2-py3-none-any.whl", hash = "sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"}, + {file = "setuptools-68.2.2.tar.gz", hash = "sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"}, ] [package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.8.0)"] -core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.14.*)", "pytest-mypy"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "setuptools-scm" @@ -7775,40 +7653,6 @@ traitlets = ">=4.2.2" [package.extras] test = ["numpy", "pandas", "pytest", "xarray"] -[[package]] -name = "trio" -version = "0.28.0" -description = "A friendly Python library for async concurrency and I/O" -optional = false -python-versions = ">=3.9" -files = [ - {file = "trio-0.28.0-py3-none-any.whl", hash = "sha256:56d58977acc1635735a96581ec70513cc781b8b6decd299c487d3be2a721cd94"}, - {file = "trio-0.28.0.tar.gz", hash = "sha256:4e547896fe9e8a5658e54e4c7c5fa1db748cbbbaa7c965e7d40505b928c73c05"}, -] - -[package.dependencies] -attrs = ">=23.2.0" -cffi = {version = ">=1.14", markers = "os_name == \"nt\" and implementation_name != \"pypy\""} -idna = "*" -outcome = "*" -sniffio = ">=1.3.0" -sortedcontainers = "*" - -[[package]] -name = "trio-websocket" -version = "0.11.1" -description = "WebSocket library for Trio" -optional = false -python-versions = ">=3.7" -files = [ - {file = "trio-websocket-0.11.1.tar.gz", hash = "sha256:18c11793647703c158b1f6e62de638acada927344d534e3c7628eedcb746839f"}, - {file = "trio_websocket-0.11.1-py3-none-any.whl", hash = "sha256:520d046b0d030cf970b8b2b2e00c4c2245b3807853ecd44214acd33d74581638"}, -] - -[package.dependencies] -trio = ">=0.11" -wsproto = ">=0.14" - [[package]] name = "typeguard" version = "4.4.1" @@ -7920,9 +7764,6 @@ files = [ {file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"}, ] -[package.dependencies] -pysocks = {version = ">=1.5.6,<1.5.7 || >1.5.7,<2.0", optional = true, markers = "extra == \"socks\""} - [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] h2 = ["h2 (>=4,<5)"] @@ -8366,20 +8207,6 @@ files = [ {file = "wrapt-1.17.1.tar.gz", hash = "sha256:16b2fdfa09a74a3930175b6d9d7d008022aa72a4f02de2b3eecafcc1adfd3cfe"}, ] -[[package]] -name = "wsproto" -version = "1.2.0" -description = "WebSockets state-machine based protocol implementation" -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"}, - {file = "wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"}, -] - -[package.dependencies] -h11 = ">=0.9.0,<1" - [[package]] name = "xlrd" version = "2.0.1" @@ -8689,4 +8516,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = "~3.11" -content-hash = "6557f41f59b36b447ef757fa16794760e2ae4ed0fe046d6d197ad6885a733a84" +content-hash = "af6d1acda86a3ab63fa70ef7553fd459a4de6d3ccba1c8063a547cf483cefe5b" diff --git a/images/jupyter-singleuser/pyproject.toml b/images/jupyter-singleuser/pyproject.toml index 52638b184d..423502d920 100644 --- a/images/jupyter-singleuser/pyproject.toml +++ b/images/jupyter-singleuser/pyproject.toml @@ -1,9 +1,9 @@ [tool.poetry] name = "jupyter-singleuser" -version = "2025.1.13" +version = "2025.1.15" description = "" package-mode = false -authors = ["Soren Spicknall "] +authors = ["Vevetron"] [tool.poetry.dependencies] python = "~3.11" @@ -20,7 +20,6 @@ plotnine = ">=0.8.0" plotly = "5.5.0" folium = ">=0.12.1.post1" branca = "0.4.2" -altair-saver = ">=0.5.0" vega = "3.5.0" pygeos = "0.14.0" Rtree = "0.9.7" @@ -49,6 +48,7 @@ pendulum = "^2.1.2" calitp-data-analysis = "2024.12.6" calitp-map-utils = "2024.5.23" jupyter-server-proxy = "^4.1.1" +setuptools = "68.2.2" # For some reason, poetry/pip installs setuptools 75 then it starts to break. Probably be a conda backports related issue. Update later and test [tool.poetry.group.dev.dependencies] pytest = "^7.2.0" diff --git a/kubernetes/apps/charts/jupyterhub/values.yaml b/kubernetes/apps/charts/jupyterhub/values.yaml index 85f8dd4bb4..ce59313fd3 100644 --- a/kubernetes/apps/charts/jupyterhub/values.yaml +++ b/kubernetes/apps/charts/jupyterhub/values.yaml @@ -39,10 +39,10 @@ jupyterhub: mem_limit: "12G" mem_guarantee: "10G" cpu_guarantee: 1.5 - - display_name: "Prototype Image 2025.1.13" + - display_name: "Prototype Image 2025.1.15" description: "This is for testing the next image we will deploy." kubespawner_override: - image: ghcr.io/cal-itp/data-infra/jupyter-singleuser:2025.1.13 + image: ghcr.io/cal-itp/data-infra/jupyter-singleuser:2025.1.15 scheduling: userPods: nodeAffinity: