From cfb92c322ef99f9bed20146c17b75da277992ef0 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Sat, 21 Jan 2023 17:35:37 -0500 Subject: [PATCH 01/61] docker: add esgf-pyclient for pavics-sdi esgf-dap.ipynb See PR https://github.com/Ouranosinc/pavics-sdi/pull/269 --- docker/environment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/environment.yml b/docker/environment.yml index 87e7b023..57ec3e1a 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -120,6 +120,8 @@ dependencies: - memory_profiler # for esgf notebooks - esgf-compute-api + # https://anaconda.org/conda-forge/esgf-pyclient (for pavics-sdi esgf-dap.ipynb) + - esgf-pyclient - cdms2 # Disable vcs because it was forcing python downgrade to below 3.9. # See https://github.com/CDAT/vcs/issues/457 From 44b05a11e664c7ad3cd4e6bb2abf9c38f0b09aa0 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Sat, 21 Jan 2023 18:27:27 -0500 Subject: [PATCH 02/61] release: update to use image pavics/workflow-tests:230121 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9f9b0af8..c1d2e3a8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:221130" + image "pavics/workflow-tests:230121" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 19bc1bf7..3b1c52bb 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:221130 +FROM pavics/workflow-tests:230121 USER root diff --git a/launchcontainer b/launchcontainer index ace0595f..e163ac57 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:221130" + DOCKER_IMAGE="pavics/workflow-tests:230121" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index e899603a..72bdab6e 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:221130" + DOCKER_IMAGE="pavics/workflow-tests:230121" fi if [ -z "$CONTAINER_NAME" ]; then From 7ac0edc5ad42e80fe59fdd0bb0ca5e869848f7a1 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Thu, 9 Feb 2023 09:44:47 -0500 Subject: [PATCH 03/61] docker: add xncml for gen_catalog refactoring See PR https://github.com/Ouranosinc/pavics-vdb/pull/46 --- docker/environment.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/environment.yml b/docker/environment.yml index 57ec3e1a..49cfd6bf 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -194,6 +194,9 @@ dependencies: # for pip packages - pip - pip: + # https://pypi.org/project/xncml/ + # Tools for manipulating and opening NCML (NetCDF Markup) files with/for xarray + - xncml # visual debugger for Jupyter Notebook, not working with JupyterLab at this moment - pixiedust # block execution of 'run_all_cells' until user input finished From 188a83c8d8ed110079f0317cf7a99321609935aa Mon Sep 17 00:00:00 2001 From: Long Vu Date: Thu, 9 Feb 2023 11:50:36 -0500 Subject: [PATCH 04/61] release: update to use image pavics/workflow-tests:230209 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index c1d2e3a8..1c2d8e86 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230121" + image "pavics/workflow-tests:230209" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 3b1c52bb..814ce3db 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230121 +FROM pavics/workflow-tests:230209 USER root diff --git a/launchcontainer b/launchcontainer index e163ac57..6ba6fad3 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230121" + DOCKER_IMAGE="pavics/workflow-tests:230209" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 72bdab6e..f45a6325 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230121" + DOCKER_IMAGE="pavics/workflow-tests:230209" fi if [ -z "$CONTAINER_NAME" ]; then From 4170b0b89239778fd511f3206a82c4e18e09fcf7 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 17 Feb 2023 12:33:25 -0500 Subject: [PATCH 05/61] docker: add Globus Connect Personal for transferring files in and out of Jupyter env This is meant for large files since Globus will handle retry if transfert is interrupted for some reasons. --- docker/Dockerfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 4aa5e126..6f697868 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -101,7 +101,12 @@ RUN wget https://raw.githubusercontent.com/jupyter/docker-stacks/$DOCKER_STACKS_ mkdir /notebook_dir && chown jenkins /notebook_dir && \ chmod a+rwX -R /opt/conda/envs/birdy/fonts && \ chmod a+rwX -R /opt/conda/pkgs/cache && \ - chown jenkins:jenkins -R /opt/conda/pkgs/cache + chown jenkins:jenkins -R /opt/conda/pkgs/cache && \ + mkdir -p /usr/local/bin && \ + wget https://downloads.globus.org/globus-connect-personal/linux/stable/globusconnectpersonal-latest.tgz -O /usr/local/bin/globusconnectpersonal-latest.tgz && \ + tar xzf /usr/local/bin/globusconnectpersonal-latest.tgz -C /usr/local/bin/ && \ + ln -vs /usr/local/bin/globusconnectpersonal*/globusconnectpersonal /usr/local/bin/globusconnectpersonal && \ + rm -v /usr/local/bin/globusconnectpersonal-latest.tgz # For jupyter-panel-proxy launcher. ENV BOKEH_ALLOW_WS_ORIGIN "*" From 126df72e88f57f055547a4721f7d45deed02865b Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 17 Feb 2023 12:37:08 -0500 Subject: [PATCH 06/61] release: update to use image pavics/workflow-tests:230217 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2b6b7394..9eb691b2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230209" + image "pavics/workflow-tests:230217" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 814ce3db..7c63f8d2 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230209 +FROM pavics/workflow-tests:230217 USER root diff --git a/launchcontainer b/launchcontainer index 6ba6fad3..9d360e0a 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230209" + DOCKER_IMAGE="pavics/workflow-tests:230217" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index f45a6325..0688b2e2 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230209" + DOCKER_IMAGE="pavics/workflow-tests:230217" fi if [ -z "$CONTAINER_NAME" ]; then From 88ad07dc0d1403798325768d8b81f54dc0509690 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 21 Feb 2023 13:59:12 -0500 Subject: [PATCH 07/61] docker: set ESMFMKFILE env var for import xesmf since esmf-8.4.0 See https://github.com/conda-forge/esmf-feedstock/issues/91 Fix the following error: ``` import xesmf as xe from xclim.subset import subset_bbox # For subsetting from xclim.testing import open_dataset # For opening xclim's a # A colormap with grey where the data is missing cmap = copy.copy(plt.cm.get_cmap("viridis")) cmap.set_bad("lightgray") Traceback: ------------------------------------------------------------------- KeyError Traceback (most all last) File da/envs/birdy/lib/python3.8/site-packages/esmpy/interface/loadESMF.py:26 25 try: ---> 26 esmfmk = os.environ["ESMFMKFILE"] 27 except: File /opt/conda/envs/birdy/lib/python3.8/os.py:675, in .__getitem__(self, key) 673 except KeyError: 674 # raise KeyError with the original key value --> 675 raise KeyError(key) from None 676 return self.decodevalue(value) KeyError: 'ESMFMKFILE' ``` --- docker/Dockerfile | 4 ++++ docker/Dockerfile.testing | 12 +++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 6f697868..2fe666e1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -111,6 +111,10 @@ RUN wget https://raw.githubusercontent.com/jupyter/docker-stacks/$DOCKER_STACKS_ # For jupyter-panel-proxy launcher. ENV BOKEH_ALLOW_WS_ORIGIN "*" +# For import xesmf since esmf-8.4.0, see +# https://github.com/conda-forge/esmf-feedstock/issues/91 +ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" + # problem running start-notebook.sh when being root # the jupyter/base-notebook image also do not default to root user so we do the same here USER jenkins diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index 9dc55272..84058b17 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -1,13 +1,15 @@ # For testing quickly without having to do a full rebuild. -FROM pavics/workflow-tests:220728 +FROM pavics/workflow-tests:230217 -USER root +ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" + +#USER root # Use 'update' for existing and 'install' for new package. # Keep same channel ordering to not revert anything. -RUN umask 0000 \ - && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyston -c pyviz/label/dev -c defaults -n birdy geopy +#RUN umask 0000 \ +# && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyston -c pyviz/label/dev -c defaults -n birdy geopy # && pip uninstall -y ravenpy \ # && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c defaults -n birdy ravenpy aiohttp @@ -20,4 +22,4 @@ RUN umask 0000 \ #RUN umask 0000 \ # && pip install https://github.com/CSHS-CWRA/RavenPy/archive/refs/heads/master.zip -USER jenkins +#USER jenkins From 95bbd6d34dba3ad47e4ce8ec7a8dffceff87b0bf Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 21 Feb 2023 14:03:28 -0500 Subject: [PATCH 08/61] release: update to use image pavics/workflow-tests:230217-update230221 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9eb691b2..3a28007a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230217" + image "pavics/workflow-tests:230217-update230221" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 7c63f8d2..d08a9afa 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230217 +FROM pavics/workflow-tests:230217-update230221 USER root diff --git a/launchcontainer b/launchcontainer index 9d360e0a..0d4b233d 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230217" + DOCKER_IMAGE="pavics/workflow-tests:230217-update230221" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 0688b2e2..6aa134af 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230217" + DOCKER_IMAGE="pavics/workflow-tests:230217-update230221" fi if [ -z "$CONTAINER_NAME" ]; then From 4f2a88a8049a1d942e19e63aeb48c1263ed56114 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 21 Feb 2023 16:41:39 -0500 Subject: [PATCH 09/61] docker: attempt to fix proj_create_from_database error ``` ERROR 1: PROJ: proj_create_from_database: Open of /opt/conda/envs/birdy/share/proj failed ``` --- docker/Dockerfile | 1 + docker/Dockerfile.testing | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2fe666e1..77434bb3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -102,6 +102,7 @@ RUN wget https://raw.githubusercontent.com/jupyter/docker-stacks/$DOCKER_STACKS_ chmod a+rwX -R /opt/conda/envs/birdy/fonts && \ chmod a+rwX -R /opt/conda/pkgs/cache && \ chown jenkins:jenkins -R /opt/conda/pkgs/cache && \ + chmod a+rwX -R /opt/conda/envs/birdy/share/proj && \ mkdir -p /usr/local/bin && \ wget https://downloads.globus.org/globus-connect-personal/linux/stable/globusconnectpersonal-latest.tgz -O /usr/local/bin/globusconnectpersonal-latest.tgz && \ tar xzf /usr/local/bin/globusconnectpersonal-latest.tgz -C /usr/local/bin/ && \ diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index 84058b17..f0d799c6 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -4,7 +4,9 @@ FROM pavics/workflow-tests:230217 ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" -#USER root +USER root + +RUN chmod a+rwX -R /opt/conda/envs/birdy/share/proj # Use 'update' for existing and 'install' for new package. # Keep same channel ordering to not revert anything. @@ -22,4 +24,4 @@ ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" #RUN umask 0000 \ # && pip install https://github.com/CSHS-CWRA/RavenPy/archive/refs/heads/master.zip -#USER jenkins +USER jenkins From 401e0cdf14f954f38e439b8e4fd57dd052e511c0 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 21 Feb 2023 17:39:28 -0500 Subject: [PATCH 10/61] docker: real fix for proj_create_from_database error ``` ERROR 1: PROJ: proj_create_from_database: Open of /opt/conda/envs/birdy/share/proj failed ``` --- docker/Dockerfile | 6 +++++- docker/Dockerfile.testing | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 77434bb3..80ad00a6 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -102,7 +102,6 @@ RUN wget https://raw.githubusercontent.com/jupyter/docker-stacks/$DOCKER_STACKS_ chmod a+rwX -R /opt/conda/envs/birdy/fonts && \ chmod a+rwX -R /opt/conda/pkgs/cache && \ chown jenkins:jenkins -R /opt/conda/pkgs/cache && \ - chmod a+rwX -R /opt/conda/envs/birdy/share/proj && \ mkdir -p /usr/local/bin && \ wget https://downloads.globus.org/globus-connect-personal/linux/stable/globusconnectpersonal-latest.tgz -O /usr/local/bin/globusconnectpersonal-latest.tgz && \ tar xzf /usr/local/bin/globusconnectpersonal-latest.tgz -C /usr/local/bin/ && \ @@ -116,6 +115,11 @@ ENV BOKEH_ALLOW_WS_ORIGIN "*" # https://github.com/conda-forge/esmf-feedstock/issues/91 ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" +# To avoid error "PROJ: proj_create_from_database: Open of +# /opt/conda/envs/birdy/share/proj failed" +# This simulates a real `conda activate birdy`. +ENV PROJ_DATA="/opt/conda/envs/birdy/share/proj" + # problem running start-notebook.sh when being root # the jupyter/base-notebook image also do not default to root user so we do the same here USER jenkins diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index f0d799c6..4d9986db 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -4,9 +4,9 @@ FROM pavics/workflow-tests:230217 ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" -USER root +ENV PROJ_DATA="/opt/conda/envs/birdy/share/proj" -RUN chmod a+rwX -R /opt/conda/envs/birdy/share/proj +#USER root # Use 'update' for existing and 'install' for new package. # Keep same channel ordering to not revert anything. @@ -24,4 +24,4 @@ RUN chmod a+rwX -R /opt/conda/envs/birdy/share/proj #RUN umask 0000 \ # && pip install https://github.com/CSHS-CWRA/RavenPy/archive/refs/heads/master.zip -USER jenkins +#USER jenkins From ea2d74a1e59cd1f176aed622b9b3ae57eb37d5d3 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 21 Feb 2023 17:42:25 -0500 Subject: [PATCH 11/61] release: update to use image pavics/workflow-tests:230217-update230221-1 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3a28007a..e85fddf4 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230217-update230221" + image "pavics/workflow-tests:230217-update230221-1" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index d08a9afa..f83db64f 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230217-update230221 +FROM pavics/workflow-tests:230217-update230221-1 USER root diff --git a/launchcontainer b/launchcontainer index 0d4b233d..8f14cb49 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230217-update230221" + DOCKER_IMAGE="pavics/workflow-tests:230217-update230221-1" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 6aa134af..274038cf 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230217-update230221" + DOCKER_IMAGE="pavics/workflow-tests:230217-update230221-1" fi if [ -z "$CONTAINER_NAME" ]; then From c325ad779eaa4493ad36e489dc124b4fcd688376 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 24 Feb 2023 13:26:54 -0500 Subject: [PATCH 12/61] release: update to use image pavics/workflow-tests:230224 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e85fddf4..934462fc 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230217-update230221-1" + image "pavics/workflow-tests:230224" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index f83db64f..c9e69718 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230217-update230221-1 +FROM pavics/workflow-tests:230224 USER root diff --git a/launchcontainer b/launchcontainer index 8f14cb49..68afd31c 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230217-update230221-1" + DOCKER_IMAGE="pavics/workflow-tests:230224" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 274038cf..fe49c295 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230217-update230221-1" + DOCKER_IMAGE="pavics/workflow-tests:230224" fi if [ -z "$CONTAINER_NAME" ]; then From eab04b5062ac42bcde21cd316d4d95ab3576b810 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 1 Mar 2023 16:39:24 -0500 Subject: [PATCH 13/61] release: update to use image pavics/workflow-tests:230301 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 934462fc..2bffa2f7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230224" + image "pavics/workflow-tests:230301" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index c9e69718..c75385c8 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230224 +FROM pavics/workflow-tests:230301 USER root diff --git a/launchcontainer b/launchcontainer index 68afd31c..d27cbb66 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230224" + DOCKER_IMAGE="pavics/workflow-tests:230301" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index fe49c295..59168fe5 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230224" + DOCKER_IMAGE="pavics/workflow-tests:230301" fi if [ -z "$CONTAINER_NAME" ]; then From d27fd46b39bd652434c9b570e17fc63643ddf9ce Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 21 Mar 2023 14:52:26 -0400 Subject: [PATCH 14/61] release: update to use image pavics/workflow-tests:230321 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2bffa2f7..63c23d86 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230301" + image "pavics/workflow-tests:230321" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index c75385c8..5bd90d22 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230301 +FROM pavics/workflow-tests:230321 USER root diff --git a/launchcontainer b/launchcontainer index d27cbb66..e5e597a6 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230301" + DOCKER_IMAGE="pavics/workflow-tests:230321" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 59168fe5..fa8669cb 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230301" + DOCKER_IMAGE="pavics/workflow-tests:230321" fi if [ -z "$CONTAINER_NAME" ]; then From 9ba0508f961ced6c7c39e463b9a515dc51046d6a Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 5 Apr 2023 13:43:18 -0400 Subject: [PATCH 15/61] release: update to use image pavics/workflow-tests:230405 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a15dfff6..4dc65a95 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230321" + image "pavics/workflow-tests:230405" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 5bd90d22..0da42fbc 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230321 +FROM pavics/workflow-tests:230405 USER root diff --git a/launchcontainer b/launchcontainer index e5e597a6..3338196a 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230321" + DOCKER_IMAGE="pavics/workflow-tests:230405" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index fa8669cb..73b666b8 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230321" + DOCKER_IMAGE="pavics/workflow-tests:230405" fi if [ -z "$CONTAINER_NAME" ]; then From 1bd5957e2501e245ae0e5850817d6aa7c53c9aa9 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 19 Apr 2023 17:32:33 -0400 Subject: [PATCH 16/61] docker: upgrade to python 3.10 since xarray dropped 3.8 pyston was removed since it blocks us from using anything newer than python 3.8. --- docker/Dockerfile | 7 +------ docker/Dockerfile.testing | 2 +- docker/environment.yml | 7 +++++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 80ad00a6..806f5eb7 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -42,13 +42,8 @@ COPY environment.yml /environment.yml # Conda was stuck at this step: # DEBUG conda.common._logic:_run_sat(607): Invoking SAT with clause count: 2500273 # -# Pin python=3.9 because python 3.10 cause this error: -# Encountered problems while solving: -# - package cartopy-0.20.1-py310h902574e_5 requires geos >=3.10.1,<3.10.2.0a0, but none of the providers can be installed -# This means there is no py310 build for geos package but https://anaconda.org/conda-forge/geos/files seems to be python indepdendent ! -# Pin python=3.8 because according to DavidH, xESMF has not been tested with 3.9 yet. RUN umask 0000 && \ - mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.8 --yes && \ + mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.10 --yes && \ mamba env update --name birdy --file /environment.yml # alternate way to 'source activate birdy' diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index 4d9986db..45509515 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -11,7 +11,7 @@ ENV PROJ_DATA="/opt/conda/envs/birdy/share/proj" # Use 'update' for existing and 'install' for new package. # Keep same channel ordering to not revert anything. #RUN umask 0000 \ -# && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyston -c pyviz/label/dev -c defaults -n birdy geopy +# && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy geopy # && pip uninstall -y ravenpy \ # && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c defaults -n birdy ravenpy aiohttp diff --git a/docker/environment.yml b/docker/environment.yml index 49cfd6bf..2a2069b3 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -5,7 +5,7 @@ channels: - cdat - bokeh - plotly # for jupyter-dash - - pyston + # - pyston - pyviz/label/dev # for jupyter-panel-proxy, panel - defaults @@ -189,8 +189,11 @@ dependencies: - geckodriver - xlrd - pre-commit + # pyston_lite_autoload blocked us from using newer Python than 3.8 + # package pyston_lite_autoload-2.3.4-pyh44b312d_0 requires pyston_lite + # 2.3.4 py38h0a891b7_0, but none of the providers can be installed # https://github.com/pyston/pyston/ - - pyston_lite_autoload + # - pyston_lite_autoload # for pip packages - pip - pip: From c406ac9febfbfd2500e10ae627914c0279570d0f Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 19 Apr 2023 17:33:41 -0400 Subject: [PATCH 17/61] release: update to use image pavics/workflow-tests:230419 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 4dc65a95..840955c6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230405" + image "pavics/workflow-tests:230419" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 0da42fbc..aef4e491 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230405 +FROM pavics/workflow-tests:230419 USER root diff --git a/launchcontainer b/launchcontainer index 3338196a..1ccc3632 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230405" + DOCKER_IMAGE="pavics/workflow-tests:230419" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 73b666b8..5e70abb7 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230405" + DOCKER_IMAGE="pavics/workflow-tests:230419" fi if [ -z "$CONTAINER_NAME" ]; then From 288d6815fe9be96418fbb812b07c3ca594f164fa Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 3 May 2023 22:29:46 -0400 Subject: [PATCH 18/61] docker: reduce image size by almost 2GB ``` Will remove 666 (1.10 GB) tarball(s). Will remove 1 index cache(s). Will remove 56 (772.6 MB) package(s). There are no tempfile(s) to remove. There are no logfile(s) to remove. ``` The cache dir is done so have to recreate it. We want to keep the cache dir in case user need to perform custom install. Got this error with the old chmod: ``` chmod: cannot access '/opt/conda/pkgs/cache': No such file or directory ``` --- docker/Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 806f5eb7..fd976a8d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -4,6 +4,7 @@ FROM continuumio/miniconda3 # The 'channel_priority strict' did help conda but it was not enough. RUN conda update conda -n base && \ conda install mamba -n base -c conda-forge -c defaults && \ + conda clean --all --yes && \ conda config --set channel_priority strict && \ wget -qO- https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -C /usr/local -xvj bin/micromamba @@ -44,7 +45,8 @@ COPY environment.yml /environment.yml # RUN umask 0000 && \ mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.10 --yes && \ - mamba env update --name birdy --file /environment.yml + mamba env update --name birdy --file /environment.yml && \ + mamba clean --all --yes # alternate way to 'source activate birdy' ENV PATH="/opt/conda/envs/birdy/bin:$PATH" @@ -95,7 +97,7 @@ RUN wget https://raw.githubusercontent.com/jupyter/docker-stacks/$DOCKER_STACKS_ chmod a+r /etc/jupyter/jupyter_notebook_config.py && \ mkdir /notebook_dir && chown jenkins /notebook_dir && \ chmod a+rwX -R /opt/conda/envs/birdy/fonts && \ - chmod a+rwX -R /opt/conda/pkgs/cache && \ + mkdir /opt/conda/pkgs/cache && \ chown jenkins:jenkins -R /opt/conda/pkgs/cache && \ mkdir -p /usr/local/bin && \ wget https://downloads.globus.org/globus-connect-personal/linux/stable/globusconnectpersonal-latest.tgz -O /usr/local/bin/globusconnectpersonal-latest.tgz && \ From 70a1af952eb78f44e9193938e021d9c7bad2bbae Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 3 May 2023 22:31:22 -0400 Subject: [PATCH 19/61] release: update to use image pavics/workflow-tests:230503 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 840955c6..833fc74f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230419" + image "pavics/workflow-tests:230503" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index aef4e491..f87194bf 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230419 +FROM pavics/workflow-tests:230503 USER root diff --git a/launchcontainer b/launchcontainer index 1ccc3632..5b4cdd49 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230419" + DOCKER_IMAGE="pavics/workflow-tests:230503" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 5e70abb7..78ac68ba 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230419" + DOCKER_IMAGE="pavics/workflow-tests:230503" fi if [ -z "$CONTAINER_NAME" ]; then From 5355487ff58f81e0c3a008a45320846f432c4407 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Thu, 11 May 2023 11:31:43 -0400 Subject: [PATCH 20/61] docker: pin netcdf4 for https://github.com/Unidata/netcdf4-python/issues/1242 --- docker/environment.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker/environment.yml b/docker/environment.yml index 2a2069b3..6a2b53bc 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -35,6 +35,10 @@ dependencies: - birdy # - owslib>=0.23.0 # from ravenpy # - netcdf4 # from ravenpy + + # Pin netcdf4 for https://github.com/Unidata/netcdf4-python/issues/1242 + - netcdf4==1.5.8 + # https://github.com/ecmwf/cfgrib # Python interface to map GRIB files to the Unidata's Common Data Model v4 # following the CF Conventions. From e15176d098d32afe880d824e4750144b26d9dce8 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Thu, 11 May 2023 11:32:12 -0400 Subject: [PATCH 21/61] release: update to use image pavics/workflow-tests:230511 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 833fc74f..18a0cb82 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230503" + image "pavics/workflow-tests:230511" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index f87194bf..3d444480 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230503 +FROM pavics/workflow-tests:230511 USER root diff --git a/launchcontainer b/launchcontainer index 5b4cdd49..9e14b6cc 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230503" + DOCKER_IMAGE="pavics/workflow-tests:230511" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 78ac68ba..5d066776 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230503" + DOCKER_IMAGE="pavics/workflow-tests:230511" fi if [ -z "$CONTAINER_NAME" ]; then From 6bbcec3bb9142869a40459640269f6f2d56c97db Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 23 May 2023 10:15:50 -0400 Subject: [PATCH 22/61] Revert "docker: pin netcdf4 for https://github.com/Unidata/netcdf4-python/issues/1242" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 5355487ff58f81e0c3a008a45320846f432c4407. DockerHub build failure: ``` 2023-05-11T15:45:59Z #11 440.3 warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY 2023-05-11T15:45:59Z #11 441.0 Could not solve for environment specs 2023-05-11T15:45:59Z #11 441.0 The following packages are incompatible 2023-05-11T15:45:59Z #11 441.0 ├─ cartopy >=0.21.0 is installable with the potential options 2023-05-11T15:45:59Z #11 441.0 │ ├─ cartopy [0.21.0|0.21.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ geos >=3.11.1,<3.11.2.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cartopy 0.21.0 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ geos >=3.11.0,<3.11.1.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cartopy [0.21.0|0.21.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.11,<3.12.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cartopy [0.21.0|0.21.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cartopy [0.21.0|0.21.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.9,<3.10.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cartopy 0.21.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ geos >=3.11.2,<3.11.3.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ └─ cartopy 0.21.1 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 ├─ cdms2 is installable with the potential options 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 3.1.5 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ cdtime [ |3.* ] with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ cdtime 3.1.4 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ jasper >=2.0.33,<3.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ jasper 2.0.33 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ jpeg >=9d,<10a , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ jasper 2.0.33 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ jpeg >=9e,<10a , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ cdtime [2.10|2.12|...|3.1.3] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ cdtime [2.12|3.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ cdtime [2.12|3.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python 3.6* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ cdtime [3.0|3.1.0|3.1.2|3.1.3|3.1.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=3.6,<3.7.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ cdtime [3.1.2|3.1.3|3.1.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ cdtime [3.1.2|3.1.3|3.1.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ cdtime 3.1.4 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=3.9,<3.10.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ cdtime 3.1.4 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ libnetcdf >=4.9.1,<4.9.2.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ libnetcdf 4.9.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ hdf5 >=1.12.2,<1.12.3.0a0 mpi_mpich_*, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ libnetcdf 4.9.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ hdf5 >=1.14.0,<1.14.1.0a0 mpi_mpich_*, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ libnetcdf 4.9.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ hdf5 >=1.12.2,<1.12.3.0a0 mpi_openmpi_*, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ libnetcdf 4.9.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ hdf5 >=1.14.0,<1.14.1.0a0 mpi_openmpi_*, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ libnetcdf 4.9.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ hdf5 >=1.12.2,<1.12.3.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ libnetcdf 4.9.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ hdf5 >=1.14.0,<1.14.1.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 [2.10|2.12|...|3.1.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 [3.0|3.0.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 3.0 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python 3.6* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 [3.0.1|3.1.0|3.1.2|3.1.3|3.1.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.6,<3.7.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 [3.1.2|3.1.3|3.1.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 [3.1.4|3.1.5] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.6,<3.7.0a0 *_cpython, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 [3.1.4|3.1.5] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.7,<3.8.0a0 *_cpython, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 3.1.4 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 [3.1.4|3.1.5] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.8,<3.9.0a0 *_cpython, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ cdms2 3.1.5 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.9,<3.10.0a0 *_cpython, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ └─ cdms2 3.1.5 would require 2023-05-11T15:45:59Z #11 441.0 │ └─ libnetcdf >=4.9.1,<4.9.2.0a0 , which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 ├─ jupyterhub is installable with the potential options 2023-05-11T15:45:59Z #11 441.0 │ ├─ jupyterhub [1.5.0|2.0.0|...|4.0.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ configurable-http-proxy >=4 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.0.1|4.1.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 6.* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.1.0|4.2.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 11.* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.2.0|4.2.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 10.* with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [10.12.0|10.13.0|10.15.3|10.4.1|10.8.0], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs [10.16.3|10.22.0|...|13.9.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ icu >=64.2,<65.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.2.0|4.2.1|4.2.3] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 12.* with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [10.16.3|10.22.0|...|13.9.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [12.1.0|12.3.0|12.3.1|12.4.0], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [12.18.3|12.19.0|...|15.2.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ icu >=67.1,<68.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 12.19.0, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 12.22.6, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.2.0|4.2.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 13.* , which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy 4.2.3 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 14.* with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [12.18.3|12.19.0|...|15.2.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.14.0|14.15.1|14.8.0], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.15.4, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.17.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.17.4, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|16.12.0|...|17.8.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ icu >=69.1,<70.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.18.3, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 14.20.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy 4.2.3 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 15.* with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [12.18.3|12.19.0|...|15.2.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [15.10.0|15.2.1|15.3.0|15.8.0], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [15.11.0|15.12.0|15.13.0], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 15.14.0, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.3.1|4.3.2|4.4.0|4.5.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=12.19.0,<13.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [12.18.3|12.19.0|...|15.2.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 12.19.0, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 12.22.6, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.3.1|4.3.2|4.4.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=14.15.4,<15.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.15.4, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.17.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.17.4, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|16.12.0|...|17.8.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.18.3, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 14.20.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy 4.3.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=15.11.0,<16.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.3.2|4.4.0|4.5.0|4.5.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=15.14.0,<16.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.5.0|4.5.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=12.22.6,<13.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy 4.5.0 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=14.17.4,<15.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.17.4, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|16.12.0|...|17.8.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.18.3, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 14.20.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy 4.5.0 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=14.17.1,<15.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.17.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.17.4, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|16.12.0|...|17.8.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.18.3, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 14.20.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy 4.5.0 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=16.13.0,<17.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|16.12.0|...|17.8.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 16.19.0 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ icu >=72.1,<73.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 16.13.1 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.5.0|4.5.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs [>=17.1.0,<18.0a0 |>=17.4.0,<18.0a0 ] with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|16.12.0|...|17.8.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.5.1|4.5.3] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=14.18.3,<15.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|16.12.0|...|17.8.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs 14.18.3, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 14.20.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy 4.5.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=16.13.2,<17.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|16.12.0|...|17.8.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 16.19.0, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.5.3|4.5.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs [>=16.15.0,<17.0a0 |>=16.17.1,<17.0a0 ], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.5.3|4.5.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=14.20.1,<15.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 14.20.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.5.3|4.5.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs >=17.9.0,<18.0a0 , which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ configurable-http-proxy [4.5.3|4.5.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs [>=18.11.0,<19.0a0 |>=18.12.1,<19.0a0 ] but there are no viable options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ nodejs 18.15.0 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ configurable-http-proxy 4.0.1 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ jupyterhub [0.6.1|0.7.0|0.7.1|0.7.2] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python 3.4* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ jupyterhub [0.6.1|0.7.0|...|0.9.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ jupyterhub [0.7.2|0.8.0|0.8.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python 3.6* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ jupyterhub [0.9.0|0.9.1|...|1.4.2] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.6,<3.7.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ jupyterhub [0.9.4|0.9.5|...|1.5.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ jupyterhub [1.0.0|1.1.0|...|1.5.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ jupyterhub [1.1.0|1.2.1|...|1.5.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.9,<3.10.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ jupyterhub [3.0.0|3.1.0|3.1.1|4.0.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ __win , which is missing on the system; 2023-05-11T15:45:59Z #11 441.0 │ └─ jupyterhub [0.9.4|0.9.5|...|3.1.1] conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 ├─ matplotlib is installable with the potential options 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.4.3 would require 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base >=3.4.3,<3.4.4.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [3.4.3|3.5.0|...|3.7.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ python >=3.10,<3.11.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ ├─ python 3.10.11 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ │ └─ openssl >=3.1.0,<4.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ python [3.10.0|3.10.1|...|3.10.9], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.5.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.3.2|...|3.7.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ python >=3.9,<3.10.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ matplotlib-base 3.4.3 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.12.3|5.6.0|5.9.2] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 4.11.4 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python 3.4* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python [3.5* |>=3.5,<3.6.0a0 ], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python 3.6* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7|5.6.0|5.9.2] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqtwebengine 5.12.1 py37he336c9b_5, which requires 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.12.3 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ pyqtwebengine 5.12.1 py310hfcd6d55_8, which requires 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt >=5.12.9,<5.13.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt 5.12.9 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ icu >=69.1,<70.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt 5.12.9 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ icu >=67.1,<68.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt 5.12.9 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ icu >=68.1,<69.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ icu 68.2 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ icu 68.1, which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.6.0|5.9.2] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=3.6,<3.7.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=3.9,<3.10.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt-main >=5.15.3,<5.16.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.3 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ ├─ krb5 >=1.19.3,<1.20.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ openssl >=1.1.1n,<1.1.2a , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main [5.15.3|5.15.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ ├─ krb5 >=1.19.3,<1.20.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ openssl >=1.1.1o,<1.1.2a , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.6 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ ├─ krb5 >=1.19.3,<1.20.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ openssl >=1.1.1q,<1.1.2a , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main [5.15.6|5.15.8] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ ├─ krb5 [>=1.19.3,<1.20.0a0 |>=1.20.1,<1.21.0a0 ] with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ │ ├─ krb5 [1.19.3|1.19.4], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ │ └─ krb5 1.20.1 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ libpq >=15.1,<16.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ ├─ libpq [15.1|15.2] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ │ └─ krb5 >=1.20.1,<1.21.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ libpq 15.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ krb5 >=1.19.3,<1.20.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.6 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ ├─ krb5 >=1.19.3,<1.20.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ openssl >=1.1.1s,<1.1.2a , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.8 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ icu >=72.1,<73.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt-main 5.15.8 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ libjpeg-turbo >=2.1.5.1,<3.0a0 , which requires 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ jpeg <0.0.0a , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ libpq >=15.2,<16.0a0 , which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt-main >=5.15.2,<5.16.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.3, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main [5.15.3|5.15.4], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.6, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main [5.15.6|5.15.8], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.6, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.8, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.8, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.2 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ icu >=69.1,<70.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.2 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ icu >=68.2,<69.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt-main 5.15.2 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt-main >=5.15.4,<5.16.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main [5.15.3|5.15.4], which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.6, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main [5.15.6|5.15.8], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.6, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.8, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt-main 5.15.8, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt-main >=5.15.6,<5.16.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.6, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main [5.15.6|5.15.8], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.6, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ qt-main 5.15.8, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ qt-main 5.15.8, which cannot be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=3.11,<3.12.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt [5.6.0|5.9.2] conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib [1.5.3|2.1.2|2.2.3|2.2.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 1.5.3 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python 3.4* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 1.5.3 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python 3.5* , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib [2.1.2|2.2.3|...|3.3.4] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.6,<3.7.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib [2.1.2|2.2.3|...|3.5.3] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib [2.2.4|3.1.1|...|3.7.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 2.2.5 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base >=2.2.5,<2.2.6.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.5.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.3.2|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base 2.2.5 would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ python >=2.7,<2.8.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base [2.2.5|3.2.0|...|3.3.2] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.6,<3.7.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.0.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base 3.0.1 py37hc2fb212_1001, which does not exist (perhaps a missing channel); 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.0.2 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base 3.0.2 py36h167e16e_1000, which does not exist (perhaps a missing channel); 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.0.2 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base 3.0.2 py36h167e16e_1001, which does not exist (perhaps a missing channel); 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.0.2 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base 3.0.2 py37h167e16e_1001, which does not exist (perhaps a missing channel); 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib [3.2.0|3.3.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base [>=3.2.0,<3.2.1.0a0 |>=3.3.0,<3.3.1.0a0 ], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.2.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base >=3.2.1,<3.2.2.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.5.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.3.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base 3.2.1 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.2.2 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base >=3.2.2,<3.2.3.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.5.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.3.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base 3.2.2 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.3.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base >=3.3.1,<3.3.2.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.5.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.3.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base 3.3.1 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.3.2 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base >=3.3.2,<3.3.3.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.5.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.3.2|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.3.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ └─ matplotlib-base 3.3.2 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib [3.3.2|3.3.3|...|3.7.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.9,<3.10.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.5.0 would require 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base >=3.5.0,<3.5.1.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [3.4.3|3.5.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.5.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.3.2|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ matplotlib-base 3.5.0 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 4.11.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.12.3, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt [5.6.0|5.9.2] conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.5.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base >=3.5.1,<3.5.2.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [3.4.3|3.5.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.5.1], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.3.2|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ matplotlib-base 3.5.1 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 4.11.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.12.3, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt [5.6.0|5.9.2] conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib [3.5.2|3.5.3|3.6.0|3.6.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base >=3.6.0,<3.6.1.0a0 , which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt [4.11.4|5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt 4.11.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt 5.12.3, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt [5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ pyqt 5.15.7 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ pyqt [5.6.0|5.9.2] conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.10,<3.11.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ python 3.10.11, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python [3.10.0|3.10.1|...|3.10.9], which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib [3.6.1|3.6.2|3.6.3|3.7.0|3.7.1] would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ python >=3.11,<3.12.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.6.2 would require 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base >=3.6.2,<3.6.3.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [3.4.3|3.5.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.3.2|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [3.6.2|3.6.3|3.7.0] would require 2023-05-11T15:45:59Z #11 441.0 │ │ │ │ └─ python >=3.11,<3.12.0a0 , which can be installed; 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ matplotlib-base 3.6.2 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt >=5 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.12.3, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt [5.6.0|5.9.2] conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.6.3 would require 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base >=3.6.3,<3.6.4.0a0 , which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt >=5 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.6.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.12.3, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt [5.6.0|5.9.2] conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.7.0 would require 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ matplotlib-base >=3.7.0,<3.7.1.0a0 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [3.4.3|3.5.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.2.0|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [2.2.5|3.3.2|...|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ ├─ matplotlib-base [3.6.2|3.6.3|3.7.0], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ │ └─ matplotlib-base 3.7.0 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt >=5.10 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.12.3, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt 5.15.7 conflicts with any installable versions previously reported; 2023-05-11T15:45:59Z #11 441.0 │ ├─ matplotlib 3.7.1 would require 2023-05-11T15:45:59Z #11 441.0 │ │ └─ pyqt >=5.10 with the potential options 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [4.11.4|5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:45:59Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ pyqt 5.12.3, which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.6.0|5.9.2], which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ pyqt [5.12.3|5.15.4|5.15.7], which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ pyqt 5.15.4, which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ pyqt 5.15.7, which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ └─ pyqt 5.15.7 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ └─ matplotlib [2.0.2|2.1.0|...|3.7.1] conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 ├─ netcdf4 1.5.8 is installable with the potential options 2023-05-11T15:46:00Z #11 441.0 │ ├─ netcdf4 1.5.8 would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ hdf5 >=1.12.1,<1.12.2.0a0 mpi_openmpi_*, which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ ├─ netcdf4 1.5.8 would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ hdf5 >=1.12.1,<1.12.2.0a0 mpi_mpich_*, which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ ├─ netcdf4 1.5.8 would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ ├─ netcdf4 1.5.8 would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ ├─ netcdf4 1.5.8 would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ python >=3.9,<3.10.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ └─ netcdf4 1.5.8 would require 2023-05-11T15:46:00Z #11 441.0 │ └─ hdf5 >=1.12.1,<1.12.2.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 ├─ nodejs >=16.0 is installable with the potential options 2023-05-11T15:46:00Z #11 441.0 │ ├─ nodejs [14.18.3|16.12.0|...|17.8.0], which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ nodejs [14.18.3|14.19.0|...|18.9.1], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ nodejs [16.10.0|16.11.1|...|16.9.0] conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ ├─ nodejs 16.19.0, which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ nodejs 16.13.1 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ └─ nodejs 18.15.0 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 └─ ravenpy >=0.7.8 is installable with the potential options 2023-05-11T15:46:00Z #11 441.0 ├─ ravenpy [0.10.0|0.7.8|0.8.0|0.8.1|0.9.0] would require 2023-05-11T15:46:00Z #11 441.0 │ ├─ fiona with the potential options 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.9.0|1.9.1] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal >=3.6.2,<3.7.0a0 but there are no viable options 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.6.2|3.6.3] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.11.1,<3.11.2.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ hdf5 >=1.12.2,<1.12.3.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.6.3|3.6.4] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.11.2,<3.11.3.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ hdf5 >=1.14.0,<1.14.1.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=72.1,<73.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal 3.6.3 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.11.2,<3.11.3.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ hdf5 >=1.14.0,<1.14.1.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal 3.6.3 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.11.2,<3.11.3.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ hdf5 >=1.12.2,<1.12.3.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal 3.6.2 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.8.22|1.9.0|1.9.1|1.9.2|1.9.3] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ python >=3.11,<3.12.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.8.11|1.8.12|...|1.9.3] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.8.17|1.8.18|...|1.9.3] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ python >=3.9,<3.10.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.9.2|1.9.3] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal >=3.6.3,<3.7.0a0 , which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.9.1 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.8.20 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal >=3.4.0,<3.5.0a0 but there are no viable options 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.4.3|3.5.3|3.6.0|3.6.1] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.11.1,<3.11.2.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.3.3|3.4.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.10.1,<3.10.2.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=68.2,<69.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.3.3|3.4.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.10.1,<3.10.2.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=69.1,<70.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.3.3|3.4.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.10.0,<3.10.1.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=69.1,<70.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.4.0|3.4.1] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.10.1,<3.10.2.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ icu >=69.1,<70.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ proj >=8.2.1,<8.2.2.0a0 with the potential options 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ proj 8.2.1 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ └─ proj4 999999999999 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ proj 8.2.1 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.3.3|3.4.1|3.4.2|3.4.3|3.5.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ geos >=3.10.2,<3.10.3.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal 3.4.1 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.8.21 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal >=3.4.1,<3.5.0a0 but there are no viable options 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.4.3|3.5.3|3.6.0|3.6.1], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.4.0|3.4.1], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.3.3|3.4.1|3.4.2|3.4.3|3.5.0], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal 3.4.1 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.8.22 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal [>=3.5.2,<3.6.0a0 |>=3.5.3,<3.6.0a0 ] but there are no viable options 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.5.1|3.5.2|3.5.3|3.6.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.11.0,<3.11.1.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ hdf5 >=1.12.2,<1.12.3.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.4.3|3.5.3|3.6.0|3.6.1], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal 3.5.3 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.11.2,<3.11.3.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ icu >=72.1,<73.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal 3.5.3 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ geos >=3.11.2,<3.11.3.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.8.21 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal >=3.5.0,<3.6.0a0 but there are no viable options 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.5.0|3.5.1] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.11.0,<3.11.1.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ libpq >=14.4,<15.0a0 but there are no viable options 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ libpq [14.4|14.5] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ └─ krb5 >=1.19.3,<1.20.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ libpq 14.5 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ krb5 >=1.20.1,<1.21.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal 3.5.0 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ geos >=3.11.0,<3.11.1.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ icu >=70.1,<71.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ jpeg >=9e,<10a , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ ├─ libdap4 >=3.20.6,<3.20.7.0a0 , which requires 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ └─ curl >=7.75.0,<9.0a0 with the potential options 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ ├─ curl [7.75.0|7.76.0|7.76.1] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ └─ krb5 >=1.17.1,<1.18.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ ├─ curl [7.76.1|7.77.0|7.78.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ └─ krb5 >=1.19.1,<1.20.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ ├─ curl 7.79.0 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ └─ libcurl 7.79.0 h2574ce0_0, which does not exist (perhaps a missing channel); 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ ├─ curl [7.79.1|7.80.0|7.81.0|7.82.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ └─ krb5 >=1.19.2,<1.20.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ ├─ curl [7.83.0|7.83.1|7.85.0|7.86.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ ├─ krb5 >=1.19.3,<1.20.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ └─ libcurl [7.86.0 h2283fc2_0|7.86.0 h2283fc2_1|7.86.0 h7bff187_1], which requires 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ └─ krb5 >=1.19.3,<1.20.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ ├─ curl [7.86.0|7.87.0|...|8.0.1] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ ├─ krb5 >=1.20.1,<1.21.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ └─ libcurl [7.86.0 h6312ad2_2|7.86.0 hdc1c0ab_2|...|8.0.0 h588be90_0], which requires 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ │ └─ krb5 >=1.20.1,<1.21.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ ├─ curl [7.78.0|7.80.0|...|7.88.1] conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ └─ curl 7.83.0 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ │ └─ libcurl 7.83.0 h0b77cf5_0, which does not exist (perhaps a missing channel); 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ libpq >=14.4,<15.0a0 , which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.5.1|3.5.2|3.5.3|3.6.0], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.4.3|3.5.3|3.6.0|3.6.1], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal 3.5.3, which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.3.3|3.4.1|3.4.2|3.4.3|3.5.0], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal 3.5.0 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ │ └─ geos >=3.10.3,<3.10.4.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal 3.5.3, which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.8.22 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal >=3.6.0,<3.7.0a0 but there are no viable options 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.5.1|3.5.2|3.5.3|3.6.0], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.4.3|3.5.3|3.6.0|3.6.1], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.6.2|3.6.3], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal [3.6.3|3.6.4], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal 3.6.3, which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal 3.6.3, which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ │ ├─ libgdal 3.6.2 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal 3.6.0 conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.7.0|1.8.11|...|1.8.9.post2] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ python [2.7* |>=2.7,<2.8.0a0 ], which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.7.0 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ python 3.4* , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.7.0 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ python 3.5* , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.8.11|1.8.12|...|1.8.9.post2] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ python >=3.6,<3.7.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.8.11|1.8.12|...|1.8.9.post2] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.8.0|1.8.1|1.8.2|1.8.3|1.8.4] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ gdal >=2.3.2,<2.4.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.7.13 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ gdal >=2.2.4,<2.3.0a0 , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.7.11|1.7.12|1.7.13] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ gdal [2.2.* |>=2.2.2,<2.3.0a0 ], which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.6.3|1.6.4] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ gdal 1.11.4 , which does not exist (perhaps a missing channel); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.7.0|1.7.1|...|1.7.9] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ gdal 2.1.* , which does not exist (perhaps a missing channel); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona [1.7.8|1.7.9] would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal 2.1.4 , which does not exist (perhaps a missing channel); 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ fiona 1.8.21 would require 2023-05-11T15:46:00Z #11 441.0 │ │ │ └─ libgdal >=3.4.2,<3.5.0a0 , which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ └─ fiona [1.7.10|1.7.12|...|1.8.4] conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ └─ gdal >=3.0 with the potential options 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [2.4.1|2.4.2|...|3.0.4] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ python >=2.7,<2.8.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [2.4.1|2.4.2|...|3.3.2] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ python >=3.6,<3.7.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [2.4.1|2.4.2|...|3.5.2] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ python >=3.7,<3.8.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [2.4.3|2.4.4|...|3.6.4] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ python >=3.8,<3.9.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.1.3|3.1.4|...|3.6.4] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ python >=3.9,<3.10.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.3.3|3.4.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.3.3 h1504ab5_10|3.3.3 h1504ab5_12|...|3.4.0 hed9a671_6], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.3.3|3.4.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.3.3 hf890fe0_11|3.3.3 hfbb1d71_11|3.4.0 h4471fe2_11|3.4.0 hf890fe0_9|3.4.0 hfbb1d71_9], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.3.3|3.4.1|3.4.2|3.4.3|3.5.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.3.3 h4ae554a_15|3.3.3 h7b6f8d3_15|...|3.5.0 hd131f80_2], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.3.3|3.4.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.3.3 h913cfbe_7|3.3.3 ha1fb1f1_4|...|3.4.0 hc0e84f1_3], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.4.0|3.4.1] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.4.0 h4f01073_13|3.4.0 h5ee51d2_13|...|3.4.1 h5ee51d2_0], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal 3.5.0 would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.5.0 h31d7bda_3|3.5.0 h59d0e54_4|3.5.0 hc0ebe42_4|3.5.0 he21a14a_3], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.5.0|3.5.1] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.5.0 h0c20829_5|3.5.1 h0c20829_0|3.5.1 h0c20829_1|3.5.1 h32640fd_0|3.5.1 h32640fd_1], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal 3.5.0 would require 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ libgdal 3.5.0 h32640fd_5, which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ │ └─ openssl >=1.1.1p,<1.1.2a , which conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.5.1|3.5.2|3.5.3|3.6.0] would require 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ hdf5 >=1.12.2,<1.12.3.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.5.1 h53011df_2|3.5.1 h53011df_3|...|3.6.0 heb1176f_1], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.5.2|3.5.3|...|3.6.4] would require 2023-05-11T15:46:00Z #11 441.0 │ │ └─ python >=3.11,<3.12.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.4.3|3.5.3|...|3.6.3] would require 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ hdf5 >=1.12.2,<1.12.3.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.4.3 hd4bcc23_1|3.4.3 hdfd6431_1|...|3.6.3 hb7af45b_0], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.5.3|3.6.3] would require 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ hdf5 >=1.14.0,<1.14.1.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.5.3 h1809c48_25|3.5.3 h69f0217_24|...|3.6.3 hb875ca4_5], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.5.3|3.6.3|3.6.4] would require 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ hdf5 >=1.14.0,<1.14.1.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.5.3 h17d0788_26|3.5.3 h2a8271e_27|...|3.6.4 hada8d5e_2], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ ├─ gdal [3.5.3|3.6.3] would require 2023-05-11T15:46:00Z #11 441.0 │ │ ├─ hdf5 >=1.12.2,<1.12.3.0a0 , which can be installed; 2023-05-11T15:46:00Z #11 441.0 │ │ └─ libgdal [3.5.3 h6d6b729_20|3.5.3 hd7ade74_21|3.6.3 h93ed92d_1|3.6.3 habbca78_2], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 │ └─ gdal [3.0.2|3.4.1|3.6.0|3.6.2] conflicts with any installable versions previously reported; 2023-05-11T15:46:00Z #11 441.0 └─ ravenpy 0.11.0 would require 2023-05-11T15:46:00Z #11 441.0 └─ fiona >=1.9 with the potential options 2023-05-11T15:46:00Z #11 441.0 ├─ fiona [1.9.0|1.9.1], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 ├─ fiona [1.8.22|1.9.0|1.9.1|1.9.2|1.9.3], which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 ├─ fiona [1.8.11|1.8.12|...|1.9.3], which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 ├─ fiona [1.8.17|1.8.18|...|1.9.3], which can be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 ├─ fiona [1.9.2|1.9.3], which cannot be installed (as previously explained); 2023-05-11T15:46:00Z #11 441.0 └─ fiona 1.9.1 conflicts with any installable versions previously reported. 2023-05-11T15:46:01Z #11 ERROR: executor failed running [/bin/sh -c umask 0000 && mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.10 --yes && mamba env update --name birdy --file /environment.yml && mamba clean --all --yes]: exit code: 1 2023-05-11T15:46:01Z ------ 2023-05-11T15:46:01Z > [ 6/10] RUN umask 0000 && mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.10 --yes && mamba env update --name birdy --file /environment.yml && mamba clean --all --yes: 2023-05-11T15:46:01Z #11 441.0 │ │ └─ libgdal [3.5.3 h6d6b729_20|3.5.3 hd7ade74_21|3.6.3 h93ed92d_1|3.6.3 habbca78_2], which cannot be installed (as previously explained); 2023-05-11T15:46:01Z #11 441.0 │ └─ gdal [3.0.2|3.4.1|3.6.0|3.6.2] conflicts with any installable versions previously reported; 2023-05-11T15:46:01Z #11 441.0 └─ ravenpy 0.11.0 would require 2023-05-11T15:46:01Z #11 441.0 └─ fiona >=1.9 with the potential options 2023-05-11T15:46:01Z #11 441.0 ├─ fiona [1.9.0|1.9.1], which cannot be installed (as previously explained); 2023-05-11T15:46:01Z #11 441.0 ├─ fiona [1.8.22|1.9.0|1.9.1|1.9.2|1.9.3], which can be installed (as previously explained); 2023-05-11T15:46:01Z #11 441.0 ├─ fiona [1.8.11|1.8.12|...|1.9.3], which can be installed (as previously explained); 2023-05-11T15:46:01Z #11 441.0 ├─ fiona [1.8.17|1.8.18|...|1.9.3], which can be installed (as previously explained); 2023-05-11T15:46:01Z #11 441.0 ├─ fiona [1.9.2|1.9.3], which cannot be installed (as previously explained); 2023-05-11T15:46:01Z #11 441.0 └─ fiona 1.9.1 conflicts with any installable versions previously reported. 2023-05-11T15:46:01Z ------ 2023-05-11T15:46:01Z ERROR: failed to solve: executor failed running [/bin/sh -c umask 0000 && mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.10 --yes && mamba env update --name birdy --file /environment.yml && mamba clean --all --yes]: exit code: 1 2023-05-11T15:46:01Z Build failed using Buildkit (1) ``` --- docker/environment.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker/environment.yml b/docker/environment.yml index 6a2b53bc..2a2069b3 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -35,10 +35,6 @@ dependencies: - birdy # - owslib>=0.23.0 # from ravenpy # - netcdf4 # from ravenpy - - # Pin netcdf4 for https://github.com/Unidata/netcdf4-python/issues/1242 - - netcdf4==1.5.8 - # https://github.com/ecmwf/cfgrib # Python interface to map GRIB files to the Unidata's Common Data Model v4 # following the CF Conventions. From c26f8a6713cfe4cc00def211dc3cf27f6fb2ac9a Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 23 May 2023 10:18:56 -0400 Subject: [PATCH 23/61] Revert "release: update to use image pavics/workflow-tests:230511" This reverts commit e15176d098d32afe880d824e4750144b26d9dce8. To restore to a working image tag. See previous commit for reason of revert. --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 18a0cb82..833fc74f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230511" + image "pavics/workflow-tests:230503" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 3d444480..f87194bf 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230511 +FROM pavics/workflow-tests:230503 USER root diff --git a/launchcontainer b/launchcontainer index 9e14b6cc..5b4cdd49 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230511" + DOCKER_IMAGE="pavics/workflow-tests:230503" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 5d066776..78ac68ba 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230511" + DOCKER_IMAGE="pavics/workflow-tests:230503" fi if [ -z "$CONTAINER_NAME" ]; then From a490c3cac3927ef6decada5c4dd5cacca6edadee Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 23 May 2023 11:56:51 -0400 Subject: [PATCH 24/61] release: update to use image pavics/workflow-tests:230523 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 833fc74f..a8979b2a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230503" + image "pavics/workflow-tests:230523" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index f87194bf..facc1cda 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230503 +FROM pavics/workflow-tests:230523 USER root diff --git a/launchcontainer b/launchcontainer index 5b4cdd49..c1cab550 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230503" + DOCKER_IMAGE="pavics/workflow-tests:230523" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 78ac68ba..12e0fd0f 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230503" + DOCKER_IMAGE="pavics/workflow-tests:230523" fi if [ -z "$CONTAINER_NAME" ]; then From 94a487b8e7932df7fa813175889d3e369e806f06 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 24 May 2023 10:25:32 -0400 Subject: [PATCH 25/61] docker: add pyogrio for pavics-sdi notebooks Fix proposed by @Zeitsperre. For notebooks eccc-geoapi-climate-stations.ipynb and eccc-geoapi-xclim.ipynb both fail with the error below in the upcoming Jupyter env. See https://github.com/Ouranosinc/pavics-sdi/issues/289. ``` 15:43:32 Traceback: 15:43:32 15:43:32 --------------------------------------------------------------------------- 15:43:32 CPLE_HttpResponseError Traceback (most recent call last) 15:43:32 File fiona/ogrext.pyx:136, in fiona.ogrext.gdal_open_vector() 15:43:32 15:43:32 File fiona/_err.pyx:291, in fiona._err.exc_wrap_pointer() 15:43:32 15:43:32 CPLE_HttpResponseError: HTTP response code: 500 15:43:32 15:43:32 During handling of the above exception, another exception occurred: 15:43:32 15:43:32 DriverError Traceback (most recent call last) 15:43:32 Cell In[1], line 17 15:43:32 8 url = api.with_query( 15:43:32 9 { 15:43:32 10 "datetime": "1840-03-01 00:00:00/2021-06-02 00:00:00", 15:43:32 (...) 15:43:32 13 } 15:43:32 14 ) 15:43:32 16 # Use geopandas to convert the json output to a GeoDataFrame. 15:43:32 ---> 17 gdf = gpd.read_file(str(url)) 15:43:32 18 gdf.head() 15:43:32 15:43:32 File /opt/conda/envs/birdy/lib/python3.10/site-packages/geopandas/io/file.py:248, in _read_file(filename, bbox, mask, rows, engine, **kwargs) 15:43:32 245 else: 15:43:32 246 path_or_bytes = filename 15:43:32 --> 248 return _read_file_fiona( 15:43:32 249 path_or_bytes, from_bytes, bbox=bbox, mask=mask, rows=rows, **kwargs 15:43:32 250 ) 15:43:32 252 else: 15:43:32 253 raise ValueError(f"unknown engine '{engine}'") 15:43:32 15:43:32 File /opt/conda/envs/birdy/lib/python3.10/site-packages/geopandas/io/file.py:289, in _read_file_fiona(path_or_bytes, from_bytes, bbox, mask, rows, where, **kwargs) 15:43:32 286 reader = fiona.open 15:43:32 288 with fiona_env(): 15:43:32 --> 289 with reader(path_or_bytes, **kwargs) as features: 15:43:32 290 crs = features.crs_wkt 15:43:32 291 # attempt to get EPSG code 15:43:32 15:43:32 File /opt/conda/envs/birdy/lib/python3.10/site-packages/fiona/env.py:457, in ensure_env_with_credentials..wrapper(*args, **kwds) 15:43:32 454 session = DummySession() 15:43:32 456 with env_ctor(session=session): 15:43:32 --> 457 return f(*args, **kwds) 15:43:32 15:43:32 File /opt/conda/envs/birdy/lib/python3.10/site-packages/fiona/__init__.py:335, in open(fp, mode, driver, schema, crs, encoding, layer, vfs, enabled_drivers, crs_wkt, allow_unsupported_drivers, **kwargs) 15:43:32 332 path = parse_path(fp) 15:43:32 334 if mode in ("a", "r"): 15:43:32 --> 335 colxn = Collection( 15:43:32 336 path, 15:43:32 337 mode, 15:43:32 338 driver=driver, 15:43:32 339 encoding=encoding, 15:43:32 340 layer=layer, 15:43:32 341 enabled_drivers=enabled_drivers, 15:43:32 342 allow_unsupported_drivers=allow_unsupported_drivers, 15:43:32 343 **kwargs 15:43:32 344 ) 15:43:32 345 elif mode == "w": 15:43:32 346 colxn = Collection( 15:43:32 347 path, 15:43:32 348 mode, 15:43:32 (...) 15:43:32 357 **kwargs 15:43:32 358 ) 15:43:32 15:43:32 File /opt/conda/envs/birdy/lib/python3.10/site-packages/fiona/collection.py:234, in Collection.__init__(self, path, mode, driver, schema, crs, encoding, layer, vsi, archive, enabled_drivers, crs_wkt, ignore_fields, ignore_geometry, include_fields, wkt_version, allow_unsupported_drivers, **kwargs) 15:43:32 232 if self.mode == "r": 15:43:32 233 self.session = Session() 15:43:32 --> 234 self.session.start(self, **kwargs) 15:43:32 235 elif self.mode in ("a", "w"): 15:43:32 236 self.session = WritingSession() 15:43:32 15:43:32 File fiona/ogrext.pyx:587, in fiona.ogrext.Session.start() 15:43:32 15:43:32 File fiona/ogrext.pyx:143, in fiona.ogrext.gdal_open_vector() 15:43:32 15:43:32 DriverError: HTTP response code: 500 ``` --- docker/Dockerfile.testing | 15 ++++++++------- docker/environment.yml | 3 +++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index 45509515..9ca60daf 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -1,17 +1,18 @@ # For testing quickly without having to do a full rebuild. -FROM pavics/workflow-tests:230217 +FROM pavics/workflow-tests:230523 -ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" +#ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" -ENV PROJ_DATA="/opt/conda/envs/birdy/share/proj" +#ENV PROJ_DATA="/opt/conda/envs/birdy/share/proj" -#USER root +USER root # Use 'update' for existing and 'install' for new package. # Keep same channel ordering to not revert anything. -#RUN umask 0000 \ -# && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy geopy +RUN umask 0000 \ + && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy pyogrio \ + && mamba clean --all --yes # && pip uninstall -y ravenpy \ # && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c defaults -n birdy ravenpy aiohttp @@ -24,4 +25,4 @@ ENV PROJ_DATA="/opt/conda/envs/birdy/share/proj" #RUN umask 0000 \ # && pip install https://github.com/CSHS-CWRA/RavenPy/archive/refs/heads/master.zip -#USER jenkins +USER jenkins diff --git a/docker/environment.yml b/docker/environment.yml index 2a2069b3..6b9083c6 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -47,6 +47,9 @@ dependencies: # - geopandas # from ravenpy # - pandas # from xclim and ravenpy # - rioxarray # from ravenpy + # https://anaconda.org/conda-forge/pyogrio + # Vectorized vector I/O using GDAL + - pyogrio - scikit-image - ipyleaflet - threddsclient From 8aa243f504b608dd4cce89be185b7307337d4c7e Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 24 May 2023 10:30:56 -0400 Subject: [PATCH 26/61] release: update to use image pavics/workflow-tests:230523-update230524 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a8979b2a..955264a0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230523" + image "pavics/workflow-tests:230523-update230524" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index facc1cda..792db76c 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230523 +FROM pavics/workflow-tests:230523-update230524 USER root diff --git a/launchcontainer b/launchcontainer index c1cab550..f12dc131 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230523" + DOCKER_IMAGE="pavics/workflow-tests:230523-update230524" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 12e0fd0f..b5e311bd 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230523" + DOCKER_IMAGE="pavics/workflow-tests:230523-update230524" fi if [ -z "$CONTAINER_NAME" ]; then From 7da831c882b30f51ddf63902f056682b409fae8e Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 24 May 2023 11:01:21 -0400 Subject: [PATCH 27/61] docker: re-install netcdf4 from source as fix for netcdf4 build problem See https://github.com/Unidata/netcdf4-python/issues/1192#issuecomment-1251532332 Hopefully able to fix the following weird multiple warnings in homepage notebook 3: ``` HDF5-DIAG: Error detected in HDF5 (1.12.2) thread 1: #000: H5A.c line 528 in H5Aopen_by_name(): can't open attribute major: Attribute minor: Can't open object #001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attribute major: Attribute minor: Can't open object #004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object header major: Attribute minor: Unable to initialize object #005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeBitGroomNumberOfSignificantDigits' major: Attribute minor: Object not found ``` --- docker/Dockerfile | 3 +++ docker/Dockerfile.testing | 2 ++ 2 files changed, 5 insertions(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index fd976a8d..d614f78a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -55,6 +55,9 @@ ENV PATH="/opt/conda/envs/birdy/bin:$PATH" # this python is from the birdy env above RUN python -m ipykernel install --name birdy +# https://github.com/Unidata/netcdf4-python/issues/1192#issuecomment-1251532332 +RUN python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4 --no-binary netcdf4 + # install using same channel preferences as birdy original env to not downgrade # anything accidentally # this is for debug only, all dependencies should be specified in diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index 9ca60daf..3517887e 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -16,6 +16,8 @@ RUN umask 0000 \ # && pip uninstall -y ravenpy \ # && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c defaults -n birdy ravenpy aiohttp +RUN umask 0000 \ + && python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4 --no-binary netcdf4 # RUN apt-get update && \ # DEBIAN_FRONTEND=noninteractive apt-get install -y unzip && \ # apt-get clean && \ From 570e9c8c0e10635647368a7ff14cea8b1938007c Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 24 May 2023 11:08:53 -0400 Subject: [PATCH 28/61] release: update to use image pavics/workflow-tests:230523-update230524-1 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 955264a0..1193bf64 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230523-update230524" + image "pavics/workflow-tests:230523-update230524-1" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 792db76c..05a7ce8f 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230523-update230524 +FROM pavics/workflow-tests:230523-update230524-1 USER root diff --git a/launchcontainer b/launchcontainer index f12dc131..350c6079 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230523-update230524" + DOCKER_IMAGE="pavics/workflow-tests:230523-update230524-1" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index b5e311bd..df94c3d3 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230523-update230524" + DOCKER_IMAGE="pavics/workflow-tests:230523-update230524-1" fi if [ -z "$CONTAINER_NAME" ]; then From 1c9194967e79670877b50b37d1c8c200677c48ea Mon Sep 17 00:00:00 2001 From: Long Vu Date: Thu, 25 May 2023 14:28:37 -0400 Subject: [PATCH 29/61] docker: prevent geoviews downgrade and force downgrade netcdf4==1.6.0 from 1.6.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mamba was selecting geoviews 1.8.2 so have to force latest version 1.9.6. Downgrade due to new geoviews: ``` Downgrade: ──────────────────────────────────────────────────────────────────────── - bokeh 3.1.1 pyhd8ed1ab_0 conda-forge + bokeh 2.4.3 pyhd8ed1ab_3 conda-forge/noarch 14MB - jupyter_bokeh 3.0.7 pyhd8ed1ab_0 conda-forge + jupyter_bokeh 3.0.5 pyhd8ed1ab_0 conda-forge/noarch 1MB - panel 1.0.2 pyhd8ed1ab_0 conda-forge + panel 0.14.4 pyhd8ed1ab_0 conda-forge/noarch 16MB ``` Downgrade netcdf4 because the warnings below are still there with previous version: ``` HDF5-DIAG: Error detected in HDF5 (1.12.2) thread 1: #000: H5A.c line 528 in H5Aopen_by_name(): can't open attribute major: Attribute minor: Can't open object #001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attribute major: Attribute minor: Can't open object #004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object header major: Attribute minor: Unable to initialize object #005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeBitGroomNumberOfSignificantDigits' major: Attribute minor: Object not found ``` --- docker/Dockerfile | 2 +- docker/Dockerfile.testing | 6 +++--- docker/environment.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d614f78a..d49e0afb 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -56,7 +56,7 @@ ENV PATH="/opt/conda/envs/birdy/bin:$PATH" RUN python -m ipykernel install --name birdy # https://github.com/Unidata/netcdf4-python/issues/1192#issuecomment-1251532332 -RUN python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4 --no-binary netcdf4 +RUN python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4==1.6.0 --no-binary netcdf4 # install using same channel preferences as birdy original env to not downgrade # anything accidentally diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index 3517887e..f2b83263 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -1,6 +1,6 @@ # For testing quickly without having to do a full rebuild. -FROM pavics/workflow-tests:230523 +FROM pavics/workflow-tests:230523-update230524-1 #ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" @@ -11,13 +11,13 @@ USER root # Use 'update' for existing and 'install' for new package. # Keep same channel ordering to not revert anything. RUN umask 0000 \ - && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy pyogrio \ + && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy geoviews==1.9.6 \ && mamba clean --all --yes # && pip uninstall -y ravenpy \ # && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c defaults -n birdy ravenpy aiohttp RUN umask 0000 \ - && python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4 --no-binary netcdf4 + && python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4==1.6.0 --no-binary netcdf4 # RUN apt-get update && \ # DEBIAN_FRONTEND=noninteractive apt-get install -y unzip && \ # apt-get clean && \ diff --git a/docker/environment.yml b/docker/environment.yml index 6b9083c6..157f9142 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -63,7 +63,7 @@ dependencies: # https://github.com/holoviz/panel - pyviz_comms # (was labextension pyviz/jupyterlab_pyviz in jupyterlab v2) - holoviews - - geoviews + - geoviews >= 1.9.6 # this might still be relevant https://github.com/holoviz/hvplot/issues/498 # (violin plot not working with hvplot 0.6.0). # Per this comment From b3c33488fe9f99c0d433ee3898ff409506259f1b Mon Sep 17 00:00:00 2001 From: Long Vu Date: Thu, 25 May 2023 14:30:35 -0400 Subject: [PATCH 30/61] release: update to use image pavics/workflow-tests:230523-update230525 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 1193bf64..ef9d0380 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230523-update230524-1" + image "pavics/workflow-tests:230523-update230525" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 05a7ce8f..3e58e566 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230523-update230524-1 +FROM pavics/workflow-tests:230523-update230525 USER root diff --git a/launchcontainer b/launchcontainer index 350c6079..4a191bd4 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230523-update230524-1" + DOCKER_IMAGE="pavics/workflow-tests:230523-update230525" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index df94c3d3..9d9e1b79 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230523-update230524-1" + DOCKER_IMAGE="pavics/workflow-tests:230523-update230525" fi if [ -z "$CONTAINER_NAME" ]; then From d761abc7fbb6483ea7fa447b2edb15e79adb0783 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Thu, 25 May 2023 18:43:07 -0400 Subject: [PATCH 31/61] release: update to use image pavics/workflow-tests:230525 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index ef9d0380..e5547609 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230523-update230525" + image "pavics/workflow-tests:230525" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 3e58e566..6843f80d 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230523-update230525 +FROM pavics/workflow-tests:230525 USER root diff --git a/launchcontainer b/launchcontainer index 4a191bd4..44b09ad8 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230523-update230525" + DOCKER_IMAGE="pavics/workflow-tests:230525" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 9d9e1b79..77233bf7 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230523-update230525" + DOCKER_IMAGE="pavics/workflow-tests:230525" fi if [ -z "$CONTAINER_NAME" ]; then From 58f5cd8a0c1d2e8c4340dc47ec8ee679e070fd6d Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 26 May 2023 10:03:11 -0400 Subject: [PATCH 32/61] docker: attempt to fix unable to pip install inside the Jupyter env --- docker/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index d49e0afb..13843eed 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -56,7 +56,8 @@ ENV PATH="/opt/conda/envs/birdy/bin:$PATH" RUN python -m ipykernel install --name birdy # https://github.com/Unidata/netcdf4-python/issues/1192#issuecomment-1251532332 -RUN python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4==1.6.0 --no-binary netcdf4 +RUN umask 0000 && \ + python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4==1.6.0 --no-binary netcdf4 # install using same channel preferences as birdy original env to not downgrade # anything accidentally From ed1d9322174583fb9682df04557e60bb3ee944cc Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 26 May 2023 11:31:44 -0400 Subject: [PATCH 33/61] docker: downgrade to py39 and pin Panel for our various dashboards Python 3.10 cause this "ValueError: `popmean.shape[axis]` must equal 1." in homepage nb 4. ``` 09:04:23 _ PAVICS-landing-fix-nb-for-new-jupyter-env/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-4Ensembles.ipynb::Cell 2 _ 09:04:23 Notebook cell execution failed 09:04:23 Cell 2: Cell execution caused an exception 09:04:23 09:04:23 Input: 09:04:23 fut = ds_ens.sel(time=slice("2071", "2100")).chunk(dict(realization=-1)) 09:04:23 ref = ds_ens.sel(time=slice("1981", "2010")).chunk(dict(realization=-1)) 09:04:23 09:04:23 chng_f, pos_f = xens.change_significance( 09:04:23 fut.sel(time=fut["time.season"] == "JJA"), 09:04:23 ref.sel(time=ref["time.season"] == "JJA"), 09:04:23 test="ttest", 09:04:23 ) 09:04:23 plt.figure( 09:04:23 figsize=(15, 6), 09:04:23 ) 09:04:23 09:04:23 plt.subplot(1, 2, 1) 09:04:23 chng_f.tx_days_above.plot(cmap="RdBu_r", vmin=0, vmax=1) 09:04:23 09:04:23 plt.title(chng_f.description.split(".")[0]) 09:04:23 09:04:23 plt.subplot(1, 2, 2) 09:04:23 pos_f.tx_days_above.plot(cmap="RdBu_r", vmin=0, vmax=1) 09:04:23 plt.title(pos_f.description.split(".")[0]) 09:04:23 09:04:23 display() 09:04:23 09:04:23 Traceback: 09:04:23 09:04:23 --------------------------------------------------------------------------- 09:04:23 ValueError Traceback (most recent call last) 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/scipy/stats/_stats_py.py:6265, in ttest_1samp(a, popmean, axis, nan_policy, alternative) 09:04:23 6264 try: 09:04:23 -> 6265 popmean = np.squeeze(popmean, axis=axis) 09:04:23 6266 except ValueError as e: 09:04:23 09:04:23 File <__array_function__ internals>:200, in squeeze(*args, **kwargs) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/numpy/core/fromnumeric.py:1571, in squeeze(a, axis) 09:04:23 1570 else: 09:04:23 -> 1571 return squeeze(axis=axis) 09:04:23 09:04:23 ValueError: cannot select an axis to squeeze out which has size not equal to one 09:04:23 09:04:23 The above exception was the direct cause of the following exception: 09:04:23 09:04:23 ValueError Traceback (most recent call last) 09:04:23 Cell In[3], line 14 09:04:23 9 plt.figure( 09:04:23 10 figsize=(15, 6), 09:04:23 11 ) 09:04:23 13 plt.subplot(1, 2, 1) 09:04:23 ---> 14 chng_f.tx_days_above.plot(cmap="RdBu_r", vmin=0, vmax=1) 09:04:23 16 plt.title(chng_f.description.split(".")[0]) 09:04:23 18 plt.subplot(1, 2, 2) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/xarray/plot/plot.py:547, in _PlotMethods.__call__(self, **kwargs) 09:04:23 546 def __call__(self, **kwargs): 09:04:23 --> 547 return plot(self._da, **kwargs) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/xarray/plot/plot.py:261, in plot(darray, row, col, col_wrap, ax, hue, rtol, subplot_kws, **kwargs) 09:04:23 209 def plot( 09:04:23 210 darray, 09:04:23 211 row=None, 09:04:23 (...) 09:04:23 218 **kwargs, 09:04:23 219 ): 09:04:23 220 """ 09:04:23 221 Default plot of DataArray using :py:mod:`matplotlib:matplotlib.pyplot`. 09:04:23 222 09:04:23 (...) 09:04:23 259 xarray.DataArray.squeeze 09:04:23 260 """ 09:04:23 --> 261 darray = darray.squeeze().compute() 09:04:23 263 plot_dims = set(darray.dims) 09:04:23 264 plot_dims.discard(row) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/xarray/core/dataarray.py:1088, in DataArray.compute(self, **kwargs) 09:04:23 1069 """Manually trigger loading of this array's data from disk or a 09:04:23 1070 remote source into memory and return a new array. The original is 09:04:23 1071 left unaltered. 09:04:23 (...) 09:04:23 1085 dask.compute 09:04:23 1086 """ 09:04:23 1087 new = self.copy(deep=False) 09:04:23 -> 1088 return new.load(**kwargs) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/xarray/core/dataarray.py:1062, in DataArray.load(self, **kwargs) 09:04:23 1044 def load(self: T_DataArray, **kwargs) -> T_DataArray: 09:04:23 1045 """Manually trigger loading of this array's data from disk or a 09:04:23 1046 remote source into memory and return this array. 09:04:23 1047 09:04:23 (...) 09:04:23 1060 dask.compute 09:04:23 1061 """ 09:04:23 -> 1062 ds = self._to_temp_dataset().load(**kwargs) 09:04:23 1063 new = self._from_temp_dataset(ds) 09:04:23 1064 self._variable = new._variable 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/xarray/core/dataset.py:735, in Dataset.load(self, **kwargs) 09:04:23 732 import dask.array as da 09:04:23 734 # evaluate all the dask arrays simultaneously 09:04:23 --> 735 evaluated_data = da.compute(*lazy_data.values(), **kwargs) 09:04:23 737 for k, data in zip(lazy_data, evaluated_data): 09:04:23 738 self.variables[k].data = data 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/dask/base.py:599, in compute(traverse, optimize_graph, scheduler, get, *args, **kwargs) 09:04:23 596 keys.append(x.__dask_keys__()) 09:04:23 597 postcomputes.append(x.__dask_postcompute__()) 09:04:23 --> 599 results = schedule(dsk, keys, **kwargs) 09:04:23 600 return repack([f(r, *a) for r, (f, a) in zip(results, postcomputes)]) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/dask/threaded.py:89, in get(dsk, keys, cache, num_workers, pool, **kwargs) 09:04:23 86 elif isinstance(pool, multiprocessing.pool.Pool): 09:04:23 87 pool = MultiprocessingPoolExecutor(pool) 09:04:23 ---> 89 results = get_async( 09:04:23 90 pool.submit, 09:04:23 91 pool._max_workers, 09:04:23 92 dsk, 09:04:23 93 keys, 09:04:23 94 cache=cache, 09:04:23 95 get_id=_thread_get_id, 09:04:23 96 pack_exception=pack_exception, 09:04:23 97 **kwargs, 09:04:23 98 ) 09:04:23 100 # Cleanup pools associated to dead threads 09:04:23 101 with pools_lock: 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/dask/local.py:511, in get_async(submit, num_workers, dsk, result, cache, get_id, rerun_exceptions_locally, pack_exception, raise_exception, callbacks, dumps, loads, chunksize, **kwargs) 09:04:23 509 _execute_task(task, data) # Re-execute locally 09:04:23 510 else: 09:04:23 --> 511 raise_exception(exc, tb) 09:04:23 512 res, worker_id = loads(res_info) 09:04:23 513 state["cache"][key] = res 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/dask/local.py:319, in reraise(exc, tb) 09:04:23 317 if exc.__traceback__ is not tb: 09:04:23 318 raise exc.with_traceback(tb) 09:04:23 --> 319 raise exc 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/dask/local.py:224, in execute_task(key, task_info, dumps, loads, get_id, pack_exception) 09:04:23 222 try: 09:04:23 223 task, data = loads(task_info) 09:04:23 --> 224 result = _execute_task(task, data) 09:04:23 225 id = get_id() 09:04:23 226 result = dumps((result, id)) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/dask/core.py:119, in _execute_task(arg, cache, dsk) 09:04:23 115 func, args = arg[0], arg[1:] 09:04:23 116 # Note: Don't assign the subtask results to a variable. numpy detects 09:04:23 117 # temporaries by their reference count and can execute certain 09:04:23 118 # operations in-place. 09:04:23 --> 119 return func(*(_execute_task(a, cache) for a in args)) 09:04:23 120 elif not ishashable(arg): 09:04:23 121 return arg 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/dask/optimization.py:990, in SubgraphCallable.__call__(self, *args) 09:04:23 988 if not len(args) == len(self.inkeys): 09:04:23 989 raise ValueError("Expected %d args, got %d" % (len(self.inkeys), len(args))) 09:04:23 --> 990 return core.get(self.dsk, self.outkey, dict(zip(self.inkeys, args))) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/dask/core.py:149, in get(dsk, out, cache) 09:04:23 147 for key in toposort(dsk): 09:04:23 148 task = dsk[key] 09:04:23 --> 149 result = _execute_task(task, cache) 09:04:23 150 cache[key] = result 09:04:23 151 result = _execute_task(out, cache) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/dask/core.py:119, in _execute_task(arg, cache, dsk) 09:04:23 115 func, args = arg[0], arg[1:] 09:04:23 116 # Note: Don't assign the subtask results to a variable. numpy detects 09:04:23 117 # temporaries by their reference count and can execute certain 09:04:23 118 # operations in-place. 09:04:23 --> 119 return func(*(_execute_task(a, cache) for a in args)) 09:04:23 120 elif not ishashable(arg): 09:04:23 121 return arg 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/numpy/lib/function_base.py:2329, in vectorize.__call__(self, *args, **kwargs) 09:04:23 2326 vargs = [args[_i] for _i in inds] 09:04:23 2327 vargs.extend([kwargs[_n] for _n in names]) 09:04:23 -> 2329 return self._vectorize_call(func=func, args=vargs) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/numpy/lib/function_base.py:2403, in vectorize._vectorize_call(self, func, args) 09:04:23 2401 """Vectorized call to `func` over positional `args`.""" 09:04:23 2402 if self.signature is not None: 09:04:23 -> 2403 res = self._vectorize_call_with_signature(func, args) 09:04:23 2404 elif not args: 09:04:23 2405 res = func() 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/numpy/lib/function_base.py:2443, in vectorize._vectorize_call_with_signature(self, func, args) 09:04:23 2440 nout = len(output_core_dims) 09:04:23 2442 for index in np.ndindex(*broadcast_shape): 09:04:23 -> 2443 results = func(*(arg[index] for arg in args)) 09:04:23 2445 n_results = len(results) if isinstance(results, tuple) else 1 09:04:23 2447 if nout != n_results: 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/xclim/ensembles/_robustness.py:208, in change_significance.._ttest_func(f, r) 09:04:23 206 def _ttest_func(f, r): 09:04:23 207 # scipy>=1.9: popmean.axis[-1] must equal 1 for both fut and ref 09:04:23 --> 208 return spstats.ttest_1samp( 09:04:23 209 f, r[..., np.newaxis], axis=-1, nan_policy="omit" 09:04:23 210 )[1] 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/scipy/stats/_axis_nan_policy.py:502, in _axis_nan_policy_factory..axis_nan_policy_decorator..axis_nan_policy_wrapper(***failed resolving arguments***) 09:04:23 500 if sentinel: 09:04:23 501 samples = _remove_sentinel(samples, paired, sentinel) 09:04:23 --> 502 res = hypotest_fun_out(*samples, **kwds) 09:04:23 503 res = result_to_tuple(res) 09:04:23 504 res = _add_reduced_axes(res, reduced_axes, keepdims) 09:04:23 09:04:23 File /opt/conda/envs/birdy/lib/python3.10/site-packages/scipy/stats/_stats_py.py:6267, in ttest_1samp(a, popmean, axis, nan_policy, alternative) 09:04:23 6265 popmean = np.squeeze(popmean, axis=axis) 09:04:23 6266 except ValueError as e: 09:04:23 -> 6267 raise ValueError("`popmean.shape[axis]` must equal 1.") from e 09:04:23 6268 d = mean - popmean 09:04:23 6269 v = _var(a, axis, ddof=1) 09:04:23 09:04:23 ValueError: `popmean.shape[axis]` must equal 1. ``` --- docker/Dockerfile | 4 +++- docker/environment.yml | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 13843eed..977bbca8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -43,8 +43,10 @@ COPY environment.yml /environment.yml # Conda was stuck at this step: # DEBUG conda.common._logic:_run_sat(607): Invoking SAT with clause count: 2500273 # +# Python 3.10 cause this "ValueError: `popmean.shape[axis]` must equal 1." in +# homepage nb 4. RUN umask 0000 && \ - mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.10 --yes && \ + mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.9 --yes && \ mamba env update --name birdy --file /environment.yml && \ mamba clean --all --yes diff --git a/docker/environment.yml b/docker/environment.yml index 157f9142..d8ca9202 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -59,7 +59,8 @@ dependencies: - jupyter_bokeh - pscript - h5netcdf - - panel >= 0.13.1a3 + # TODO: remove panel pin when Analogues dashboard works + - panel <= 0.14.4 # https://github.com/holoviz/panel - pyviz_comms # (was labextension pyviz/jupyterlab_pyviz in jupyterlab v2) - holoviews From 18cfee82e4b6dd562e4b6b3a203d6bc94e293e74 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 26 May 2023 12:01:08 -0400 Subject: [PATCH 34/61] release: update to use image pavics/workflow-tests:230526 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e5547609..20ab7508 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230525" + image "pavics/workflow-tests:230526" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 6843f80d..1d26a11d 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230525 +FROM pavics/workflow-tests:230526 USER root diff --git a/launchcontainer b/launchcontainer index 44b09ad8..23210846 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230525" + DOCKER_IMAGE="pavics/workflow-tests:230526" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 77233bf7..a97f4645 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230525" + DOCKER_IMAGE="pavics/workflow-tests:230526" fi if [ -z "$CONTAINER_NAME" ]; then From 9c375e6cb4f6b264cb7ee147d6089f98d31c7b35 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 26 May 2023 14:08:38 -0400 Subject: [PATCH 35/61] docker: pin libnetcdf because of weird warnings in homepage nb 3 See https://github.com/Ouranosinc/PAVICS-landing/issues/66 A lot of these repeating errors: ``` HDF5-DIAG: Error detected in HDF5 (1.12.2) thread 1: #000: H5A.c line 528 in H5Aopen_by_name(): can't open attribute major: Attribute minor: Can't open object #001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attribute major: Attribute minor: Can't open object #004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object header major: Attribute minor: Unable to initialize object #005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeBitGroomNumberOfSignificantDigits' major: Attribute minor: Object not found HDF5-DIAG: Error detected in HDF5 (1.12.2) thread 1: #000: H5A.c line 528 in H5Aopen_by_name(): can't open attribute major: Attribute minor: Can't open object #001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attribute major: Attribute minor: Can't open object #004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object header major: Attribute minor: Unable to initialize object #005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeGranularBitRoundNumberOfSignificantDigits' major: Attribute minor: Object not found HDF5-DIAG: Error detected in HDF5 (1.12.2) thread 1: #000: H5A.c line 528 in H5Aopen_by_name(): can't open attribute major: Attribute minor: Can't open object #001: H5VLcallback.c line 1091 in H5VL_attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #002: H5VLcallback.c line 1058 in H5VL__attr_open(): attribute open failed major: Virtual Object Layer minor: Can't open object #003: H5VLnative_attr.c line 130 in H5VL__native_attr_open(): can't open attribute major: Attribute minor: Can't open object #004: H5Aint.c line 545 in H5A__open_by_name(): unable to load attribute info from object header major: Attribute minor: Unable to initialize object #005: H5Oattribute.c line 494 in H5O__attr_open_by_name(): can't locate attribute: '_QuantizeBitRoundNumberOfSignificantBits' major: Attribute minor: Object not found ``` --- docker/Dockerfile.testing | 8 ++++---- docker/environment.yml | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index f2b83263..ce35759c 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -1,6 +1,6 @@ # For testing quickly without having to do a full rebuild. -FROM pavics/workflow-tests:230523-update230524-1 +FROM pavics/workflow-tests:230526-dev-py39 #ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" @@ -11,13 +11,13 @@ USER root # Use 'update' for existing and 'install' for new package. # Keep same channel ordering to not revert anything. RUN umask 0000 \ - && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy geoviews==1.9.6 \ + && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy libnetcdf==4.8.1 panel==0.14.4 \ && mamba clean --all --yes # && pip uninstall -y ravenpy \ # && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c defaults -n birdy ravenpy aiohttp -RUN umask 0000 \ - && python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4==1.6.0 --no-binary netcdf4 +#RUN umask 0000 \ +# && python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4==1.6.0 --no-binary netcdf4 # RUN apt-get update && \ # DEBIAN_FRONTEND=noninteractive apt-get install -y unzip && \ # apt-get clean && \ diff --git a/docker/environment.yml b/docker/environment.yml index d8ca9202..e3d4d00f 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -35,6 +35,8 @@ dependencies: - birdy # - owslib>=0.23.0 # from ravenpy # - netcdf4 # from ravenpy + # TODO: remove libnetcdf PIN because https://github.com/Ouranosinc/PAVICS-landing/issues/66 + - libnetcdf <= 4.8.1 # https://github.com/ecmwf/cfgrib # Python interface to map GRIB files to the Unidata's Common Data Model v4 # following the CF Conventions. From e0491d984de96e4cdd9c07440f225222d2039689 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 26 May 2023 14:12:30 -0400 Subject: [PATCH 36/61] docker: remove netcdf4 recompile from source since libnetcdf seems to be the root cause --- docker/Dockerfile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 977bbca8..4b997108 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -57,10 +57,6 @@ ENV PATH="/opt/conda/envs/birdy/bin:$PATH" # this python is from the birdy env above RUN python -m ipykernel install --name birdy -# https://github.com/Unidata/netcdf4-python/issues/1192#issuecomment-1251532332 -RUN umask 0000 && \ - python -m pip install --upgrade --force-reinstall --no-deps --no-cache-dir netcdf4==1.6.0 --no-binary netcdf4 - # install using same channel preferences as birdy original env to not downgrade # anything accidentally # this is for debug only, all dependencies should be specified in From b8bfad0023a1e9edd06f4b41b4bdc720327d5d05 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 26 May 2023 14:15:39 -0400 Subject: [PATCH 37/61] docker: reference issue with popmean.shape[axis] error --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 4b997108..b7da9aab 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -44,7 +44,7 @@ COPY environment.yml /environment.yml # DEBUG conda.common._logic:_run_sat(607): Invoking SAT with clause count: 2500273 # # Python 3.10 cause this "ValueError: `popmean.shape[axis]` must equal 1." in -# homepage nb 4. +# homepage nb 4, see https://github.com/Ouranosinc/PAVICS-landing/issues/65 RUN umask 0000 && \ mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.9 --yes && \ mamba env update --name birdy --file /environment.yml && \ From 3df811abbdba814e610b575e7814cea6e0883732 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 26 May 2023 15:02:14 -0400 Subject: [PATCH 38/61] release: update to use image pavics/workflow-tests:230526-1 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 20ab7508..2e80cf70 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230526" + image "pavics/workflow-tests:230526-1" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 1d26a11d..e4354c03 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230526 +FROM pavics/workflow-tests:230526-1 USER root diff --git a/launchcontainer b/launchcontainer index 23210846..2e87063f 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230526" + DOCKER_IMAGE="pavics/workflow-tests:230526-1" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index a97f4645..5202a0a0 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230526" + DOCKER_IMAGE="pavics/workflow-tests:230526-1" fi if [ -z "$CONTAINER_NAME" ]; then From 5c773a252f4539941e504cc4dafef2b8dc45e65b Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 26 May 2023 15:09:55 -0400 Subject: [PATCH 39/61] docker: pin numpy for datashade=True with hvplot.quadmesh() See https://github.com/holoviz/hvplot/issues/1073 --- docker/Dockerfile.testing | 4 ++-- docker/environment.yml | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index ce35759c..d1a7d4dc 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -1,6 +1,6 @@ # For testing quickly without having to do a full rebuild. -FROM pavics/workflow-tests:230526-dev-py39 +FROM pavics/workflow-tests:230526-1 #ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk" @@ -11,7 +11,7 @@ USER root # Use 'update' for existing and 'install' for new package. # Keep same channel ordering to not revert anything. RUN umask 0000 \ - && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy libnetcdf==4.8.1 panel==0.14.4 \ + && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy numpy==1.23.5 \ && mamba clean --all --yes # && pip uninstall -y ravenpy \ # && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c defaults -n birdy ravenpy aiohttp diff --git a/docker/environment.yml b/docker/environment.yml index e3d4d00f..429b64c8 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -32,6 +32,10 @@ dependencies: - matplotlib # - xarray # from xclim and ravenpy # - numpy # from xclim and ravenpy + # TODO: unpin numpy, pinned for hvplot.quadmesh(rasterize=True) + # datashade=True is an alias + # See https://github.com/holoviz/hvplot/issues/1073 + - numpy <= 1.23.5 - birdy # - owslib>=0.23.0 # from ravenpy # - netcdf4 # from ravenpy From 7898ca34f70599ba6a7c1a3ae5298ec6264f8eee Mon Sep 17 00:00:00 2001 From: Long Vu Date: Fri, 26 May 2023 15:18:12 -0400 Subject: [PATCH 40/61] docker: climpred temporary not a dependency of latest ravenpy --- docker/environment.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/environment.yml b/docker/environment.yml index 429b64c8..8457a048 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -19,8 +19,8 @@ dependencies: # Pin latest xclim and ravenpy to avoid downgrading during the second installation phase. # Mamba is quicker to solve dependencies than conda, but it is less precise so accidental downgrades can happen. - - xclim >= 0.38.0 - - ravenpy >= 0.7.8 + - xclim >= 0.43.0 + - ravenpy >= 0.12.0 #- dask # from xclim and ravenpy #- distributed @@ -230,3 +230,5 @@ dependencies: # Needed to run notebook tests. Missing indirect recursive dependencies # somewhere, should not need to manually add it here. - pytest-tornasync + # Was dependency from ravenpy. Temporary here until conda build works. + - climpred From 11e3c2348bb50ef8c2260e21a5e7b3f9d3f45a8e Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 09:58:32 -0400 Subject: [PATCH 41/61] docker: climpred back to be a dependency of ravenpy, no need for explicit mention here --- docker/environment.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker/environment.yml b/docker/environment.yml index 8457a048..a09e4fc1 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -230,5 +230,3 @@ dependencies: # Needed to run notebook tests. Missing indirect recursive dependencies # somewhere, should not need to manually add it here. - pytest-tornasync - # Was dependency from ravenpy. Temporary here until conda build works. - - climpred From 6c3585d454db3cc4369365bd334f29743a31a2c8 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 10:05:38 -0400 Subject: [PATCH 42/61] docker: add pytest-xdist for Raven nb --- docker/Dockerfile.testing | 2 +- docker/environment.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile.testing b/docker/Dockerfile.testing index d1a7d4dc..bf5d0250 100644 --- a/docker/Dockerfile.testing +++ b/docker/Dockerfile.testing @@ -11,7 +11,7 @@ USER root # Use 'update' for existing and 'install' for new package. # Keep same channel ordering to not revert anything. RUN umask 0000 \ - && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy numpy==1.23.5 \ + && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy numpy==1.23.5 pytest-xdist \ && mamba clean --all --yes # && pip uninstall -y ravenpy \ # && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c defaults -n birdy ravenpy aiohttp diff --git a/docker/environment.yml b/docker/environment.yml index a09e4fc1..f840f41a 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -141,6 +141,7 @@ dependencies: - mesalib # tests - pytest + - pytest-xdist - nbval # to edit .ipynb - jupyter From a5792c8ffd98ed8a847cf08121b79a05818fa0da Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 11:25:04 -0400 Subject: [PATCH 43/61] release: update to use image pavics/workflow-tests:230529 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2e80cf70..27258ec0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230526-1" + image "pavics/workflow-tests:230529" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index e4354c03..8121ed4f 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230526-1 +FROM pavics/workflow-tests:230529 USER root diff --git a/launchcontainer b/launchcontainer index 2e87063f..bfa92fef 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230526-1" + DOCKER_IMAGE="pavics/workflow-tests:230529" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 5202a0a0..10bc0406 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230526-1" + DOCKER_IMAGE="pavics/workflow-tests:230529" fi if [ -z "$CONTAINER_NAME" ]; then From 3a7f12db766cba293dc5710b854f729e8e9d66bd Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 15:16:27 -0400 Subject: [PATCH 44/61] nb deploy: add RavenPy notebooks and merge with RavenWPS notebooks Also decrease verbosity of repo rm at end so only the notebooks we want are listed. --- binder/reorg-notebooks | 12 ++++++++---- default_build_params | 21 +++++++++++++++++++++ downloadrepos | 1 + 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/binder/reorg-notebooks b/binder/reorg-notebooks index 8ec894ea..ed05eef4 100755 --- a/binder/reorg-notebooks +++ b/binder/reorg-notebooks @@ -6,7 +6,11 @@ # if name clash, last command wins mv -v esgf-compute-api-$ESGF_COMPUTE_API_BRANCH/examples ./esgf-compute-api-examples-$ESGF_COMPUTE_API_BRANCH -rm -rfv esgf-compute-api-$ESGF_COMPUTE_API_BRANCH +rm -r esgf-compute-api-$ESGF_COMPUTE_API_BRANCH + +mv -v raven-${RAVEN_BRANCH}/docs/source/notebooks ./raven +mv -v RavenPy-${RAVENPY_BRANCH}/docs/notebooks/*.ipynb ./raven/ +rm -r raven-${RAVEN_BRANCH} RavenPy-${RAVENPY_BRANCH} if [ -n "$DEPLOY_PAVICS_LANDING_NB" ]; then # Pavics landing notebooks already deployed to Jupyter env via @@ -15,10 +19,10 @@ if [ -n "$DEPLOY_PAVICS_LANDING_NB" ]; then mv -v PAVICS-landing-$PAVICS_LANDING_BRANCH/content/notebooks/climate_indicators ./pavics-homepage rm -v ./pavics-homepage/*.html fi -rm -rfv PAVICS-landing-$PAVICS_LANDING_BRANCH +rm -r PAVICS-landing-$PAVICS_LANDING_BRANCH mv -v pavics-sdi-$PAVICS_SDI_BRANCH/docs/source/notebooks/*.ipynb ./ -rm -rfv pavics-sdi-$PAVICS_SDI_BRANCH +rm -r pavics-sdi-$PAVICS_SDI_BRANCH mv -v finch-$FINCH_BRANCH/docs/source/notebooks/*.ipynb ./ -rm -rfv finch-$FINCH_BRANCH +rm -r finch-$FINCH_BRANCH diff --git a/default_build_params b/default_build_params index de71da6b..5fba9440 100644 --- a/default_build_params +++ b/default_build_params @@ -84,6 +84,27 @@ else echo "RAVEN_REPO has been set to '$RAVEN_REPO'" fi +if [ -z "$TEST_RAVENPY_REPO" ]; then + TEST_RAVENPY_REPO=false + echo "TEST_RAVENPY_REPO not set, default to '$TEST_RAVENPY_REPO'" +else + echo "TEST_RAVENPY_REPO has been set to '$TEST_RAVENPY_REPO'" +fi + +if [ -z "$RAVENPY_BRANCH" ]; then + RAVENPY_BRANCH=master + echo "RAVENPY_BRANCH not set, default to '$RAVENPY_BRANCH'" +else + echo "RAVENPY_BRANCH has been set to '$RAVENPY_BRANCH'" +fi + +if [ -z "$RAVENPY_REPO" ]; then + RAVENPY_REPO='CSHS-CWRA/RavenPy' + echo "RAVENPY_REPO not set, default to '$RAVENPY_REPO'" +else + echo "RAVENPY_REPO has been set to '$RAVENPY_REPO'" +fi + if [ -z "$TEST_ESGF_COMPUTE_API_REPO" ]; then TEST_ESGF_COMPUTE_API_REPO=false echo "TEST_ESGF_COMPUTE_API_REPO not set, default to '$TEST_ESGF_COMPUTE_API_REPO'" diff --git a/downloadrepos b/downloadrepos index 8742a869..9702c261 100755 --- a/downloadrepos +++ b/downloadrepos @@ -29,6 +29,7 @@ if [ -z "$1" ]; then downloadgithubrepos $FINCH_REPO $FINCH_BRANCH downloadgithubrepos $PAVICS_LANDING_REPO $PAVICS_LANDING_BRANCH downloadgithubrepos $RAVEN_REPO $RAVEN_BRANCH + downloadgithubrepos $RAVENPY_REPO $RAVENPY_BRANCH downloadgithubrepos $ESGF_COMPUTE_API_REPO $ESGF_COMPUTE_API_BRANCH else set -x From d77b2235bc840e1564988b7e6b9822d87ed825b4 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 16:02:45 -0400 Subject: [PATCH 45/61] jenkins: add RavenPy repo, not activated nightly yet --- Jenkinsfile | 7 +++++++ testall | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 27258ec0..9eb3bd29 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,6 +66,12 @@ Requires 'weaver' component to be active on the target 'PAVICS_HOST' server description: 'RAVEN_REPO branch to test against.', trim: true) string(name: 'RAVEN_REPO', defaultValue: 'Ouranosinc/raven', description: 'https://github.com/Ouranosinc/raven repo or fork to test against.', trim: true) + booleanParam(name: 'TEST_RAVENPY_REPO', defaultValue: false, + description: 'Check the box to test RavenPy repo.') + string(name: 'RAVENPY_BRANCH', defaultValue: 'master', + description: 'RAVENPY_REPO branch to test against.', trim: true) + string(name: 'RAVENPY_REPO', defaultValue: 'CSHS-CWRA/RavenPy', + description: 'https://github.com/CSHS-CWRA/RavenPy repo or fork to test against.', trim: true) booleanParam(name: 'TEST_ESGF_COMPUTE_API_REPO', defaultValue: false, description: 'Check the box to test esgf-compute-api repo.') string(name: 'ESGF_COMPUTE_API_BRANCH', defaultValue: 'devel', @@ -118,6 +124,7 @@ Note this is another run, will double the time and no guaranty to have same erro archiveArtifacts(artifacts: 'pavics-sdi-*/docs/source/notebook-components/*.ipynb', fingerprint: true) archiveArtifacts(artifacts: 'finch-*/docs/source/notebooks/*.ipynb', fingerprint: true) archiveArtifacts(artifacts: 'raven-*/docs/source/notebooks/*.ipynb', fingerprint: true) + archiveArtifacts(artifacts: 'RavenPy-*/docs/notebooks/*.ipynb', fingerprint: true) archiveArtifacts(artifacts: 'esgf-compute-api-*/examples/*.ipynb', fingerprint: true) archiveArtifacts(artifacts: 'PAVICS-landing-*/content/notebooks/climate_indicators/*.ipynb', fingerprint: true) archiveArtifacts(artifacts: 'buildout/*.output.ipynb', fingerprint: true, allowEmptyArchive: true) diff --git a/testall b/testall index 126efe39..6c1944ed 100755 --- a/testall +++ b/testall @@ -21,6 +21,8 @@ PAVICS_LANDING_BRANCH="`echo "$PAVICS_LANDING_BRANCH" | sed "s@/@-@g"`" PAVICS_LANDING_REPO_NAME="`echo "$PAVICS_LANDING_REPO" | sed "s@^.*/@@g"`" RAVEN_BRANCH="`echo "$RAVEN_BRANCH" | sed "s@/@-@g"`" RAVEN_REPO_NAME="`echo "$RAVEN_REPO" | sed "s@^.*/@@g"`" +RAVENPY_BRANCH="`echo "$RAVENPY_BRANCH" | sed "s@/@-@g"`" +RAVENPY_REPO_NAME="`echo "$RAVENPY_REPO" | sed "s@^.*/@@g"`" ESGF_COMPUTE_API_BRANCH="`echo "$ESGF_COMPUTE_API_BRANCH" | sed "s@/@-@g"`" ESGF_COMPUTE_API_REPO_NAME="`echo "$ESGF_COMPUTE_API_REPO" | sed "s@^.*/@@g"`" @@ -29,6 +31,7 @@ PAVICS_SDI_DIR=`echo "${PAVICS_SDI_REPO_NAME}-${PAVICS_SDI_BRANCH}" | sed "s@[^a FINCH_DIR=`echo "${FINCH_REPO_NAME}-${FINCH_BRANCH}" | sed "s@[^a-zA-Z0-9_\-\.]@-@g"` PAVICS_LANDING_DIR=`echo "${PAVICS_LANDING_REPO_NAME}-${PAVICS_LANDING_BRANCH}" | sed "s@[^a-zA-Z0-9_\-\.]@-@g"` RAVEN_DIR=`echo "${RAVEN_REPO_NAME}-${RAVEN_BRANCH}" | sed "s@[^a-zA-Z0-9_\-\.]@-@g"` +RAVENPY_DIR=`echo "${RAVENPY_REPO_NAME}-${RAVENPY_BRANCH}" | sed "s@[^a-zA-Z0-9_\-\.]@-@g"` ESGF_COMPUTE_API_DIR=`echo "${ESGF_COMPUTE_API_REPO_NAME}-${ESGF_COMPUTE_API_BRANCH}" | sed "s@[^a-zA-Z0-9_\-\.]@-@g"` # lowercase VERIFY_SSL string @@ -45,6 +48,8 @@ fi # presence of setup.cfg, tox.ini files confuse py.test execution rootdir discovery rm -v $FINCH_REPO_NAME-$FINCH_BRANCH/setup.cfg rm -v $RAVEN_REPO_NAME-$RAVEN_BRANCH/setup.cfg +rm -v $RAVENPY_REPO_NAME-$RAVENPY_BRANCH/setup.cfg +rm -v $RAVENPY_REPO_NAME-$RAVENPY_BRANCH/tox.ini rm -v $ESGF_COMPUTE_API_REPO_NAME-$ESGF_COMPUTE_API_BRANCH/setup.cfg rm -v $ESGF_COMPUTE_API_REPO_NAME-$ESGF_COMPUTE_API_BRANCH/tox.ini @@ -55,6 +60,7 @@ TEST_PAVICS_SDI_WEAVER="`echo "$TEST_PAVICS_SDI_WEAVER" | tr '[:upper:]' '[:lowe TEST_FINCH_REPO="`echo "$TEST_FINCH_REPO" | tr '[:upper:]' '[:lower:]'`" TEST_PAVICS_LANDING_REPO="`echo "$TEST_PAVICS_LANDING_REPO" | tr '[:upper:]' '[:lower:]'`" TEST_RAVEN_REPO="`echo "$TEST_RAVEN_REPO" | tr '[:upper:]' '[:lower:]'`" +TEST_RAVENPY_REPO="`echo "$TEST_RAVENPY_REPO" | tr '[:upper:]' '[:lower:]'`" TEST_ESGF_COMPUTE_API_REPO="`echo "$TEST_ESGF_COMPUTE_API_REPO" | tr '[:upper:]' '[:lower:]'`" TEST_LOCAL_NOTEBOOKS="`echo "$TEST_LOCAL_NOTEBOOKS" | tr '[:upper:]' '[:lower:]'`" @@ -89,6 +95,9 @@ fi if [ x"$TEST_RAVEN_REPO" = xtrue ]; then NOTEBOOKS_TO_TEST="$NOTEBOOKS_TO_TEST ${RAVEN_DIR}/docs/source/notebooks/*.ipynb" fi +if [ x"$TEST_RAVENPY_REPO" = xtrue ]; then + NOTEBOOKS_TO_TEST="$NOTEBOOKS_TO_TEST ${RAVENPY_DIR}/docs/notebooks/*.ipynb" +fi if [ x"$TEST_ESGF_COMPUTE_API_REPO" = xtrue ]; then NOTEBOOKS_TO_TEST="$NOTEBOOKS_TO_TEST ${ESGF_COMPUTE_API_DIR}/examples/*.ipynb" fi From 12811b33ccdfa1335ae7fe5423fe691fc4927bac Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 16:06:06 -0400 Subject: [PATCH 46/61] jenkins: add new possible PYTEST_EXTRA_OPTS vars as reminder --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9eb3bd29..9b9175c5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -79,7 +79,7 @@ Requires 'weaver' component to be active on the target 'PAVICS_HOST' server string(name: 'ESGF_COMPUTE_API_REPO', defaultValue: 'ESGF/esgf-compute-api', description: 'https://github.com/ESGF/esgf-compute-api repo or fork to test against.', trim: true) string(name: 'PYTEST_EXTRA_OPTS', defaultValue: '', - description: 'Extra options to pass to pytest, ex: --nbval-lax', trim: true) + description: 'Extra options to pass to pytest, ex: --nbval-lax --dist=loadscope --numprocesses=0', trim: true) string(name: 'EXTRA_TEST_ENV_VAR', defaultValue: '', description: 'Extra environment variables for the various tests, ex: "TEST_RUNS=50 TEST_WPS_BIRDS=finch,raven,flyingpigeon TEST_NO_USE_PROD_DATA=1"', trim: true) booleanParam(name: 'TEST_LOCAL_NOTEBOOKS', defaultValue: true, From f253151a1d7c87d034eec4c5c102ebffe82698c8 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 16:11:58 -0400 Subject: [PATCH 47/61] jenkins: pyproject.toml also confuse py.test execution rootdir --- testall | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/testall b/testall index 6c1944ed..cd63c911 100755 --- a/testall +++ b/testall @@ -45,11 +45,12 @@ if [ x"$VERIFY_SSL" = xfalse ]; then echo "setting env var DISABLE_VERIFY_SSL for notebooks" fi -# presence of setup.cfg, tox.ini files confuse py.test execution rootdir discovery +# presence of setup.cfg, tox.ini, pyproject.toml files confuse py.test execution rootdir discovery rm -v $FINCH_REPO_NAME-$FINCH_BRANCH/setup.cfg rm -v $RAVEN_REPO_NAME-$RAVEN_BRANCH/setup.cfg rm -v $RAVENPY_REPO_NAME-$RAVENPY_BRANCH/setup.cfg rm -v $RAVENPY_REPO_NAME-$RAVENPY_BRANCH/tox.ini +rm -v $RAVENPY_REPO_NAME-$RAVENPY_BRANCH/pyproject.toml rm -v $ESGF_COMPUTE_API_REPO_NAME-$ESGF_COMPUTE_API_BRANCH/setup.cfg rm -v $ESGF_COMPUTE_API_REPO_NAME-$ESGF_COMPUTE_API_BRANCH/tox.ini From dbc97e87a0ad9d9e7d4e5ac0136a13cbac7dc8e0 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 16:13:54 -0400 Subject: [PATCH 48/61] .gitignore: add RavenPy-*/ --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index bc4d4198..177ad619 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ pavics-sdi-*/ finch-*/ raven-*/ +RavenPy-*/ esgf-compute-api-*/ PAVICS-landing-*/ From 11f5868eae098d56383cb8524c2e67e9cccfc8fb Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 16:22:49 -0400 Subject: [PATCH 49/61] jenkins: raven also have pyproject.toml that needs to be removed --- testall | 1 + 1 file changed, 1 insertion(+) diff --git a/testall b/testall index cd63c911..5a15c30d 100755 --- a/testall +++ b/testall @@ -48,6 +48,7 @@ fi # presence of setup.cfg, tox.ini, pyproject.toml files confuse py.test execution rootdir discovery rm -v $FINCH_REPO_NAME-$FINCH_BRANCH/setup.cfg rm -v $RAVEN_REPO_NAME-$RAVEN_BRANCH/setup.cfg +rm -v $RAVEN_REPO_NAME-$RAVEN_BRANCH/pyproject.toml rm -v $RAVENPY_REPO_NAME-$RAVENPY_BRANCH/setup.cfg rm -v $RAVENPY_REPO_NAME-$RAVENPY_BRANCH/tox.ini rm -v $RAVENPY_REPO_NAME-$RAVENPY_BRANCH/pyproject.toml From 79887326609b7e3da704c6f9a958f69bce194096 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 17:09:42 -0400 Subject: [PATCH 50/61] reorg-notebooks: avoid index.rst on Jupyter env --- binder/reorg-notebooks | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/binder/reorg-notebooks b/binder/reorg-notebooks index ed05eef4..2c26bf05 100755 --- a/binder/reorg-notebooks +++ b/binder/reorg-notebooks @@ -8,7 +8,8 @@ mv -v esgf-compute-api-$ESGF_COMPUTE_API_BRANCH/examples ./esgf-compute-api-examples-$ESGF_COMPUTE_API_BRANCH rm -r esgf-compute-api-$ESGF_COMPUTE_API_BRANCH -mv -v raven-${RAVEN_BRANCH}/docs/source/notebooks ./raven +mkdir raven +mv -v raven-${RAVEN_BRANCH}/docs/source/notebooks/*.ipynb ./raven/ mv -v RavenPy-${RAVENPY_BRANCH}/docs/notebooks/*.ipynb ./raven/ rm -r raven-${RAVEN_BRANCH} RavenPy-${RAVENPY_BRANCH} From 849a335851338276b4dcfc77ea5e7817e53592b9 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 17:11:31 -0400 Subject: [PATCH 51/61] reorg-notebooks: do not deploy esgf-compute-api-examples to Jupyter env --- binder/reorg-notebooks | 1 - 1 file changed, 1 deletion(-) diff --git a/binder/reorg-notebooks b/binder/reorg-notebooks index 2c26bf05..8c75ad38 100755 --- a/binder/reorg-notebooks +++ b/binder/reorg-notebooks @@ -5,7 +5,6 @@ # if name clash, last command wins -mv -v esgf-compute-api-$ESGF_COMPUTE_API_BRANCH/examples ./esgf-compute-api-examples-$ESGF_COMPUTE_API_BRANCH rm -r esgf-compute-api-$ESGF_COMPUTE_API_BRANCH mkdir raven From 483d602fdad91e40cbed29991bb6ff1860f3d674 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 23:43:36 -0400 Subject: [PATCH 52/61] docker: add seaborn for RavenPy Managing_Jupyter_Environments.ipynb ``` 17:08:56 __ RavenPy-master/docs/notebooks/Managing_Jupyter_Environments.ipynb::Cell 2 ___ 17:08:56 Notebook cell execution failed 17:08:56 Cell 2: Cell execution caused an exception 17:08:56 17:08:56 Input: 17:08:56 # This will now work. 17:08:56 import seaborn 17:08:56 17:08:56 Traceback: 17:08:56 17:08:56 --------------------------------------------------------------------------- 17:08:56 ModuleNotFoundError Traceback (most recent call last) 17:08:56 Cell In[3], line 2 17:08:56 1 # This will now work. 17:08:56 ----> 2 import seaborn 17:08:56 17:08:56 ModuleNotFoundError: No module named 'seaborn' ``` --- docker/environment.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/environment.yml b/docker/environment.yml index f840f41a..9aeed5ed 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -80,6 +80,9 @@ dependencies: # https://streamlit.io/ # https://anaconda.org/conda-forge/streamlit - streamlit + # https://anaconda.org/conda-forge/seaborn + # Statistical data visualization + - seaborn # python-pptx is a Python library for creating and updating PowerPoint (.pptx) files. # https://python-pptx.readthedocs.io/en/latest/ # https://anaconda.org/conda-forge/python-pptx From 3f457751d502863bd85894d91a6e604b3c4488fd Mon Sep 17 00:00:00 2001 From: Long Vu Date: Mon, 29 May 2023 23:47:59 -0400 Subject: [PATCH 53/61] docker: add hs_restclient for RavenPy HydroShare_integration.ipynb ``` 17:08:56 ______ RavenPy-master/docs/notebooks/HydroShare_integration.ipynb::Cell 0 ______ 17:08:56 Notebook cell execution failed 17:08:56 Cell 0: Cell execution caused an exception 17:08:56 17:08:56 Input: 17:08:56 from hs_restclient import HydroShare, HydroShareAuthBasic 17:08:56 17:08:56 # Auth method 17:08:56 """ 17:08:56 username = 'XXXXX' 17:08:56 password = 'XXXXX' 17:08:56 auth = HydroShareAuthBasic(username=username, password=password) 17:08:56 hs = HydroShare(auth=auth) 17:08:56 """ 17:08:56 # Sign-in method, will prompt for HydroShare account username/password: 17:08:56 hs = HydroShare() 17:08:56 17:08:56 Traceback: 17:08:56 17:08:56 --------------------------------------------------------------------------- 17:08:56 ModuleNotFoundError Traceback (most recent call last) 17:08:56 Cell In[1], line 1 17:08:56 ----> 1 from hs_restclient import HydroShare, HydroShareAuthBasic 17:08:56 3 # Auth method 17:08:56 4 """ 17:08:56 5 username = 'XXXXX' 17:08:56 6 password = 'XXXXX' 17:08:56 7 auth = HydroShareAuthBasic(username=username, password=password) 17:08:56 8 hs = HydroShare(auth=auth) 17:08:56 9 """ 17:08:56 17:08:56 ModuleNotFoundError: No module named 'hs_restclient' ``` --- docker/environment.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker/environment.yml b/docker/environment.yml index 9aeed5ed..b018d471 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -114,6 +114,9 @@ dependencies: - intake-geopandas # Intake interface to THREDDS data catalogs (thredds_cat, thredds_merged_source) - intake-thredds + # https://anaconda.org/conda-forge/hs_restclient + # HydroShare REST API client library + - hs_restclient - gcsfs - zarr # https://github.com/dask/s3fs/ From aa27b50ecb40c2b7d6c4ef96a8d3d10267629d09 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 30 May 2023 00:46:59 -0400 Subject: [PATCH 54/61] release: update to use image pavics/workflow-tests:230529-1 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9b9175c5..f2e48df2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230529" + image "pavics/workflow-tests:230529-1" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 8121ed4f..b2a0c0a6 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230529 +FROM pavics/workflow-tests:230529-1 USER root diff --git a/launchcontainer b/launchcontainer index bfa92fef..c8f5c1fc 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230529" + DOCKER_IMAGE="pavics/workflow-tests:230529-1" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 10bc0406..efdbec16 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230529" + DOCKER_IMAGE="pavics/workflow-tests:230529-1" fi if [ -z "$CONTAINER_NAME" ]; then From 06d8a443084273844cafbc7507586b6bf7a16352 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 30 May 2023 12:37:00 -0400 Subject: [PATCH 55/61] docker: avoid cf_xarray 0.8.1 See https://github.com/xarray-contrib/cf-xarray/issues/442 --- docker/environment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker/environment.yml b/docker/environment.yml index b018d471..0ed281b6 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -36,6 +36,8 @@ dependencies: # datashade=True is an alias # See https://github.com/holoviz/hvplot/issues/1073 - numpy <= 1.23.5 + # TODO: unpin cf_xarray due to https://github.com/xarray-contrib/cf-xarray/issues/442 + - cf_xarray != 0.8.1 - birdy # - owslib>=0.23.0 # from ravenpy # - netcdf4 # from ravenpy From fa11db82691d4337bf5b498241ced9dd7dc3deec Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 30 May 2023 12:37:59 -0400 Subject: [PATCH 56/61] release: update to use image pavics/workflow-tests:230530 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index f2e48df2..24b50f53 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230529-1" + image "pavics/workflow-tests:230530" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index b2a0c0a6..2380eff8 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230529-1 +FROM pavics/workflow-tests:230530 USER root diff --git a/launchcontainer b/launchcontainer index c8f5c1fc..e7b1443f 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230529-1" + DOCKER_IMAGE="pavics/workflow-tests:230530" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index efdbec16..8776b3fd 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230529-1" + DOCKER_IMAGE="pavics/workflow-tests:230530" fi if [ -z "$CONTAINER_NAME" ]; then From db6e28336c81da92e4be71b06f17f2000fd9e0ef Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 30 May 2023 16:56:35 -0400 Subject: [PATCH 57/61] docker: add hsclient for RavenPy nb No conda package exists so have to use pip. --- docker/environment.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker/environment.yml b/docker/environment.yml index 0ed281b6..3bbf5e12 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -116,6 +116,7 @@ dependencies: - intake-geopandas # Intake interface to THREDDS data catalogs (thredds_cat, thredds_merged_source) - intake-thredds + # TODO: remove hs_restclient on next release, replaced by hsclient # https://anaconda.org/conda-forge/hs_restclient # HydroShare REST API client library - hs_restclient @@ -219,6 +220,9 @@ dependencies: # https://pypi.org/project/xncml/ # Tools for manipulating and opening NCML (NetCDF Markup) files with/for xarray - xncml + # https://pypi.org/project/hsclient/ + # A python client for managing HydroShare resources, replaces hs_restclient + - hsclient # visual debugger for Jupyter Notebook, not working with JupyterLab at this moment - pixiedust # block execution of 'run_all_cells' until user input finished From 17fc574140e3fa292dd980103ae1c060fd4e67cb Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 30 May 2023 17:51:52 -0400 Subject: [PATCH 58/61] docker: remove hs_restclient, replaced by hsclient --- docker/environment.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docker/environment.yml b/docker/environment.yml index 3bbf5e12..00a19d17 100644 --- a/docker/environment.yml +++ b/docker/environment.yml @@ -116,10 +116,6 @@ dependencies: - intake-geopandas # Intake interface to THREDDS data catalogs (thredds_cat, thredds_merged_source) - intake-thredds - # TODO: remove hs_restclient on next release, replaced by hsclient - # https://anaconda.org/conda-forge/hs_restclient - # HydroShare REST API client library - - hs_restclient - gcsfs - zarr # https://github.com/dask/s3fs/ From 7e14b281ee61cd710e5dc83fa85d878bf3db7aca Mon Sep 17 00:00:00 2001 From: Long Vu Date: Tue, 30 May 2023 21:18:24 -0400 Subject: [PATCH 59/61] release: update to use image pavics/workflow-tests:230530-1 --- Jenkinsfile | 2 +- binder/Dockerfile | 2 +- launchcontainer | 2 +- launchnotebook | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 24b50f53..71cbe1c2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -10,7 +10,7 @@ pipeline { // https://jenkins.io/doc/book/pipeline/syntax/ agent { docker { - image "pavics/workflow-tests:230530" + image "pavics/workflow-tests:230530-1" label 'linux && docker' } } diff --git a/binder/Dockerfile b/binder/Dockerfile index 2380eff8..8b11a056 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1,4 +1,4 @@ -FROM pavics/workflow-tests:230530 +FROM pavics/workflow-tests:230530-1 USER root diff --git a/launchcontainer b/launchcontainer index e7b1443f..9578fc62 100755 --- a/launchcontainer +++ b/launchcontainer @@ -1,7 +1,7 @@ #!/bin/sh -x if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230530" + DOCKER_IMAGE="pavics/workflow-tests:230530-1" fi if [ -z "$CONTAINER_NAME" ]; then diff --git a/launchnotebook b/launchnotebook index 8776b3fd..042a0fc6 100755 --- a/launchnotebook +++ b/launchnotebook @@ -7,7 +7,7 @@ if [ -z "$PORT" ]; then fi if [ -z "$DOCKER_IMAGE" ]; then - DOCKER_IMAGE="pavics/workflow-tests:230530" + DOCKER_IMAGE="pavics/workflow-tests:230530-1" fi if [ -z "$CONTAINER_NAME" ]; then From 6acaaceaf40c6ad9ca8d9df88f29f8c2e372493e Mon Sep 17 00:00:00 2001 From: Long Vu Date: Wed, 31 May 2023 17:53:02 -0400 Subject: [PATCH 60/61] jenkins: add HydroShare client id and token for RavenPy HydroShare_integration.ipynb See https://github.com/Ouranosinc/jenkins-config/pull/15 and https://github.com/CSHS-CWRA/RavenPy/pull/287. --- Jenkinsfile | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 71cbe1c2..2d40515f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -107,6 +107,16 @@ Note this is another run, will double the time and no guaranty to have same erro variable: 'ESGF_AUTH_TOKEN'), // Kept old env var name for backward compat string(credentialsId: 'esgf_auth_token', variable: 'COMPUTE_TOKEN'), // ESGF expect this env var name + // For RavenPy HydroShare_integration.ipynb once a token is really required. + // Not enable immediately to not force all existing Jenkins deployments + // to add theses new credentials. + // See required Jenkins config change + // https://github.com/Ouranosinc/jenkins-config/commit/c6b36cfb761b5093375225a121ef5ec04684e84b + // https://github.com/Ouranosinc/jenkins-config/pull/15 + // string(credentialsId: 'hydroshare_auth_client_id', + // variable: 'HYDROSHARE_AUTH_CLIENT_ID'), + // string(credentialsId: 'hydroshare_auth_token', + // variable: 'HYDROSHARE_AUTH_TOKEN'), ]) { sh("VERIFY_SSL=${params.VERIFY_SSL} \ SAVE_RESULTING_NOTEBOOK=${params.SAVE_RESULTING_NOTEBOOK} \ From 9f372ec0b5bc73d5f82bfbd362b76bbe765cab47 Mon Sep 17 00:00:00 2001 From: Long Vu Date: Thu, 1 Jun 2023 01:16:08 -0400 Subject: [PATCH 61/61] jenkins: use --dist=loadscope --numprocesses=0 for all nb since it does not break anything and RavenPy needs it --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2d40515f..78be8f38 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -78,7 +78,7 @@ Requires 'weaver' component to be active on the target 'PAVICS_HOST' server description: 'ESGF_COMPUTE_API_REPO branch to test against.', trim: true) string(name: 'ESGF_COMPUTE_API_REPO', defaultValue: 'ESGF/esgf-compute-api', description: 'https://github.com/ESGF/esgf-compute-api repo or fork to test against.', trim: true) - string(name: 'PYTEST_EXTRA_OPTS', defaultValue: '', + string(name: 'PYTEST_EXTRA_OPTS', defaultValue: '--dist=loadscope --numprocesses=0', description: 'Extra options to pass to pytest, ex: --nbval-lax --dist=loadscope --numprocesses=0', trim: true) string(name: 'EXTRA_TEST_ENV_VAR', defaultValue: '', description: 'Extra environment variables for the various tests, ex: "TEST_RUNS=50 TEST_WPS_BIRDS=finch,raven,flyingpigeon TEST_NO_USE_PROD_DATA=1"', trim: true)