Repository: kubeflow/pipelines

Issue:
[sdk] jsonschema dependency pinning
### Environment

*  KFP SDK version: `>=1.8`


### Steps to reproduce

In the `requirements.in` file, `jsonschema >=3.0.1,<4`. A lot of other packages (e.g. [jupyterlab, via jupyterlab_server](https://github.com/conda-forge/jupyterlab_server-feedstock/blob/main/recipe/meta.yaml#L27)) have moved to `jsonschema >=4`

### Expected result

It should be possible to install kfp in the same environment as jupyterlab.

#### Attempt 1

Here is a docker file where the environment is created successfully, but `jupterlab_server` is broken because it didn't pin `jsonschema` properly.

```
FROM mambaorg/micromamba:jammy as build-stage

RUN micromamba install --name base --channel conda-forge \
    "python >=3.10" \
    "kfp >=1.8" \
    "jupyterlab >=3.5"

ARG MAMBA_DOCKERFILE_ACTIVATE=1  # (otherwise python will not be found)
RUN python -c "import kfp; print(kfp.__version__)"
RUN python -c "import jupyterlab_server; print(jupyterlab_server.__version__)"
```

`docker build --progress plain --no-cache -f Dockerfile .`

<details>

<summary>Docker build output</summary>

```bash
#1 [internal] load build definition from debugging.Dockerfile
#1 sha256:72a7d0078219e5aabc2b20905f1eda6c042b0871faff96192fd91696fe22ae06
#1 transferring dockerfile: 54B done
#1 DONE 0.0s

#2 [internal] load .dockerignore
#2 sha256:6f6399f5781af6f88a59e1b8fb6df788f99d62320b583d83e37211ae3e5917b2
#2 transferring context: 2B done
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/mambaorg/micromamba:jammy
#3 sha256:70f396090a53ab9b6a069cc5d6d0672a0924b076e550e08e2f4c414e429987cc
#3 DONE 1.1s

#4 [1/4] FROM docker.io/mambaorg/micromamba:jammy@sha256:3e3d2899397fb031d57d4269a19f7700d4eb72e802d1d1b8f6054acd93b6fe47
#4 sha256:4a94cba5ef489da4fe85e3887c63904a40cb788f5ac27ff5dff6a4f3998815af
#4 CACHED

#5 [2/4] RUN micromamba install --name base --channel conda-forge     "python >=3.10"     "kfp >=1.8"     "jupyterlab >=3.5"
#5 sha256:3855277fd177e022a0fd9b8478652f3563e2e3be3cbdb8c93c2e6b34728fe389
#5 0.276
#5 0.276                                            __
#5 0.276           __  ______ ___  ____ _____ ___  / /_  ____ _
#5 0.276          / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
#5 0.276         / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
#5 0.276        / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
#5 0.276       /_/
#5 0.276
#5 24.28
#5 24.28 Transaction
#5 24.28
#5 24.28   Prefix: /opt/conda
#5 24.28
#5 24.28   Updating specs:
#5 24.28
#5 24.28    - python[version='>=3.10']
#5 24.28    - kfp[version='>=1.8']
#5 24.28    - jupyterlab[version='>=3.5']
#5 24.28
#5 24.28
#5 24.31   Package                              Version  Build               Channel                   Size
#5 24.31 ────────────────────────────────────────────────────────────────────────────────────────────────────
#5 24.31   Install:
#5 24.31 ────────────────────────────────────────────────────────────────────────────────────────────────────
#5 24.31
#5 24.31   + _libgcc_mutex                          0.1  conda_forge         conda-forge/linux-64       3kB
#5 24.31   + _openmp_mutex                          4.5  2_gnu               conda-forge/linux-64      24kB
#5 24.31   + absl-py                              1.3.0  pyhd8ed1ab_0        conda-forge/noarch        98kB
#5 24.31   + aiohttp                              3.8.3  py311hd4cff14_1     conda-forge/linux-64     561kB
#5 24.31   + aiosignal                            1.3.1  pyhd8ed1ab_0        conda-forge/noarch        13kB
#5 24.31   + anyio                                3.6.2  pyhd8ed1ab_0        conda-forge/noarch        85kB
#5 24.31   + argon2-cffi                         21.3.0  pyhd8ed1ab_0        conda-forge/noarch        16kB
#5 24.31   + argon2-cffi-bindings                21.2.0  py311hd4cff14_3     conda-forge/linux-64      36kB
#5 24.31   + asttokens                            2.2.1  pyhd8ed1ab_0        conda-forge/noarch        28kB
#5 24.31   + async-timeout                        4.0.2  pyhd8ed1ab_0        conda-forge/noarch         9kB
#5 24.31   + attrs                               22.2.0  pyh71513ae_0        conda-forge/noarch        54kB
#5 24.31   + babel                               2.11.0  pyhd8ed1ab_0        conda-forge/noarch         7MB
#5 24.31   + backcall                             0.2.0  pyh9f0ad1d_0        conda-forge/noarch        14kB
#5 24.31   + backports                              1.0  pyhd8ed1ab_3        conda-forge/noarch         6kB
#5 24.31   + backports.functools_lru_cache        1.6.4  pyhd8ed1ab_0        conda-forge/noarch         9kB
#5 24.31   + beautifulsoup4                      4.11.1  pyha770c72_0        conda-forge/noarch        98kB
#5 24.31   + bleach                               5.0.1  pyhd8ed1ab_0        conda-forge/noarch       127kB
#5 24.31   + blinker                                1.5  pyhd8ed1ab_0        conda-forge/noarch        15kB
#5 24.31   + brotlipy                             0.7.0  py311hd4cff14_1005  conda-forge/linux-64     354kB
#5 24.31   + bzip2                                1.0.8  h7f98852_4          conda-forge/linux-64     496kB
#5 24.31   + ca-certificates                  2022.12.7  ha878542_0          conda-forge/linux-64     146kB
#5 24.31   + cachetools                           4.2.4  pyhd8ed1ab_0        conda-forge/noarch        13kB
#5 24.31   + certifi                          2022.12.7  pyhd8ed1ab_0        conda-forge/noarch       151kB
#5 24.31   + cffi                                1.15.1  py311h409f033_3     conda-forge/linux-64     296kB
#5 24.31   + charset-normalizer                   2.1.1  pyhd8ed1ab_0        conda-forge/noarch        36kB
#5 24.31   + click                                8.1.3  unix_pyhd8ed1ab_2   conda-forge/noarch        76kB
#5 24.31   + cloudpickle                          2.2.0  pyhd8ed1ab_0        conda-forge/noarch        26kB
#5 24.31   + colorama                             0.4.6  pyhd8ed1ab_0        conda-forge/noarch        25kB
#5 24.31   + comm                                 0.1.2  pyhd8ed1ab_0        conda-forge/noarch        11kB
#5 24.31   + commonmark                           0.9.1  py_0                conda-forge/noarch        47kB
#5 24.31   + cryptography                        39.0.0  py311h9b4c7bb_0     conda-forge/linux-64       2MB
#5 24.31   + dataclasses                            0.8  pyhc8e2a94_3        conda-forge/noarch        10kB
#5 24.31   + debugpy                              1.6.4  py311ha362b79_0     conda-forge/linux-64       2MB
#5 24.31   + decorator                            5.1.1  pyhd8ed1ab_0        conda-forge/noarch        12kB
#5 24.31   + defusedxml                           0.7.1  pyhd8ed1ab_0        conda-forge/noarch        24kB
#5 24.31   + deprecated                          1.2.13  pyh6c4a22f_0        conda-forge/noarch        12kB
#5 24.31   + docstring_parser                      0.15  pyhd8ed1ab_0        conda-forge/noarch        30kB
#5 24.31   + entrypoints                            0.4  pyhd8ed1ab_0        conda-forge/noarch         9kB
#5 24.31   + executing                            1.2.0  pyhd8ed1ab_0        conda-forge/noarch        25kB
#5 24.31   + fire                                 0.4.0  pyh44b312d_0        conda-forge/noarch        81kB
#5 24.31   + flit-core                            3.8.0  pyhd8ed1ab_0        conda-forge/noarch        46kB
#5 24.31   + frozenlist                           1.3.3  py311hd4cff14_0     conda-forge/linux-64      46kB
#5 24.31   + future                              0.18.2  pyhd8ed1ab_6        conda-forge/noarch       365kB
#5 24.31   + google-api-core                     1.34.0  pyhd8ed1ab_0        conda-forge/noarch        77kB
#5 24.31   + google-api-python-client            1.12.8  pyhd3deb0d_0        conda-forge/noarch        49kB
#5 24.31   + google-auth                         1.35.0  pyh6c4a22f_0        conda-forge/noarch        83kB
#5 24.31   + google-auth-httplib2                 0.1.0  pyhd8ed1ab_1        conda-forge/noarch        14kB
#5 24.31   + google-cloud-core                    1.3.0  py_0                conda-forge/noarch        25kB
#5 24.31   + google-cloud-storage                1.30.0  pyh9f0ad1d_0        conda-forge/noarch        62kB
#5 24.31   + google-crc32c                        1.1.2  py311h98db957_4     conda-forge/linux-64      26kB
#5 24.31   + google-resumable-media               1.3.3  pyh6c4a22f_0        conda-forge/noarch        42kB
#5 24.31   + googleapis-common-protos            1.57.0  pyhd8ed1ab_3        conda-forge/noarch       112kB
#5 24.31   + httplib2                            0.21.0  pyhd8ed1ab_0        conda-forge/noarch        99kB
#5 24.31   + idna                                   3.4  pyhd8ed1ab_0        conda-forge/noarch        57kB
#5 24.31   + importlib-metadata                   6.0.0  pyha770c72_0        conda-forge/noarch        25kB
#5 24.31   + ipykernel                           6.19.4  pyh210e3f2_0        conda-forge/noarch       108kB
#5 24.31   + ipython                              8.8.0  pyh41d4057_0        conda-forge/noarch       568kB
#5 24.31   + ipython_genutils                     0.2.0  py_1                conda-forge/noarch        22kB
#5 24.31   + jedi                                0.18.2  pyhd8ed1ab_0        conda-forge/noarch       804kB
#5 24.31   + jinja2                               3.1.2  pyhd8ed1ab_1        conda-forge/noarch       101kB
#5 24.31   + json5                                0.9.5  pyh9f0ad1d_0        conda-forge/noarch        21kB
#5 24.31   + jsonschema                           3.2.0  pyhd8ed1ab_3        conda-forge/noarch        46kB
#5 24.31   + jupyter_client                       7.4.8  pyhd8ed1ab_0        conda-forge/noarch        99kB
#5 24.31   + jupyter_core                         5.1.2  py311h38be061_0     conda-forge/linux-64     115kB
#5 24.31   + jupyter_events                       0.5.0  pyhd8ed1ab_0        conda-forge/noarch        66kB
#5 24.31   + jupyter_server                       2.0.6  pyhd8ed1ab_0        conda-forge/noarch       304kB
#5 24.31   + jupyter_server_terminals             0.4.3  pyhd8ed1ab_0        conda-forge/noarch        19kB
#5 24.31   + jupyterlab                           3.5.2  pyhd8ed1ab_0        conda-forge/noarch         6MB
#5 24.31   + jupyterlab_pygments                  0.2.2  pyhd8ed1ab_0        conda-forge/noarch        17kB
#5 24.31   + jupyterlab_server                   2.16.6  pyhd8ed1ab_0        conda-forge/noarch        58kB
#5 24.31   + kfp                                 1.8.14  pyhd8ed1ab_0        conda-forge/noarch       261kB
#5 24.31   + kfp-pipeline-spec                   0.1.17  pyhd8ed1ab_0        conda-forge/noarch        24kB
#5 24.31   + kfp-server-api                       1.8.4  pyhd8ed1ab_0        conda-forge/noarch        47kB
#5 24.31   + ld_impl_linux-64                      2.39  hcc3a1bd_1          conda-forge/linux-64     691kB
#5 24.31   + libcrc32c                            1.1.2  h9c3ff4c_0          conda-forge/linux-64      20kB
#5 24.31   + libffi                               3.4.2  h7f98852_5          conda-forge/linux-64      58kB
#5 24.31   + libgcc-ng                           12.2.0  h65d4601_19         conda-forge/linux-64     954kB
#5 24.31   + libgomp                             12.2.0  h65d4601_19         conda-forge/linux-64     466kB
#5 24.31   + libnsl                               2.0.0  h7f98852_0          conda-forge/linux-64      31kB
#5 24.31   + libprotobuf                         3.20.2  h6239696_0          conda-forge/linux-64       3MB
#5 24.31   + libsodium                           1.0.18  h36c2ea0_1          conda-forge/linux-64     375kB
#5 24.31   + libsqlite                           3.40.0  h753d276_0          conda-forge/linux-64     810kB
#5 24.31   + libstdcxx-ng                        12.2.0  h46fd767_19         conda-forge/linux-64       4MB
#5 24.31   + libuuid                             2.32.1  h7f98852_1000       conda-forge/linux-64      28kB
#5 24.31   + libzlib                             1.2.13  h166bdaf_4          conda-forge/linux-64      66kB
#5 24.31   + markupsafe                           2.1.1  py311hd4cff14_2     conda-forge/linux-64      26kB
#5 24.31   + matplotlib-inline                    0.1.6  pyhd8ed1ab_0        conda-forge/noarch        12kB
#5 24.31   + mistune                              2.0.4  pyhd8ed1ab_0        conda-forge/noarch        69kB
#5 24.31   + multidict                            6.0.4  py311h2582759_0     conda-forge/linux-64      57kB
#5 24.31   + nbclassic                            0.4.8  pyhd8ed1ab_0        conda-forge/noarch         8MB
#5 24.31   + nbclient                             0.7.2  pyhd8ed1ab_0        conda-forge/noarch        62kB
#5 24.31   + nbconvert                            7.2.7  pyhd8ed1ab_0        conda-forge/noarch         8kB
#5 24.31   + nbconvert-core                       7.2.7  pyhd8ed1ab_0        conda-forge/noarch       199kB
#5 24.31   + nbconvert-pandoc                     7.2.7  pyhd8ed1ab_0        conda-forge/noarch         6kB
#5 24.31   + nbformat                             5.7.1  pyhd8ed1ab_0        conda-forge/noarch       101kB
#5 24.31   + ncurses                                6.3  h27087fc_1          conda-forge/linux-64       1MB
#5 24.31   + nest-asyncio                         1.5.6  pyhd8ed1ab_0        conda-forge/noarch        10kB
#5 24.31   + notebook                             6.5.2  pyha770c72_1        conda-forge/noarch       273kB
#5 24.31   + notebook-shim                        0.2.2  pyhd8ed1ab_0        conda-forge/noarch        15kB
#5 24.31   + oauthlib                             3.2.2  pyhd8ed1ab_0        conda-forge/noarch        92kB
#5 24.31   + openssl                              3.0.7  h0b41bf4_1          conda-forge/linux-64       3MB
#5 24.31   + packaging                             22.0  pyhd8ed1ab_0        conda-forge/noarch        40kB
#5 24.31   + pandoc                              2.19.2  h32600fe_1          conda-forge/linux-64      31MB
#5 24.31   + pandocfilters                        1.5.0  pyhd8ed1ab_0        conda-forge/noarch        12kB
#5 24.31   + parso                                0.8.3  pyhd8ed1ab_0        conda-forge/noarch        71kB
#5 24.31   + pexpect                              4.8.0  pyh1a96a4e_2        conda-forge/noarch        49kB
#5 24.31   + pickleshare                          0.7.5  py_1003             conda-forge/noarch         9kB
#5 24.31   + pip                                 22.3.1  pyhd8ed1ab_0        conda-forge/noarch         2MB
#5 24.31   + platformdirs                         2.6.2  pyhd8ed1ab_0        conda-forge/noarch        17kB
#5 24.31   + prometheus_client                   0.15.0  pyhd8ed1ab_0        conda-forge/noarch        51kB
#5 24.31   + prompt-toolkit                      3.0.36  pyha770c72_0        conda-forge/noarch       272kB
#5 24.31   + protobuf                            3.20.2  py311ha362b79_1     conda-forge/linux-64     369kB
#5 24.31   + psutil                               5.9.4  py311hd4cff14_0     conda-forge/linux-64     497kB
#5 24.31   + ptyprocess                           0.7.0  pyhd3deb0d_0        conda-forge/noarch        17kB
#5 24.31   + pure_eval                            0.2.2  pyhd8ed1ab_0        conda-forge/noarch        15kB
#5 24.31   + pyasn1                               0.4.8  py_0                conda-forge/noarch        54kB
#5 24.31   + pyasn1-modules                       0.2.7  py_0                conda-forge/noarch        61kB
#5 24.31   + pycparser                             2.21  pyhd8ed1ab_0        conda-forge/noarch       103kB
#5 24.31   + pydantic                            1.10.4  py311h2582759_0     conda-forge/linux-64       2MB
#5 24.31   + pygments                            2.14.0  pyhd8ed1ab_0        conda-forge/noarch       824kB
#5 24.31   + pyjwt                                2.6.0  pyhd8ed1ab_0        conda-forge/noarch        21kB
#5 24.31   + pyopenssl                           23.0.0  pyhd8ed1ab_0        conda-forge/noarch       127kB
#5 24.31   + pyparsing                            3.0.9  pyhd8ed1ab_0        conda-forge/noarch        81kB
#5 24.31   + pyrsistent                          0.19.3  py311h2582759_0     conda-forge/linux-64     124kB
#5 24.31   + pysocks                              1.7.1  pyha2e5f31_6        conda-forge/noarch        19kB
#5 24.31   + python                              3.11.0  ha86cf86_0_cpython  conda-forge/linux-64      38MB
#5 24.31   + python-dateutil                      2.8.2  pyhd8ed1ab_0        conda-forge/noarch       246kB
#5 24.31   + python-fastjsonschema               2.16.2  pyhd8ed1ab_0        conda-forge/noarch       247kB
#5 24.31   + python-json-logger                   2.0.4  pyhd8ed1ab_0        conda-forge/noarch        13kB
#5 24.31   + python-kubernetes                  18.20.0  pyhd8ed1ab_0        conda-forge/noarch       484kB
#5 24.31   + python_abi                            3.11  3_cp311             conda-forge/linux-64       6kB
#5 24.31   + pytz                                2022.7  pyhd8ed1ab_0        conda-forge/noarch       186kB
#5 24.31   + pyu2f                                0.1.5  pyhd8ed1ab_0        conda-forge/noarch        32kB
#5 24.31   + pyyaml                               5.4.1  py311hd4cff14_4     conda-forge/linux-64     212kB
#5 24.31   + pyzmq                               24.0.1  py311ha4b6469_1     conda-forge/linux-64     587kB
#5 24.31   + readline                             8.1.2  h0f457ee_0          conda-forge/linux-64     298kB
#5 24.31   + requests                            2.28.1  pyhd8ed1ab_1        conda-forge/noarch        55kB
#5 24.31   + requests-oauthlib                    1.3.1  pyhd8ed1ab_0        conda-forge/noarch        22kB
#5 24.31   + requests-toolbelt                   0.10.1  pyhd8ed1ab_0        conda-forge/noarch        43kB
#5 24.31   + rich                                12.6.0  pyhd8ed1ab_0        conda-forge/noarch       175kB
#5 24.31   + rsa                                    4.9  pyhd8ed1ab_0        conda-forge/noarch        30kB
#5 24.31   + send2trash                           1.8.0  pyhd8ed1ab_0        conda-forge/noarch        18kB
#5 24.31   + setuptools                          65.6.3  pyhd8ed1ab_0        conda-forge/noarch       634kB
#5 24.31   + shellingham                    1.5.0.post1  pyhd8ed1ab_0        conda-forge/noarch        14kB
#5 24.31   + simplejson                          3.18.1  py311h2582759_0     conda-forge/linux-64     135kB
#5 24.31   + six                                 1.16.0  pyh6c4a22f_0        conda-forge/noarch        14kB
#5 24.31   + sniffio                              1.3.0  pyhd8ed1ab_0        conda-forge/noarch        14kB
#5 24.31   + soupsieve                      2.3.2.post1  pyhd8ed1ab_0        conda-forge/noarch        35kB
#5 24.31   + stack_data                           0.6.2  pyhd8ed1ab_0        conda-forge/noarch        26kB
#5 24.31   + strip-hints                          0.1.8  py_0                conda-forge/noarch        20kB
#5 24.31   + tabulate                             0.9.0  pyhd8ed1ab_1        conda-forge/noarch        36kB
#5 24.31   + termcolor                            2.1.1  pyhd8ed1ab_0        conda-forge/noarch        10kB
#5 24.31   + terminado                           0.17.1  pyh41d4057_0        conda-forge/noarch        21kB
#5 24.31   + tinycss2                             1.2.1  pyhd8ed1ab_0        conda-forge/noarch        23kB
#5 24.31   + tk                                  8.6.12  h27826a3_0          conda-forge/linux-64       3MB
#5 24.31   + tomli                                2.0.1  pyhd8ed1ab_0        conda-forge/noarch        16kB
#5 24.31   + tornado                                6.2  py311hd4cff14_1     conda-forge/linux-64     885kB
#5 24.31   + traitlets                            5.8.0  pyhd8ed1ab_0        conda-forge/noarch        98kB
#5 24.31   + typer                                0.7.0  pyhd8ed1ab_0        conda-forge/noarch        58kB
#5 24.31   + typing-extensions                    4.4.0  hd8ed1ab_0          conda-forge/noarch         9kB
#5 24.31   + typing_extensions                    4.4.0  pyha770c72_0        conda-forge/noarch        30kB
#5 24.31   + tzdata                               2022g  h191b570_0          conda-forge/noarch       108kB
#5 24.31   + uritemplate                          3.0.1  py_0                conda-forge/noarch        16kB
#5 24.31   + urllib3                            1.26.13  pyhd8ed1ab_0        conda-forge/noarch       111kB
#5 24.31   + wcwidth                              0.2.5  pyh9f0ad1d_2        conda-forge/noarch        34kB
#5 24.31   + webencodings                         0.5.1  py_1                conda-forge/noarch        12kB
#5 24.31   + websocket-client                     1.4.2  pyhd8ed1ab_0        conda-forge/noarch        44kB
#5 24.31   + wheel                               0.38.4  pyhd8ed1ab_0        conda-forge/noarch        33kB
#5 24.31   + wrapt                               1.14.1  py311hd4cff14_1     conda-forge/linux-64      61kB
#5 24.31   + xz                                   5.2.6  h166bdaf_0          conda-forge/linux-64     418kB
#5 24.31   + yaml                                 0.2.5  h7f98852_2          conda-forge/linux-64      89kB
#5 24.31   + yarl                                 1.8.2  py311hd4cff14_0     conda-forge/linux-64      98kB
#5 24.31   + zeromq                               4.3.4  h9c3ff4c_1          conda-forge/linux-64     360kB
#5 24.31   + zipp                                3.11.0  pyhd8ed1ab_0        conda-forge/noarch        16kB
#5 24.31
#5 24.31   Summary:
#5 24.31
#5 24.31   Install: 174 packages
#5 24.31
#5 24.31   Total download: 132MB
#5 24.31
#5 24.31 ────────────────────────────────────────────────────────────────────────────────────────────────────
#5 24.31
#5 24.31
#5 24.31 Confirm changes: [Y/n]
#5 24.31 Transaction starting
#5 55.40 Linking _libgcc_mutex-0.1-conda_forge
#5 55.40 Linking python_abi-3.11-3_cp311
#5 55.41 Linking libstdcxx-ng-12.2.0-h46fd767_19
#5 55.41 Linking ld_impl_linux-64-2.39-hcc3a1bd_1
#5 55.41 Linking ca-certificates-2022.12.7-ha878542_0
#5 55.42 Linking libgomp-12.2.0-h65d4601_19
#5 55.42 Linking _openmp_mutex-4.5-2_gnu
#5 55.42 Linking libgcc-ng-12.2.0-h65d4601_19
#5 55.43 Linking libuuid-2.32.1-h7f98852_1000
#5 55.43 Linking libsodium-1.0.18-h36c2ea0_1
#5 55.44 Linking openssl-3.0.7-h0b41bf4_1
#5 55.51 Linking libffi-3.4.2-h7f98852_5
#5 55.51 Linking bzip2-1.0.8-h7f98852_4
#5 55.51 Linking yaml-0.2.5-h7f98852_2
#5 55.52 Linking ncurses-6.3-h27087fc_1
#5 59.34 Linking libcrc32c-1.1.2-h9c3ff4c_0
#5 59.34 Linking xz-5.2.6-h166bdaf_0
#5 59.38 Linking libzlib-1.2.13-h166bdaf_4
#5 59.39 Linking libnsl-2.0.0-h7f98852_0
#5 59.39 Linking zeromq-4.3.4-h9c3ff4c_1
#5 59.40 Linking readline-8.1.2-h0f457ee_0
#5 59.41 Linking pandoc-2.19.2-h32600fe_1
#5 59.41 Linking libsqlite-3.40.0-h753d276_0
#5 59.41 Linking libprotobuf-3.20.2-h6239696_0
#5 59.44 Linking tk-8.6.12-h27826a3_0
#5 59.54 Linking tzdata-2022g-h191b570_0
#5 59.63 Linking python-3.11.0-ha86cf86_0_cpython
#5 60.54 Linking wheel-0.38.4-pyhd8ed1ab_0
#5 60.98 Linking setuptools-65.6.3-pyhd8ed1ab_0
#5 61.03 Linking pip-22.3.1-pyhd8ed1ab_0
#5 61.12 Linking blinker-1.5-pyhd8ed1ab_0
#5 61.12 Linking pyjwt-2.6.0-pyhd8ed1ab_0
#5 61.12 Linking pycparser-2.21-pyhd8ed1ab_0
#5 61.16 Linking pytz-2022.7-pyhd8ed1ab_0
#5 61.25 Linking backports-1.0-pyhd8ed1ab_3
#5 61.25 Linking soupsieve-2.3.2.post1-pyhd8ed1ab_0
#5 61.26 Linking pyparsing-3.0.9-pyhd8ed1ab_0
#5 61.27 Linking pysocks-1.7.1-pyha2e5f31_6
#5 61.27 Linking certifi-2022.12.7-pyhd8ed1ab_0
#5 61.27 Linking future-0.18.2-pyhd8ed1ab_6
#5 61.33 Linking dataclasses-0.8-pyhc8e2a94_3
#5 61.33 Linking pyasn1-0.4.8-py_0
#5 61.35 Linking shellingham-1.5.0.post1-pyhd8ed1ab_0
#5 61.35 Linking colorama-0.4.6-pyhd8ed1ab_0
#5 61.36 Linking zipp-3.11.0-pyhd8ed1ab_0
#5 61.36 Linking parso-0.8.3-pyhd8ed1ab_0
#5 61.37 Linking json5-0.9.5-pyh9f0ad1d_0
#5 61.38 Linking mistune-2.0.4-pyhd8ed1ab_0
#5 61.39 Linking pandocfilters-1.5.0-pyhd8ed1ab_0
#5 61.39 Linking defusedxml-0.7.1-pyhd8ed1ab_0
#5 61.40 Linking webencodings-0.5.1-py_1
#5 61.40 Linking python-fastjsonschema-2.16.2-pyhd8ed1ab_0
#5 61.41 Linking pure_eval-0.2.2-pyhd8ed1ab_0
#5 61.41 Linking executing-1.2.0-pyhd8ed1ab_0
#5 61.42 Linking ptyprocess-0.7.0-pyhd3deb0d_0
#5 61.42 Linking charset-normalizer-2.1.1-pyhd8ed1ab_0
#5 61.43 Linking idna-3.4-pyhd8ed1ab_0
#5 61.44 Linking flit-core-3.8.0-pyhd8ed1ab_0
#5 61.47 Linking termcolor-2.1.1-pyhd8ed1ab_0
#5 61.47 Linking cachetools-4.2.4-pyhd8ed1ab_0
#5 61.48 Linking attrs-22.2.0-pyh71513ae_0
#5 61.48 Linking python-json-logger-2.0.4-pyhd8ed1ab_0
#5 61.49 Linking tabulate-0.9.0-pyhd8ed1ab_1
#5 61.49 Linking docstring_parser-0.15-pyhd8ed1ab_0
#5 61.50 Linking cloudpickle-2.2.0-pyhd8ed1ab_0
#5 61.50 Linking typing_extensions-4.4.0-pyha770c72_0
#5 61.51 Linking click-8.1.3-unix_pyhd8ed1ab_2
#5 61.51 Linking absl-py-1.3.0-pyhd8ed1ab_0
#5 61.52 Linking six-1.16.0-pyh6c4a22f_0
#5 61.53 Linking pygments-2.14.0-pyhd8ed1ab_0
#5 61.59 Linking backcall-0.2.0-pyh9f0ad1d_0
#5 61.60 Linking decorator-5.1.1-pyhd8ed1ab_0
#5 61.60 Linking nest-asyncio-1.5.6-pyhd8ed1ab_0
#5 61.60 Linking entrypoints-0.4-pyhd8ed1ab_0
#5 61.61 Linking traitlets-5.8.0-pyhd8ed1ab_0
#5 61.62 Linking websocket-client-1.4.2-pyhd8ed1ab_0
#5 61.63 Linking prometheus_client-0.15.0-pyhd8ed1ab_0
#5 61.64 Linking sniffio-1.3.0-pyhd8ed1ab_0
#5 61.64 Linking tomli-2.0.1-pyhd8ed1ab_0
#5 61.65 Linking packaging-22.0-pyhd8ed1ab_0
#5 61.65 Linking send2trash-1.8.0-pyhd8ed1ab_0
#5 61.66 Linking ipython_genutils-0.2.0-py_1
#5 61.67 Linking pickleshare-0.7.5-py_1003
#5 61.67 Linking strip-hints-0.1.8-py_0
#5 61.68 Linking babel-2.11.0-pyhd8ed1ab_0
#5 61.87 Linking backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0
#5 61.88 Linking beautifulsoup4-4.11.1-pyha770c72_0
#5 61.89 Linking httplib2-0.21.0-pyhd8ed1ab_0
#5 61.89 Linking commonmark-0.9.1-py_0
#5 61.90 Linking pyasn1-modules-0.2.7-py_0
#5 61.93 Linking rsa-4.9-pyhd8ed1ab_0
#5 61.93 Linking importlib-metadata-6.0.0-pyha770c72_0
#5 61.94 Linking jedi-0.18.2-pyhd8ed1ab_0
#5 62.44 Linking tinycss2-1.2.1-pyhd8ed1ab_0
#5 62.44 Linking pexpect-4.8.0-pyh1a96a4e_2
#5 62.46 Linking typing-extensions-4.4.0-hd8ed1ab_0
#5 62.46 Linking asttokens-2.2.1-pyhd8ed1ab_0
#5 62.47 Linking pyu2f-0.1.5-pyhd8ed1ab_0
#5 62.48 Linking fire-0.4.0-pyh44b312d_0
#5 62.49 Linking python-dateutil-2.8.2-pyhd8ed1ab_0
#5 62.50 Linking jupyterlab_pygments-0.2.2-pyhd8ed1ab_0
#5 62.52 Linking comm-0.1.2-pyhd8ed1ab_0
#5 62.52 Linking matplotlib-inline-0.1.6-pyhd8ed1ab_0
#5 62.53 Linking anyio-3.6.2-pyhd8ed1ab_0
#5 62.54 Linking bleach-5.0.1-pyhd8ed1ab_0
#5 62.56 Linking wcwidth-0.2.5-pyh9f0ad1d_2
#5 62.56 Linking rich-12.6.0-pyhd8ed1ab_0
#5 62.58 Linking async-timeout-4.0.2-pyhd8ed1ab_0
#5 62.59 Linking platformdirs-2.6.2-pyhd8ed1ab_0
#5 62.59 Linking stack_data-0.6.2-pyhd8ed1ab_0
#5 62.60 Linking prompt-toolkit-3.0.36-pyha770c72_0
#5 62.66 Linking typer-0.7.0-pyhd8ed1ab_0
#5 62.66 Linking ipython-8.8.0-pyh41d4057_0
#5 62.76 Linking psutil-5.9.4-py311hd4cff14_0
#5 62.78 Linking debugpy-1.6.4-py311ha362b79_0
#5 62.94 Linking multidict-6.0.4-py311h2582759_0
#5 62.95 Linking frozenlist-1.3.3-py311hd4cff14_0
#5 62.96 Linking pyrsistent-0.19.3-py311h2582759_0
#5 62.97 Linking wrapt-1.14.1-py311hd4cff14_1
#5 62.98 Linking simplejson-3.18.1-py311h2582759_0
#5 63.00 Linking pyzmq-24.0.1-py311ha4b6469_1
#5 63.06 Linking markupsafe-2.1.1-py311hd4cff14_2
#5 63.06 Linking tornado-6.2-py311hd4cff14_1
#5 63.09 Linking pyyaml-5.4.1-py311hd4cff14_4
#5 63.10 Linking cffi-1.15.1-py311h409f033_3
#5 63.11 Linking protobuf-3.20.2-py311ha362b79_1
#5 63.12 Linking pydantic-1.10.4-py311h2582759_0
#5 63.14 Linking jupyter_core-5.1.2-py311h38be061_0
#5 63.15 Linking yarl-1.8.2-py311hd4cff14_0
#5 63.16 Linking brotlipy-0.7.0-py311hd4cff14_1005
#5 63.16 Linking cryptography-39.0.0-py311h9b4c7bb_0
#5 63.20 Linking google-crc32c-1.1.2-py311h98db957_4
#5 63.21 Linking argon2-cffi-bindings-21.2.0-py311hd4cff14_3
#5 63.21 Linking aiosignal-1.3.1-pyhd8ed1ab_0
#5 63.21 Linking jsonschema-3.2.0-pyhd8ed1ab_3
#5 63.22 Linking deprecated-1.2.13-pyh6c4a22f_0
#5 63.23 Linking uritemplate-3.0.1-py_0
#5 63.23 Linking jinja2-3.1.2-pyhd8ed1ab_1
#5 63.24 Linking terminado-0.17.1-pyh41d4057_0
#5 63.25 Linking googleapis-common-protos-1.57.0-pyhd8ed1ab_3
#5 63.28 Linking jupyter_client-7.4.8-pyhd8ed1ab_0
#5 63.30 Linking oauthlib-3.2.2-pyhd8ed1ab_0
#5 63.34 Linking pyopenssl-23.0.0-pyhd8ed1ab_0
#5 63.35 Linking google-resumable-media-1.3.3-pyh6c4a22f_0
#5 63.37 Linking argon2-cffi-21.3.0-pyhd8ed1ab_0
#5 63.37 Linking nbformat-5.7.1-pyhd8ed1ab_0
#5 63.39 Linking jupyter_events-0.5.0-pyhd8ed1ab_0
#5 63.40 Linking jupyter_server_terminals-0.4.3-pyhd8ed1ab_0
#5 63.41 Linking kfp-pipeline-spec-0.1.17-pyhd8ed1ab_0
#5 63.41 Linking ipykernel-6.19.4-pyh210e3f2_0
#5 63.44 Linking urllib3-1.26.13-pyhd8ed1ab_0
#5 63.46 Linking nbclient-0.7.2-pyhd8ed1ab_0
#5 63.47 Linking requests-2.28.1-pyhd8ed1ab_1
#5 63.48 Linking kfp-server-api-1.8.4-pyhd8ed1ab_0
#5 63.50 Linking nbconvert-core-7.2.7-pyhd8ed1ab_0
#5 63.55 Linking requests-oauthlib-1.3.1-pyhd8ed1ab_0
#5 63.56 Linking requests-toolbelt-0.10.1-pyhd8ed1ab_0
#5 63.58 Linking nbconvert-pandoc-7.2.7-pyhd8ed1ab_0
#5 63.58 Linking jupyter_server-2.0.6-pyhd8ed1ab_0
#5 63.63 Linking nbconvert-7.2.7-pyhd8ed1ab_0
#5 63.63 Linking notebook-shim-0.2.2-pyhd8ed1ab_0
#5 63.64 Linking jupyterlab_server-2.16.6-pyhd8ed1ab_0
#5 63.66 Linking nbclassic-0.4.8-pyhd8ed1ab_0
#5 63.97 Linking notebook-6.5.2-pyha770c72_1
#5 64.01 Linking jupyterlab-3.5.2-pyhd8ed1ab_0
#5 64.12 Linking aiohttp-3.8.3-py311hd4cff14_1
#5 64.14 Linking google-auth-1.35.0-pyh6c4a22f_0
#5 64.15 Linking google-auth-httplib2-0.1.0-pyhd8ed1ab_1
#5 64.16 Linking google-api-core-1.34.0-pyhd8ed1ab_0
#5 64.17 Linking python-kubernetes-18.20.0-pyhd8ed1ab_0
#5 64.29 Linking google-cloud-core-1.3.0-py_0
#5 64.29 Linking google-api-python-client-1.12.8-pyhd3deb0d_0
#5 64.30 Linking google-cloud-storage-1.30.0-pyh9f0ad1d_0
#5 64.30 Linking kfp-1.8.14-pyhd8ed1ab_0
#5 65.65 Transaction finished
#5 DONE 67.0s

#6 [3/4] RUN python -c "import kfp; print(kfp.__version__)"
#6 sha256:d26d993ae6308c1c74fae85095e667ae0e756b1b5b67798d4d3f4c3270dc397e
#6 1.468 1.8.14
#6 DONE 1.7s

#7 [4/4] RUN python -c "import jupyterlab_server; print(jupyterlab_server.__version__)"
#7 sha256:9658a8dc9ad79f099f3bf704f1e72fbbf2bfdec8d42489868625cfa38c078749
#7 1.257 Traceback (most recent call last):
#7 1.257   File "<string>", line 1, in <module>
#7 1.257   File "/opt/conda/lib/python3.11/site-packages/jupyterlab_server/__init__.py", line 5, in <module>
#7 1.257     from .app import LabServerApp
#7 1.257   File "/opt/conda/lib/python3.11/site-packages/jupyterlab_server/app.py", line 6, in <module>
#7 1.258     from jupyter_server.extension.application import ExtensionApp, ExtensionAppJinjaMixin
#7 1.258   File "/opt/conda/lib/python3.11/site-packages/jupyter_server/extension/application.py", line 14, in <module>
#7 1.258     from jupyter_server.serverapp import ServerApp
#7 1.259   File "/opt/conda/lib/python3.11/site-packages/jupyter_server/serverapp.py", line 33, in <module>
#7 1.259     from jupyter_events.logger import EventLogger
#7 1.259   File "/opt/conda/lib/python3.11/site-packages/jupyter_events/__init__.py", line 3, in <module>
#7 1.260     from .logger import EVENTS_METADATA_VERSION, EventLogger
#7 1.260   File "/opt/conda/lib/python3.11/site-packages/jupyter_events/logger.py", line 19, in <module>
#7 1.260     from .schema_registry import SchemaRegistry
#7 1.260   File "/opt/conda/lib/python3.11/site-packages/jupyter_events/schema_registry.py", line 3, in <module>
#7 1.260     from .schema import EventSchema
#7 1.260   File "/opt/conda/lib/python3.11/site-packages/jupyter_events/schema.py", line 6, in <module>
#7 1.260     from jsonschema.protocols import Validator
#7 1.260 ModuleNotFoundError: No module named 'jsonschema.protocols'
#7 ERROR: executor failed running [/usr/local/bin/_dockerfile_shell.sh python -c "import jupyterlab_server; print(jupyterlab_server.__version__)"]: exit code: 1
------
 > [4/4] RUN python -c "import jupyterlab_server; print(jupyterlab_server.__version__)":
------
executor failed running [/usr/local/bin/_dockerfile_shell.sh python -c "import jupyterlab_server; print(jupyterlab_server.__version__)"]: exit code: 1
```

</details>


#### Attempt 2

Here is a docker file where I have fixed the problem with `Attempt 1` by pinning to the fixed version of `jupyterlab_server` too. Now the environment doesn't build.

```
FROM mambaorg/micromamba:jammy as build-stage

RUN micromamba install --name base --channel conda-forge \
    "python >=3.10" \
    "kfp >=1.8" \
    "jupyterlab >=3.5" \
    "jupyterlab_server >=2.17"
```

`docker build --progress plain --no-cache -f Dockerfile .`

<details>

<summary>Docker build output</summary>

```bash
#1 [internal] load build definition from debugging.Dockerfile
#1 sha256:3a0dc4a0c95482ec6cc84124298afe0c2ebae9294c277bc91274793bf36aac2c
#1 transferring dockerfile: 465B done
#1 DONE 0.0s

#2 [internal] load .dockerignore
#2 sha256:c1c4fbf0b0e6bb3ce897f5e9c1fd0615466b85f3bacdae64fd25220cad1efed2
#2 transferring context: 2B done
#2 DONE 0.0s

#3 [internal] load metadata for docker.io/mambaorg/micromamba:jammy
#3 sha256:70f396090a53ab9b6a069cc5d6d0672a0924b076e550e08e2f4c414e429987cc
#3 DONE 2.1s

#4 [1/4] FROM docker.io/mambaorg/micromamba:jammy@sha256:3e3d2899397fb031d57d4269a19f7700d4eb72e802d1d1b8f6054acd93b6fe47
#4 sha256:4a94cba5ef489da4fe85e3887c63904a40cb788f5ac27ff5dff6a4f3998815af
#4 CACHED

#5 [2/4] RUN micromamba install --name base --channel conda-forge     "python >=3.10"     "kfp >=1.8"     "jupyterlab >=3.5"     "jupyterlab_server >=2.17"
#5 sha256:756e7ff99e52e8c6d7b872a5482a4c4db23a3c34732d11392cc3313276149405
#5 0.232
#5 0.232                                            __
#5 0.232           __  ______ ___  ____ _____ ___  / /_  ____ _
#5 0.232          / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
#5 0.232         / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
#5 0.232        / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
#5 0.232       /_/
#5 0.232
#5 19.09 error    libmamba Could not solve for environment specs
#5 19.09     Encountered problems while solving:
#5 19.09       - package kfp-1.8.9-pyhd8ed1ab_0 requires jsonschema >=3.0.1,<4, but none of the providers can be installed
#5 19.09
#5 19.09     The environment can't be solved, aborting the operation
#5 19.09
#5 19.13 critical libmamba Could not solve for environment specs
#5 ERROR: executor failed running [/usr/local/bin/_dockerfile_shell.sh micromamba install --name base --channel conda-forge     "python >=3.10"     "kfp >=1.8"     "jupyterlab >=3.5"     "jupyterlab_server >=2.17"]: exit code: 1
------
 > [2/4] RUN micromamba install --name base --channel conda-forge     "python >=3.10"     "kfp >=1.8"     "jupyterlab >=3.5"     "jupyterlab_server >=2.17":
------
executor failed running [/usr/local/bin/_dockerfile_shell.sh micromamba install --name base --channel conda-forge     "python >=3.10"     "kfp >=1.8"     "jupyterlab >=3.5"     "jupyterlab_server >=2.17"]: exit code: 1
```

</details>

---

<!-- Don't delete message below to encourage users to support your issue! -->
Impacted by this bug? Give it a 👍. 


Discussion:
Moving back a little in time seems to be fine -- the following runs without an issue

```
FROM mambaorg/micromamba:jammy as build-stage

RUN micromamba install --name base --channel conda-forge \
    "python >=3.10" \
    "kfp >=1.8" \
    "jupyterlab 3.2.*" \
    "jupyterlab_server 2.10.*"

ARG MAMBA_DOCKERFILE_ACTIVATE=1  # (otherwise python will not be found)
RUN python -c "import kfp; print(kfp.__version__)"
RUN python -c "import jupyterlab_server; print(jupyterlab_server.__version__)"
```
Hi, @bretttully. I suspect there are no behavior changes in `jsonschema` v4 that would affect us based on the [changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst#v400). Please feel free to bump the version number in the PR in the following places:
- https://github.com/kubeflow/pipelines/blob/sdk/release-1.8/sdk/python/setup.py#L47
- https://github.com/kubeflow/pipelines/blob/sdk/release-1.8/sdk/python/requirements.in#L16

Then run the command here: https://github.com/kubeflow/pipelines/blob/sdk/release-1.8/sdk/python/requirements.in#L3

From there, we can run our tests against `kfp` with this new version.
/assign @JOCSTAA
Hi; are there any updates re this matter. I'm running in the exact same issue when I want to do environment management by means of [Poetry](https://python-poetry.org/)

Resolving patch:
diff --git a/sdk/python/setup.py b/sdk/python/setup.py
--- a/sdk/python/setup.py
+++ b/sdk/python/setup.py
@@ -44,7 +44,7 @@
     # kfp-server-api.
     # Note, please also update ./requirements.in
     'kfp-server-api>=1.1.2,<2.0.0',
-    'jsonschema>=3.0.1,<4',
+    'jsonschema>=3.0.1,<5',
     'tabulate>=0.8.6,<1',
     'click>=7.1.2,<9',
     'Deprecated>=1.2.7,<2',


Test patch: