Merge pull request #4443 from manics/node18

Update jsx dependencies as much as possible
This commit is contained in:
Simon Li
2023-05-11 00:35:43 +01:00
committed by GitHub
4 changed files with 9521 additions and 7656 deletions

View File

@@ -84,7 +84,7 @@ jobs:
publish-docker: publish-docker:
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
timeout-minutes: 30 timeout-minutes: 20
services: services:
# So that we can test this in PRs/branches # So that we can test this in PRs/branches

View File

@@ -21,37 +21,83 @@
# your jupyterhub_config.py will be added automatically # your jupyterhub_config.py will be added automatically
# from your docker directory. # from your docker directory.
######################################################################
# This Dockerfile uses multi-stage builds with optimisations to build
# the JupyterHub wheel on the native architecture only
# https://www.docker.com/blog/faster-multi-platform-builds-dockerfile-cross-compilation-guide/
ARG BASE_IMAGE=ubuntu:22.04 ARG BASE_IMAGE=ubuntu:22.04
FROM $BASE_IMAGE AS builder
######################################################################
# The JupyterHub wheel is pure Python so can be built for any platform
# on the native architecture (avoiding QEMU emulation)
FROM --platform=${BUILDPLATFORM:-linux/amd64} $BASE_IMAGE AS jupyterhub-builder
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
WORKDIR /src/jupyterhub
RUN apt update -q \ # Don't clear apt cache, and don't combine RUN commands, so that cached layers can
&& apt install -yq --no-install-recommends \ # be reused in other stages
RUN apt-get update -qq \
&& apt-get install -yqq --no-install-recommends \
build-essential \ build-essential \
ca-certificates \ ca-certificates \
curl \
locales \ locales \
python3-dev \ python3-dev \
python3-pip \ python3-pip \
python3-pycurl \ python3-pycurl \
python3-venv \ python3-venv \
&& python3 -m pip install --no-cache-dir --upgrade setuptools pip build wheel
# Ubuntu 22.04 comes with Nodejs 12 which is too old for building JupyterHub JS
# It's fine at runtime though (used only by configurable-http-proxy)
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
&& apt-get install -yqq --no-install-recommends \
nodejs \ nodejs \
npm \
&& apt clean \
&& rm -rf /var/lib/apt/lists/* \
&& python3 -m pip install --no-cache-dir --upgrade setuptools pip build wheel \
&& npm install --global yarn && npm install --global yarn
WORKDIR /src/jupyterhub
# copy everything except whats in .dockerignore, its a # copy everything except whats in .dockerignore, its a
# compromise between needing to rebuild and maintaining # compromise between needing to rebuild and maintaining
# what needs to be part of the build # what needs to be part of the build
COPY . . COPY . .
ARG PIP_CACHE_DIR=/tmp/pip-cache ARG PIP_CACHE_DIR=/tmp/pip-cache
RUN --mount=type=cache,target=${PIP_CACHE_DIR} \ RUN --mount=type=cache,target=${PIP_CACHE_DIR} \
python3 -m build --wheel \ python3 -m build --wheel
&& python3 -m pip wheel --wheel-dir wheelhouse dist/*.whl
######################################################################
# All other wheels required by JupyterHub, some are platform specific
FROM $BASE_IMAGE AS wheel-builder
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq \
&& apt-get install -yqq --no-install-recommends \
build-essential \
ca-certificates \
curl \
locales \
python3-dev \
python3-pip \
python3-pycurl \
python3-venv \
&& python3 -m pip install --no-cache-dir --upgrade setuptools pip build wheel
WORKDIR /src/jupyterhub
COPY --from=jupyterhub-builder /src/jupyterhub/dist/*.whl /src/jupyterhub/dist/
ARG PIP_CACHE_DIR=/tmp/pip-cache
RUN --mount=type=cache,target=${PIP_CACHE_DIR} \
python3 -m pip wheel --wheel-dir wheelhouse dist/*.whl
######################################################################
# The final JupyterHub image, platform specific
FROM $BASE_IMAGE AS jupyterhub
FROM $BASE_IMAGE
ENV DEBIAN_FRONTEND=noninteractive \ ENV DEBIAN_FRONTEND=noninteractive \
SHELL=/bin/bash \ SHELL=/bin/bash \
LC_ALL=en_US.UTF-8 \ LC_ALL=en_US.UTF-8 \
@@ -66,8 +112,8 @@ LABEL org.jupyter.service="jupyterhub"
WORKDIR /srv/jupyterhub WORKDIR /srv/jupyterhub
RUN apt update -q \ RUN apt-get update -qq \
&& apt install -yq --no-install-recommends \ && apt-get install -yqq --no-install-recommends \
ca-certificates \ ca-certificates \
curl \ curl \
gnupg \ gnupg \
@@ -80,10 +126,9 @@ RUN apt update -q \
&& locale-gen $LC_ALL \ && locale-gen $LC_ALL \
&& npm install -g configurable-http-proxy@^4.2.0 \ && npm install -g configurable-http-proxy@^4.2.0 \
# clean cache and logs # clean cache and logs
&& rm -rf /var/lib/apt/lists/* /var/log/* /var/tmp/* ~/.npm \ && rm -rf /var/lib/apt/lists/* /var/log/* /var/tmp/* ~/.npm
&& find / -type d -name '__pycache__' -prune -exec rm -rf {} \; # install the wheels we built in the previous stage
# install the wheels we built in the first stage RUN --mount=type=cache,from=wheel-builder,source=/src/jupyterhub/wheelhouse,target=/tmp/wheelhouse \
RUN --mount=type=cache,from=builder,source=/src/jupyterhub/wheelhouse,target=/tmp/wheelhouse \
# always make sure pip is up to date! # always make sure pip is up to date!
python3 -m pip install --no-compile --no-cache-dir --upgrade setuptools pip \ python3 -m pip install --no-compile --no-cache-dir --upgrade setuptools pip \
&& python3 -m pip install --no-compile --no-cache-dir /tmp/wheelhouse/* && python3 -m pip install --no-compile --no-cache-dir /tmp/wheelhouse/*

View File

@@ -25,50 +25,49 @@
"moduleNameMapper": { "moduleNameMapper": {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js", "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(css|less)$": "identity-obj-proxy" "\\.(css|less)$": "identity-obj-proxy"
} },
"testEnvironment": "jsdom"
}, },
"dependencies": { "dependencies": {
"bootstrap": "^4.5.3", "bootstrap": "^5.2.3",
"history": "^5.0.0", "history": "^5.3.0",
"lodash.debounce": "^4.0.8", "lodash": "^4.17.21",
"prop-types": "^15.7.2", "prop-types": "^15.8.1",
"react": "^17.0.1", "react": "^17.0.2",
"react-bootstrap": "^2.1.1", "react-bootstrap": "^2.7.4",
"react-dom": "^17.0.1", "react-dom": "^17.0.2",
"react-icons": "^4.1.0", "react-icons": "^4.8.0",
"react-multi-select-component": "^3.0.7", "react-multi-select-component": "^4.3.4",
"react-redux": "^7.2.2", "react-redux": "^7.2.8",
"react-router": "^5.2.0", "react-router-dom": "^5.3.4",
"react-router-dom": "^5.2.0", "recompose": "npm:react-recompose@^0.33.0",
"recompose": "npm:react-recompose@^0.31.2", "redux": "^4.2.1",
"redux": "^4.0.5", "regenerator-runtime": "^0.13.11"
"regenerator-runtime": "^0.13.9"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.12.3", "@babel/core": "^7.21.4",
"@babel/preset-env": "^7.12.11", "@babel/preset-env": "^7.21.4",
"@babel/preset-react": "^7.12.10", "@babel/preset-react": "^7.18.6",
"@testing-library/jest-dom": "^5.15.1", "@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^12.1.2", "@testing-library/react": "^12.1.5",
"@testing-library/user-event": "^13.5.0", "@testing-library/user-event": "^13.5.0",
"@webpack-cli/serve": "^1.7.0", "@webpack-cli/serve": "^2.0.1",
"@wojtekmaj/enzyme-adapter-react-17": "^0.6.5", "babel-jest": "^29.5.0",
"babel-jest": "^26.6.3", "babel-loader": "^9.1.2",
"babel-loader": "^8.2.1", "css-loader": "^6.7.3",
"css-loader": "^5.0.1", "eslint": "^8.38.0",
"enzyme": "^3.11.0", "eslint-plugin-prettier": "^4.2.1",
"eslint": "^7.18.0", "eslint-plugin-react": "^7.32.2",
"eslint-plugin-prettier": "^3.3.1", "eslint-plugin-unused-imports": "^2.0.0",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-unused-imports": "^1.1.1",
"file-loader": "^6.2.0", "file-loader": "^6.2.0",
"identity-obj-proxy": "^3.0.0", "identity-obj-proxy": "^3.0.0",
"jest": "^26.6.3", "jest": "^29.5.0",
"prettier": "^2.2.1", "jest-environment-jsdom": "^29.5.0",
"sinon": "^13.0.1", "prettier": "^2.8.7",
"style-loader": "^2.0.0", "sinon": "^15.0.3",
"webpack": "^5.76.0", "style-loader": "^3.3.2",
"webpack-cli": "^4.10.0", "webpack": "^5.79.0",
"webpack-dev-server": "^4.9.3" "webpack-cli": "^5.0.1",
"webpack-dev-server": "^4.13.3"
} }
} }

File diff suppressed because it is too large Load Diff