From 944b8dc1e08de3c6330c87a9fa92af8e5e528acd Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Mon, 1 Aug 2022 12:41:31 -0400 Subject: [PATCH 01/18] new base image progress --- narrbase-image/Dockerfile | 95 +++++++++++++++++++-------- narrbase-image/r-packages-postconda.R | 1 - scripts/install_narrative.sh | 6 +- 3 files changed, 69 insertions(+), 33 deletions(-) diff --git a/narrbase-image/Dockerfile b/narrbase-image/Dockerfile index a34af75df2..056ee31140 100644 --- a/narrbase-image/Dockerfile +++ b/narrbase-image/Dockerfile @@ -1,40 +1,77 @@ -FROM kbase/kb_python:python3 +# FROM kbase/kb_python:python3 +FROM python:3.10-slim-bullseye -ENV NOTEBOOK_VERSION 6.0.2 -ENV IPYTHON_VERSION 7.9.0 -ENV IPYWIDGETS_VERSION 7.5.0 -ENV NODEJS_VERSION 14 +ENV NOTEBOOK_VERSION 6.4.11 +ENV IPYTHON_VERSION 8.4.0 +ENV IPYWIDGETS_VERSION 7.6.3 +ENV NODEJS_VERSION 16 ENV TAR /bin/tar # Install Base libraries, Node, R and Jupyter Notebook and ipywidgets from distinct channels ADD ./conda-requirements /root/conda +ADD ./ /root/image_files -RUN mkdir -p /kb/installers && \ - # run conda installs - conda update -n base -c defaults conda && \ - conda install conda && \ - conda install -c conda-forge --file /root/conda/base && \ - conda install -c etetoolkit ete3 && \ - conda install -c anaconda-platform --file /root/conda/base.anaconda-platform && \ - conda install -c javascript --file /root/conda/base.javascript && \ - conda install --file /root/conda/biokbase-requirements.txt && \ - conda install -c r r-base && \ - conda install -c conda-forge --file /root/conda/r.conda-forge && \ - conda install -c r --file /root/conda/r.r && \ - # Install apt-get prereqs for node and R - apt-get update && \ - apt-get install -y gfortran gnupg && \ - # Install nodejs at a useful version - curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ +# A gamut of basic requirements in Debian +RUN apt-get update && \ + apt-get install -y \ + gfortran \ + gnupg \ + # for pycurl + curl \ + libcurl4-openssl-dev \ + libssl-dev \ + # for ete3 / etetoolkit + python3-pyqt5 \ + # for R and CRAN installations + r-base r-base-dev + +# Python dependencies +# Core Python necessities +RUN pip install -r /root/image_files/base-pip-requirements.txt + +# KBase scientific computing packages +RUN pip install -r /root/image_files/kbase-pip-requirements.txt + +RUN pip install \ + ipython==${IPYTHON_VERSION} \ + notebook==${NOTEBOOK_VERSION} \ + ipywidgets==${IPYWIDGETS_VERSION} + +RUN jupyter nbextension enable --py widgetsnbextension + +# JavaScript needs +RUN curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ apt-get install -y nodejs -# Install misc R packages not available on Conda -ADD ./r-packages-postconda.R /root/r-packages.R -RUN R --vanilla < /root/r-packages.R && \ - # Install IPython, Jupyter Notebook, and ipywidgets at controlled versions - conda install -c conda-forge ipython=${IPYTHON_VERSION} notebook=${NOTEBOOK_VERSION} ipywidgets==${IPYWIDGETS_VERSION} && \ - conda update six && \ - jupyter nbextension enable --py widgetsnbextension +# R requirements + + +# RUN mkdir -p /kb/installers && \ +# # run conda installs +# x conda update -n base -c defaults conda && \ +# x conda install conda && \ +# x conda install -c conda-forge --file /root/conda/base && \ +# x conda install -c etetoolkit ete3 && \ +# x conda install -c anaconda-platform --file /root/conda/base.anaconda-platform && \ +# x conda install -c javascript --file /root/conda/base.javascript && \ +# x conda install --file /root/conda/biokbase-requirements.txt && \ +# conda install -c r r-base && \ +# conda install -c conda-forge --file /root/conda/r.conda-forge && \ +# conda install -c r --file /root/conda/r.r && \ +# # Install apt-get prereqs for node and R +# x apt-get update && \ +# x apt-get install -y gfortran gnupg curl libcurl-dev libssl-dev && \ +# x # Install nodejs at a useful version +# x curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ +# x apt-get install -y nodejs + +# # Install misc R packages not available on Conda +# ADD ./r-packages-postconda.R /root/r-packages.R +# RUN R --vanilla < /root/r-packages.R && \ +# x # Install IPython, Jupyter Notebook, and ipywidgets at controlled versions +# x conda install -c conda-forge ipython=${IPYTHON_VERSION} notebook=${NOTEBOOK_VERSION} ipywidgets==${IPYWIDGETS_VERSION} && \ +# x conda update six && \ +# x jupyter nbextension enable --py widgetsnbextension # The BUILD_DATE value seem to bust the docker cache when the timestamp changes, move to # the end diff --git a/narrbase-image/r-packages-postconda.R b/narrbase-image/r-packages-postconda.R index 3d07a29d98..99a1232eba 100644 --- a/narrbase-image/r-packages-postconda.R +++ b/narrbase-image/r-packages-postconda.R @@ -1,7 +1,6 @@ options(repos = c(CRAN = "http://cran.r-project.org/")) install.packages("devtools") -install.packages(c("clValid","RXKCD"), type="source", dependencies=TRUE) install.packages("Rglpk", type="source") # powerful solver for mixed integer linear programming install.packages("goalprog", type="source") # goal programming diff --git a/scripts/install_narrative.sh b/scripts/install_narrative.sh index ae8f839f30..71bad1591c 100755 --- a/scripts/install_narrative.sh +++ b/scripts/install_narrative.sh @@ -37,9 +37,9 @@ # # 8. Done! -IPYTHON_VERSION=7.9.0 -NOTEBOOK_VERSION=6.0.2 -IPYWIDGETS_VERSION=7.5.0 +IPYTHON_VERSION=8.4.0 +NOTEBOOK_VERSION=6.4.11 +IPYWIDGETS_VERSION=7.6.3 SCRIPT_TGT="kbase-narrative" From 83e7ece7a0948a051d5df3cf353bcb596f888312 Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Tue, 16 Aug 2022 17:35:46 -0400 Subject: [PATCH 02/18] progress toward new base image --- Dockerfile | 20 +++++++++---------- .../services/kbase-ui/narrative_version | 2 +- narrbase-image/Dockerfile | 8 ++++---- package-lock.json | 12 +++++------ scripts/build_narrative_container.sh | 2 +- scripts/install_narrative_docker.sh | 10 +++++----- src/config.json.templ | 4 ++-- 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6cbcb3984c..6128e286f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ # Made available under the KBase Open Source License # -FROM kbase/narrbase:6.2 +FROM kbase/narrbase:7.0 # These ARGs values are passed in via the docker build command ARG BUILD_DATE @@ -22,15 +22,15 @@ ARG SKIP_MINIFY EXPOSE 8888 -# install NodeJS 16.x (latest LTS until ~October 2022, https://nodejs.org/en/about/releases/) -# N.b. this version of node is not available in the conda `base` environment as kbase/narrbase:6.2 -# installs ancient versions of node (6.x) and npm (3.x). -RUN \ - curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \ - apt-get install -y nodejs && \ - source activate base && \ - conda update -n base -c defaults conda && \ - python -m pip install --upgrade pip setuptools wheel +# # install NodeJS 16.x (latest LTS until ~October 2022, https://nodejs.org/en/about/releases/) +# # N.b. this version of node is not available in the conda `base` environment as kbase/narrbase:6.2 +# # installs ancient versions of node (6.x) and npm (3.x). +# RUN \ +# curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \ +# apt-get install -y nodejs && \ +# source activate base && \ +# conda update -n base -c defaults conda && \ +# python -m pip install --upgrade pip setuptools wheel # Copy in the narrative repo ADD ./ /kb/dev_container/narrative diff --git a/deployment/services/kbase-ui/narrative_version b/deployment/services/kbase-ui/narrative_version index c790f51b93..df5f0a9873 100644 --- a/deployment/services/kbase-ui/narrative_version +++ b/deployment/services/kbase-ui/narrative_version @@ -1 +1 @@ -{"version":"4.2.0","git_hash":"bf62933"} \ No newline at end of file +{"version":"5.0.3","git_hash":"944b8dc1e"} \ No newline at end of file diff --git a/narrbase-image/Dockerfile b/narrbase-image/Dockerfile index 056ee31140..de27248927 100644 --- a/narrbase-image/Dockerfile +++ b/narrbase-image/Dockerfile @@ -32,12 +32,12 @@ RUN pip install -r /root/image_files/base-pip-requirements.txt # KBase scientific computing packages RUN pip install -r /root/image_files/kbase-pip-requirements.txt -RUN pip install \ - ipython==${IPYTHON_VERSION} \ - notebook==${NOTEBOOK_VERSION} \ - ipywidgets==${IPYWIDGETS_VERSION} +# Install Jupyter, Notebook, Ipywidgets +RUN pip install -r /root/image_files/jupyter-pip-requirements.txt +# Enable the widgets extension RUN jupyter nbextension enable --py widgetsnbextension +RUN jupyter nbextension enable --py --sys-prefix clustergrammer_widget # JavaScript needs RUN curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ diff --git a/package-lock.json b/package-lock.json index 2cbff320d2..f2d21678c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2556,9 +2556,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001346", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001346.tgz", - "integrity": "sha512-q6ibZUO2t88QCIPayP/euuDREq+aMAxFE5S70PkrLh0iTDj/zEhgvJRKC2+CvXY6EWc6oQwUR48lL5vCW6jiXQ==", + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", "dev": true, "funding": [ { @@ -18540,9 +18540,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001346", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001346.tgz", - "integrity": "sha512-q6ibZUO2t88QCIPayP/euuDREq+aMAxFE5S70PkrLh0iTDj/zEhgvJRKC2+CvXY6EWc6oQwUR48lL5vCW6jiXQ==", + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", "dev": true }, "chalk": { diff --git a/scripts/build_narrative_container.sh b/scripts/build_narrative_container.sh index 04c9f78a62..d5d5512ad7 100755 --- a/scripts/build_narrative_container.sh +++ b/scripts/build_narrative_container.sh @@ -7,7 +7,7 @@ DS=$( date +%Y%m%d%H%M ) NAR_NAME="kbase/narrative" NAR_VER_NAME="kbase/narrative_version" # Image for serving up the narrative version NAR_BASE="kbase/narrbase" -NAR_BASE_VER="6.2" +NAR_BASE_VER="7.0" # Get the current branch, so that we can tag images to branch BRANCH=${TRAVIS_BRANCH:-`git symbolic-ref --short HEAD`} diff --git a/scripts/install_narrative_docker.sh b/scripts/install_narrative_docker.sh index 8af5e1dfdb..5f37ac1181 100755 --- a/scripts/install_narrative_docker.sh +++ b/scripts/install_narrative_docker.sh @@ -20,19 +20,19 @@ function console () { echo "$now [install_narrative] $1" } -source activate base +# source activate base # Install Narrative requirements # ------------------------------ -console "Installing biokbase requirements from src/requirements.txt" -pip install -r $NARRATIVE_ROOT_DIR/src/requirements.txt +# console "Installing biokbase requirements from src/requirements.txt" +# pip install -r $NARRATIVE_ROOT_DIR/src/requirements.txt # Install sklearn and clustergrammer # ------------------------------ # We install clustergrammer_widget and sklearn specially here so that it does not # clobber dependencies in the base conda image -console "installing sklearn & clustergrammer_widget'" -pip install --no-dependencies semantic_version sklearn clustergrammer_widget +# console "installing sklearn & clustergrammer_widget'" +# pip install --no-dependencies semantic_version sklearn clustergrammer_widget # Install Narrative code # ---------------------- diff --git a/src/config.json.templ b/src/config.json.templ index 0fcc272c27..8953434911 100644 --- a/src/config.json.templ +++ b/src/config.json.templ @@ -168,8 +168,8 @@ "google_analytics_id": "UA-74532036-1" }, "dev_mode": {{ if ne .Env.CONFIG_ENV "prod" }}true{{- else }}false{{- end }}, - "git_commit_hash": "b75f30d98", - "git_commit_time": "Wed Jul 14 06:29:30 2021 -0700", + "git_commit_hash": "944b8dc1e", + "git_commit_time": "Mon Aug 1 12:41:31 2022 -0400", "loading_gif": "/narrative/static/kbase/images/ajax-loader.gif", "name": "KBase Narrative", "next": { From cb8823c1079eb0dd6444299ca22a4610defcd907 Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Tue, 16 Aug 2022 17:36:24 -0400 Subject: [PATCH 03/18] add split requirements files --- narrbase-image/base-pip-requirements.txt | 35 +++++++++++++++++++++ narrbase-image/jupyter-pip-requirements.txt | 3 ++ narrbase-image/kbase-pip-requirements.txt | 14 +++++++++ 3 files changed, 52 insertions(+) create mode 100644 narrbase-image/base-pip-requirements.txt create mode 100644 narrbase-image/jupyter-pip-requirements.txt create mode 100644 narrbase-image/kbase-pip-requirements.txt diff --git a/narrbase-image/base-pip-requirements.txt b/narrbase-image/base-pip-requirements.txt new file mode 100644 index 0000000000..f901b5ca38 --- /dev/null +++ b/narrbase-image/base-pip-requirements.txt @@ -0,0 +1,35 @@ +appdirs==1.4.4 +beautifulsoup4==4.11.1 +certifi==2022.5.18.1 +chardet==4.0.0 +cryptography==36.0.2 +decorator==5.1.1 +html5lib==1.1 +idna==3.3 +jinja2==3.0.3 +jsonschema==3.2.0 +jupyter-console==6.4.3 +lxml==4.9.0 # for etetoolkit / ete3 +markdown==3.3.7 +markupsafe==2.1.1 +ndg-httpsclient==0.5.1 +pexpect==4.8.0 +pickleshare==0.7.5 +pillow==8.4.0 +pyasn1==0.4.8 +pycrypto==2.6.1 +pycurl==7.45.1 +pygments==2.12.0 +pymongo==4.1.1 +pyopenssl==22.0.0 +python-daemon==2.3.0 +python-dateutil==2.8.2 +pyyaml==6.0 +pyzmq==23.1.0 +requests==2.27.1 +rsa==4.8 +semantic_version==2.10.0 +setuptools==62.3.2 +six==1.16.0 +terminado==0.15.0 +tornado==6.1 diff --git a/narrbase-image/jupyter-pip-requirements.txt b/narrbase-image/jupyter-pip-requirements.txt new file mode 100644 index 0000000000..73d4c40c27 --- /dev/null +++ b/narrbase-image/jupyter-pip-requirements.txt @@ -0,0 +1,3 @@ +ipython==8.4.0 +notebook==6.4.11 +ipywidgets==7.6.3 diff --git a/narrbase-image/kbase-pip-requirements.txt b/narrbase-image/kbase-pip-requirements.txt new file mode 100644 index 0000000000..6461c8a1f7 --- /dev/null +++ b/narrbase-image/kbase-pip-requirements.txt @@ -0,0 +1,14 @@ +biopython==1.79 +bokeh==2.3.3 +chart_studio==1.1.0 # part of plotly +clustergrammer_widget==1.13.3 +ete3==3.1.2 +networkx==2.8.3 +numpy==1.22.4 +plotly==5.7.0 +qgrid==1.3.1 +seaborn==0.11.2 +sympy==1.10.1 +scipy==1.8.1 +scikit-learn==1.1.2 +wordcloud==1.8.1 From 01811b9764b1486ef45e72f15de53e2b08732b20 Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Wed, 17 Aug 2022 10:36:32 -0400 Subject: [PATCH 04/18] update docker install script to work with new base image --- deployment/services/kbase-ui/narrative_version | 2 +- narrbase-image/Dockerfile | 7 +++++++ scripts/build_narrative_container.sh | 1 + src/config.json.templ | 4 ++-- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/deployment/services/kbase-ui/narrative_version b/deployment/services/kbase-ui/narrative_version index df5f0a9873..56502e2817 100644 --- a/deployment/services/kbase-ui/narrative_version +++ b/deployment/services/kbase-ui/narrative_version @@ -1 +1 @@ -{"version":"5.0.3","git_hash":"944b8dc1e"} \ No newline at end of file +{"version":"5.0.3","git_hash":"cb8823c10"} \ No newline at end of file diff --git a/narrbase-image/Dockerfile b/narrbase-image/Dockerfile index de27248927..13d09bc527 100644 --- a/narrbase-image/Dockerfile +++ b/narrbase-image/Dockerfile @@ -10,6 +10,7 @@ ENV TAR /bin/tar # Install Base libraries, Node, R and Jupyter Notebook and ipywidgets from distinct channels ADD ./conda-requirements /root/conda ADD ./ /root/image_files +RUN mkdir -p /kb/deployment/bin # A gamut of basic requirements in Debian RUN apt-get update && \ @@ -20,6 +21,7 @@ RUN apt-get update && \ curl \ libcurl4-openssl-dev \ libssl-dev \ + git \ # for ete3 / etetoolkit python3-pyqt5 \ # for R and CRAN installations @@ -45,6 +47,11 @@ RUN curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ # R requirements +# Install Dockerize +RUN curl -LJO https://github.com/kbase/dockerize/raw/master/dockerize-linux-amd64-v0.6.1.tar.gz && \ + tar xvzf dockerize-linux-amd64-v0.6.1.tar.gz && \ + mv dockerize /kb/deployment/bin && \ + rm dockerize-linux-amd64-v0.6.1.tar.gz # RUN mkdir -p /kb/installers && \ # # run conda installs diff --git a/scripts/build_narrative_container.sh b/scripts/build_narrative_container.sh index d5d5512ad7..c5660cb4ec 100755 --- a/scripts/build_narrative_container.sh +++ b/scripts/build_narrative_container.sh @@ -88,6 +88,7 @@ docker build -t $NAR_NAME:$NARRATIVE_VER \ --build-arg NARRATIVE_VERSION=$NARRATIVE_VERSION_NUM \ --build-arg BRANCH=$BRANCH \ --build-arg SKIP_MINIFY=$SKIP_MINIFY \ + --progress plain \ . docker tag $NAR_NAME:$NARRATIVE_VER $NAR_NAME:$COMMIT diff --git a/src/config.json.templ b/src/config.json.templ index 8953434911..54d29a543a 100644 --- a/src/config.json.templ +++ b/src/config.json.templ @@ -168,8 +168,8 @@ "google_analytics_id": "UA-74532036-1" }, "dev_mode": {{ if ne .Env.CONFIG_ENV "prod" }}true{{- else }}false{{- end }}, - "git_commit_hash": "944b8dc1e", - "git_commit_time": "Mon Aug 1 12:41:31 2022 -0400", + "git_commit_hash": "cb8823c10", + "git_commit_time": "Tue Aug 16 17:36:24 2022 -0400", "loading_gif": "/narrative/static/kbase/images/ajax-loader.gif", "name": "KBase Narrative", "next": { From b81d154be206187784d1e29fd7051b96898a20f7 Mon Sep 17 00:00:00 2001 From: Miriam Land Date: Fri, 2 Sep 2022 11:58:33 -0400 Subject: [PATCH 05/18] Update the list of data object icon colors Update the list of data object icon colors - PTV-1820 --- .../static/kbase/config/icons.json | 110 ++++++++++++------ 1 file changed, 76 insertions(+), 34 deletions(-) diff --git a/kbase-extension/static/kbase/config/icons.json b/kbase-extension/static/kbase/config/icons.json index f5f62f11d9..fe4d0ee19a 100644 --- a/kbase-extension/static/kbase/config/icons.json +++ b/kbase-extension/static/kbase/config/icons.json @@ -66,40 +66,82 @@ "#316A4E" ], "color_mapping": { - "AssemblyInput": "#F44336", - "Assembly": "#920D58", - "ChromatographyMatrix": "#E91E63", - "Collection": "#E91E63", - "ContigSet": "#3F51B5", - "DomainAlignment": "#000000", - "EstimateKResult": "#000000", - "ExpressionMatrix": "#2196F3", - "ExpressionSample": "#2196F3", - "ExpressionSeries": "#2196F3", - "FBA": "#673AB7", - "FBAModel": "#673AB7", - "FeatureClusters": "#AEEA00", - "FeatureSet": "#AEEA00", - "FunctionalMatrix": "#000000", - "Genome": "#3F51B5", - "GenomeAnnotation": "#920D58", - "GenomeComparison": "#3F51B5", - "GenomeSet": "#3F51B5", - "Heatmap": "#795548", - "Media": "#795548", - "Metagenome": "#795548", - "AnnotatedMetagenomeAssembly": "#1D7EEA", + "AmpliconMatrix": "#C1CD23", + "AnnotatedMetagenomeAssembly": "#006630", + "Assembly": "#66B1DB", + "AssemblyFile": "#66B1DB", + "AssemblyInput": "##66B1DB", + "AssemblyReport": "#795548", + "AssemblySet": "#66B1DB", + "Associations": "#FFDB33", + "AttributeMapping": "#C1CD23", + "BinnedContigs": "#66B1DB", + "Biom": "#006630", + "Bowtie2Indexes": "#B8D4EC", + "ChemicalAbundanceMatrix": "#AAE0E4", + "ClusterSet": "#66489D", + "Collection": "#D2232A", + "CompoundSet": "#AAE0E4", + "ContigSet": "#66B1DB", + "DifferentialExpressionMatrix": "#FFDB33", + "DifferentialExpressionMatrixSet": "#FFDB33", + "DomainAnnotation": "#66489D", + "DomainLibrary": "#66489D", + "DomainModelSet": "#66489D", + "EscherMap": "#AAE0E4", + "EstimateKResult": "#FFDB33", + "ExpressionMatrix": "#FFDB33", + "ExpressionSample": "#FFDB33", + "ExpressionSeries": "#FFDB33", + "ExpressionSet": "#FFDB33", + "FBA": "#AAE0E4", + "FBAModel": "#AAE0E4", + "FBAModelAttribureMapping": "#AAE0E4", + "FBAModelSet": "#AAE0E4", + "FBAPathwayAnalysis": "#AAE0E4", + "FeatureClusters": "#D2232A", + "FeatureSet": "#D2232A", + "FeatureSetSet": "#D2232A", + "FigureProperties": "#AAE0E4", + "FloatTable": "#F58423", + "FunctionalMatrix": "#C1CD23", + "FunctionalProfile": "#C1CD23", + "Genome": "#D2232A", + "GenomeComparison": "#66489D", + "GenomeSet": "#D2232A", + "GFFAnnotation": "#D2232A", + "Heatmap": "#AAE0E4", + "Media": "#AAE0E4", + "MetaboliteMatrix": "#AAE0E4", + "Metagenome": "#006630", + "ModelComparison": "#AAE0E4", + "MSA": "#B8D4EC", "Network": "#795548", - "PairedEndLibrary": "#795548", - "Pangenome": "#795548", - "PhenotypeSet": "#795548", - "PhenotypeSimulationSet": "#795548", - "ProteomeComparison": "#795548", - "ReferenceAssembly": "#795548", - "SingleEndLibrary": "#795548", - "Taxon": "#920D58", - "TaxonomicMatrix": "#795548", - "Tree": "#795548", - "SampleSet": "#316A4E" + "NewModelTemplate": "#AAE0E4", + "PairedEndLibrary": "#EDA7AA", + "Pangenome": "#66489D", + "PCAMatrix": "#C1CD23", + "PhenotypeSet": "#AAE0E4", + "PhenotypeSimulationSet": "#AAE0E4", + "ProteomeComparison": "#66489D", + "RNASeqAlignment": "#B8D4EC", + "RNASeqAlignmentSet": "#B8D4EC", + "RNASeqExpression": "#FFDB33", + "RNASeqSampleSet": "#FFDB33", + "ReactionMatrix": "#AAE0E4", + "ReadsAlignmentSet": "#B8D4EC", + "ReadsSet": "#EDA7AA", + "ReferenceAssembly": "#D2232A", + "ReferenceAnnotation": "#D2232A", + "Report": "#795548", + "SampleSet": "#C1CD23", + "SequqnceSet": "#B8D4EC", + "SingleEndLibrary": "#EDA7AA", + "StringDataTable": "#F58423", + "Taxon": "#795548", + "TaxonomicMatrix": "#66489D", + "TraitMatrix": "#66489D", + "Tree": "#66489D", + "Variations": "#B8D4EC" } } From d351d76f8ff2044133a5d2c2c0b63ed9bf8e397a Mon Sep 17 00:00:00 2001 From: ialarmedalien Date: Thu, 8 Sep 2022 07:41:09 -0700 Subject: [PATCH 06/18] Fix bug where lack of a paramDisplay value was causing widget to stall --- .../bulkImportCell/tabs/xsvGenerator.js | 2 +- .../bulkImportCell/tabs/xsvGenerator-spec.js | 62 ++++++++++++++----- 2 files changed, 46 insertions(+), 18 deletions(-) diff --git a/nbextensions/bulkImportCell/tabs/xsvGenerator.js b/nbextensions/bulkImportCell/tabs/xsvGenerator.js index 528fbaf665..17ad71a040 100644 --- a/nbextensions/bulkImportCell/tabs/xsvGenerator.js +++ b/nbextensions/bulkImportCell/tabs/xsvGenerator.js @@ -387,7 +387,7 @@ define([ } } } - } else if (paramDisplay[fileType]) { + } else if (paramDisplay && paramDisplay[fileType]) { // special display value from a dynamic dropdown try { const displayParam = diff --git a/test/unit/spec/nbextensions/bulkImportCell/tabs/xsvGenerator-spec.js b/test/unit/spec/nbextensions/bulkImportCell/tabs/xsvGenerator-spec.js index d745516693..1d9e254d52 100644 --- a/test/unit/spec/nbextensions/bulkImportCell/tabs/xsvGenerator-spec.js +++ b/test/unit/spec/nbextensions/bulkImportCell/tabs/xsvGenerator-spec.js @@ -277,6 +277,8 @@ define([ }, }); + const OUTPUT_FOLDER = 'your_name_here/new folder'; + function createXsvGen() { return new XSVGenerator({ model: defaultModel, typesToFiles, fileTypeMapping }); } @@ -334,6 +336,7 @@ define([ ...modelData, }, }); + const xsvGen = new XSVGenerator({ model, typesToFiles, fileTypeMapping }); const container = document.createElement('div'); container.innerHTML = xsvGen.renderLayout(); @@ -439,6 +442,35 @@ define([ }); }); + it('generates params with a single input, no paramDisplay data', function () { + const modelWithoutParamDisplay = Props.make({ + data: { + state, + params, + app: { + specs: miniSpec, + }, + }, + }); + this.xsvGen = new XSVGenerator({ + model: modelWithoutParamDisplay, + typesToFiles, + fileTypeMapping, + }); + const output = this.xsvGen.generateRequest({ + output_file_type, + output_directory, + types: ['sra_reads'], + }); + expect(output).toEqual({ + output_file_type, + output_directory, + types: { + sra_reads: expectedOutput.sra_reads, + }, + }); + }); + it('generates params with several inputs', function () { const output = this.xsvGen.generateRequest({ output_directory, @@ -589,7 +621,7 @@ define([ const result = { output_file_type: 'CSV', files_created: { - assembly: 'your_name_here/new folder/assembly.csv', + assembly: `${OUTPUT_FOLDER}/assembly.csv`, }, }; this.xsvGen.displayResult(result); @@ -602,20 +634,18 @@ define([ ).toEqual(Object.keys(result.files_created).length); expect( this.container.querySelector(`.${cssBaseClass}__file_list_item`).textContent - ).toEqual('your_name_here/new folder/assembly.csv'); + ).toEqual(`${OUTPUT_FOLDER}/assembly.csv`); }); it('displays a success message, multiple types, single output file', function () { const result = { output_file_type: 'EXCEL', files_created: { - assembly: 'your_name_here/new folder/import_specification.xlsx', - fastq_reads_interleaved: - 'your_name_here/new folder/import_specification.xlsx', - fastq_reads_noninterleaved: - 'your_name_here/new folder/import_specification.xlsx', - genbank_genome: 'your_name_here/new folder/import_specification.xlsx', - sra_reads: 'your_name_here/new folder/import_specification.xlsx', + assembly: `${OUTPUT_FOLDER}/import_specification.xlsx`, + fastq_reads_interleaved: `${OUTPUT_FOLDER}/import_specification.xlsx`, + fastq_reads_noninterleaved: `${OUTPUT_FOLDER}/import_specification.xlsx`, + genbank_genome: `${OUTPUT_FOLDER}/import_specification.xlsx`, + sra_reads: `${OUTPUT_FOLDER}/import_specification.xlsx`, }, }; this.xsvGen.displayResult(result); @@ -631,19 +661,17 @@ define([ fileList.map((liElement) => { return liElement.textContent; }) - ).toEqual(['your_name_here/new folder/import_specification.xlsx']); + ).toEqual([`${OUTPUT_FOLDER}/import_specification.xlsx`]); }); it('displays a success message, multiple files', function () { const result = { output_file_type: 'CSV', files_created: { - assembly: 'your_name_here/new folder/assembly.csv', - fastq_reads_interleaved: - 'your_name_here/new folder/fastq_reads_interleaved.csv', - fastq_reads_noninterleaved: - 'your_name_here/new folder/fastq_reads_noninterleaved.csv', - genbank_genome: 'your_name_here/new folder/genbank_genome.csv', - sra_reads: 'your_name_here/new folder/sra_reads.csv', + assembly: `${OUTPUT_FOLDER}/assembly.csv`, + fastq_reads_interleaved: `${OUTPUT_FOLDER}/fastq_reads_interleaved.csv`, + fastq_reads_noninterleaved: `${OUTPUT_FOLDER}/fastq_reads_noninterleaved.csv`, + genbank_genome: `${OUTPUT_FOLDER}/genbank_genome.csv`, + sra_reads: `${OUTPUT_FOLDER}/sra_reads.csv`, }, }; this.xsvGen.displayResult(result); From a7d381d4ccaff31815d185ff3bea860b0edfd79e Mon Sep 17 00:00:00 2001 From: ialarmedalien Date: Thu, 8 Sep 2022 07:44:21 -0700 Subject: [PATCH 07/18] Add release notes --- RELEASE_NOTES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 580e726c55..ea2c3d7e94 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,6 +4,9 @@ The Narrative Interface allows users to craft KBase Narratives using a combinati This is built on the Jupyter Notebook v6.0.2 (more notes will follow). +### Unreleased +- DATAUP-778 - fixed bug where xsvGenerator would not run if the paramDisplay value was not present + ### Version 5.1.1 - PTV-1798 - fixed issue where invalid component ID was causing data list not to load properly - DATAUP-762 - fixed bug where previously run cells were showing errors in the View Configure tab From b120268ec588efb66bde721db50fc18ec693e561 Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Mon, 12 Sep 2022 10:54:01 -0400 Subject: [PATCH 08/18] fix problem with text input starting up with default values, and not changing values properly. --- .../js/widgets/appWidgets2/input/textInput.js | 45 +++++++------------ .../spec/appWidgets/input/textInputSpec.js | 12 +++++ 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/kbase-extension/static/kbase/js/widgets/appWidgets2/input/textInput.js b/kbase-extension/static/kbase/js/widgets/appWidgets2/input/textInput.js index 7ec13b50f2..f93bec0b20 100644 --- a/kbase-extension/static/kbase/js/widgets/appWidgets2/input/textInput.js +++ b/kbase-extension/static/kbase/js/widgets/appWidgets2/input/textInput.js @@ -4,34 +4,31 @@ define([ 'widgets/appWidgets2/validation', 'common/events', 'common/ui', - 'common/props', 'common/runtime', '../inputUtils', 'widgets/appWidgets2/validators/constants', 'bootstrap', -], (Promise, html, Validation, Events, UI, Props, Runtime, inputUtils, Constants) => { +], (Promise, html, Validation, Events, UI, Runtime, inputUtils, Constants) => { 'use strict'; const t = html.tag, div = t('div'), - input = t('input'), - model = Props.make({ - data: { - value: null, - }, - onUpdate: function () { - //syncModelToControl(); - //autoValidate(); - }, - }); + input = t('input'); function factory(config) { const spec = config.parameterSpec, runtime = Runtime.make(), busConnection = runtime.bus().connect(), - channel = busConnection.channel(config.channelName); + channel = busConnection.channel(config.channelName), + model = { + value: null, + }; let parent, container, ui; + // INIT + + setModelValue(config.initialValue); + // CONTROL function getControlValue() { @@ -48,19 +45,17 @@ define([ if (value === undefined) { return; } - if (model.getItem('value') === value) { - return; - } - model.setItem('value', value); + model.value = value; } function resetModelValue() { setModelValue(spec.data.defaultValue); } - // sync the dom to the model. + // sync the dom to the model and validate function syncModelToControl() { - setControlValue(model.getItem('value', null)); + setControlValue(model.value); + autoValidate(); } // VALIDATION @@ -78,7 +73,7 @@ define([ } function autoValidate() { - return validate(model.getItem('value')).then((result) => { + return validate(model.value).then((result) => { channel.emit('validation', result); }); } @@ -118,7 +113,7 @@ define([ cancelTouched(); importControlValue() .then((value) => { - model.setItem('value', value); + setModelValue(value); channel.emit('changed', { newValue: value, }); @@ -199,9 +194,7 @@ define([ const events = Events.make(); container.innerHTML = render(events); events.attachEvents(container); - // model.setItem('value', config.initialValue); syncModelToControl(); - autoValidate(); channel.on('reset-to-defaults', () => { resetModelValue(); @@ -209,12 +202,10 @@ define([ channel.on('update', (message) => { setModelValue(message.value); syncModelToControl(); - autoValidate(); }); channel.on('focus', () => { doFocus(); }); - // channel.emit('sync'); }); } @@ -227,10 +218,6 @@ define([ }); } - // INIT - - setModelValue(config.initialValue); - return { start, stop, diff --git a/test/unit/spec/appWidgets/input/textInputSpec.js b/test/unit/spec/appWidgets/input/textInputSpec.js index 4ef19437ce..2741ae5cf2 100644 --- a/test/unit/spec/appWidgets/input/textInputSpec.js +++ b/test/unit/spec/appWidgets/input/textInputSpec.js @@ -21,6 +21,7 @@ define(['common/runtime', 'widgets/appWidgets2/input/textInput', 'testUtil'], ( }, }, }, + initialValue: _defaultValue, channelName: _bus.channelName, }; } @@ -73,6 +74,17 @@ define(['common/runtime', 'widgets/appWidgets2/input/textInput', 'testUtil'], ( expect(container.childElementCount).toBe(0); }); + it('Should start with a predefined value', async () => { + const expectedVal = 'some expected value'; + const config = TestUtil.JSONcopy(testConfig); + config.initialValue = expectedVal; + const widget = TextInput.make(config); + await widget.start({ node: container }); + expect(container.querySelector('input[data-element="input"]').value).toEqual( + expectedVal + ); + }); + it('Should update value via bus', async () => { // start with one value, change it, then reset. // check along the way. From fd9d0c941c181d967dee465588e78d69ba0ca344 Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Mon, 12 Sep 2022 11:00:14 -0400 Subject: [PATCH 09/18] update release notes --- RELEASE_NOTES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 580e726c55..1da3fc7f80 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,6 +4,9 @@ The Narrative Interface allows users to craft KBase Narratives using a combinati This is built on the Jupyter Notebook v6.0.2 (more notes will follow). +### Unreleased +- PTV-1823 - fixed problem where text input fields for apps were displaying incorrect data on reload + ### Version 5.1.1 - PTV-1798 - fixed issue where invalid component ID was causing data list not to load properly - DATAUP-762 - fixed bug where previously run cells were showing errors in the View Configure tab From ae2ee145f3b487c6d1c78bcc444107c97199765b Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Tue, 13 Sep 2022 16:02:24 -0400 Subject: [PATCH 10/18] remove unused install files from narrbase-image folder --- .../services/kbase-ui/narrative_version | 2 +- narrbase-image/Dockerfile | 16 +++++++- narrbase-image/conda-requirements/base | 33 ---------------- .../conda-requirements/base.anaconda-platform | 2 - .../conda-requirements/base.conda-forge | 9 ----- .../conda-requirements/base.javascript | 0 narrbase-image/conda-requirements/base.wakari | 1 - .../biokbase-requirements.txt | 14 ------- .../conda-requirements/r.conda-forge | 6 --- narrbase-image/conda-requirements/r.r | 18 --------- narrbase-image/install-r-packages.R | 39 +++++++++++++++++++ narrbase-image/r-packages-postconda.R | 13 ------- scripts/start_docker_narrative.tmpl | 1 - src/config.json.templ | 4 +- 14 files changed, 57 insertions(+), 101 deletions(-) delete mode 100644 narrbase-image/conda-requirements/base delete mode 100644 narrbase-image/conda-requirements/base.anaconda-platform delete mode 100644 narrbase-image/conda-requirements/base.conda-forge delete mode 100644 narrbase-image/conda-requirements/base.javascript delete mode 100644 narrbase-image/conda-requirements/base.wakari delete mode 100644 narrbase-image/conda-requirements/biokbase-requirements.txt delete mode 100644 narrbase-image/conda-requirements/r.conda-forge delete mode 100644 narrbase-image/conda-requirements/r.r create mode 100644 narrbase-image/install-r-packages.R delete mode 100644 narrbase-image/r-packages-postconda.R diff --git a/deployment/services/kbase-ui/narrative_version b/deployment/services/kbase-ui/narrative_version index 56502e2817..4f14d4a21d 100644 --- a/deployment/services/kbase-ui/narrative_version +++ b/deployment/services/kbase-ui/narrative_version @@ -1 +1 @@ -{"version":"5.0.3","git_hash":"cb8823c10"} \ No newline at end of file +{"version":"5.1.1","git_hash":"5b6070452"} \ No newline at end of file diff --git a/narrbase-image/Dockerfile b/narrbase-image/Dockerfile index 13d09bc527..28b6cca6d9 100644 --- a/narrbase-image/Dockerfile +++ b/narrbase-image/Dockerfile @@ -17,7 +17,7 @@ RUN apt-get update && \ apt-get install -y \ gfortran \ gnupg \ - # for pycurl + # for pycurl, r-curl curl \ libcurl4-openssl-dev \ libssl-dev \ @@ -25,6 +25,19 @@ RUN apt-get update && \ # for ete3 / etetoolkit python3-pyqt5 \ # for R and CRAN installations + libxml2 \ + libxml2-dev \ + libfontconfig1-dev \ + libharfbuzz-dev \ + libfribidi-dev \ + libfreetype6-dev \ + libpng-dev \ + libtiff5-dev \ + libjpeg-dev \ + glpk-utils \ + libglpk-dev \ + glpk-doc \ + cmake \ r-base r-base-dev # Python dependencies @@ -46,6 +59,7 @@ RUN curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ apt-get install -y nodejs # R requirements +RUN R --vanilla < /root/image_files/install-r-packages.R # Install Dockerize RUN curl -LJO https://github.com/kbase/dockerize/raw/master/dockerize-linux-amd64-v0.6.1.tar.gz && \ diff --git a/narrbase-image/conda-requirements/base b/narrbase-image/conda-requirements/base deleted file mode 100644 index 71261b2734..0000000000 --- a/narrbase-image/conda-requirements/base +++ /dev/null @@ -1,33 +0,0 @@ -appdirs -biopython -certifi -chardet -configobj -gitpython -jinja2 -jsonschema -markdown -ncurses -networkx -pexpect -pip -plotly -pyasn1 -pycrypto>=2.6 -pycurl -pygments -pymongo -pytest==6.2.3 -pytest-cov==2.11.1 -python-daemon -python-dateutil -pyyaml>=3.10 -pyzmq>=2.2 -readline -seaborn -semantic_version -simplejson -thrift>=0.9.2 -tornado>=4.0 -virtualenv -xlutils diff --git a/narrbase-image/conda-requirements/base.anaconda-platform b/narrbase-image/conda-requirements/base.anaconda-platform deleted file mode 100644 index 705888354b..0000000000 --- a/narrbase-image/conda-requirements/base.anaconda-platform +++ /dev/null @@ -1,2 +0,0 @@ -elasticsearch>=5.0.0,<6.0.0 -nodejs>6.0,<8.0 diff --git a/narrbase-image/conda-requirements/base.conda-forge b/narrbase-image/conda-requirements/base.conda-forge deleted file mode 100644 index 29e1a32c82..0000000000 --- a/narrbase-image/conda-requirements/base.conda-forge +++ /dev/null @@ -1,9 +0,0 @@ -rsa>=3.1.2 -poster -python-oauth2 -flup -httplib2 -requests-oauthlib -pika -matplotlib -dateutils \ No newline at end of file diff --git a/narrbase-image/conda-requirements/base.javascript b/narrbase-image/conda-requirements/base.javascript deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/narrbase-image/conda-requirements/base.wakari b/narrbase-image/conda-requirements/base.wakari deleted file mode 100644 index 35063c1455..0000000000 --- a/narrbase-image/conda-requirements/base.wakari +++ /dev/null @@ -1 +0,0 @@ -grunt-cli diff --git a/narrbase-image/conda-requirements/biokbase-requirements.txt b/narrbase-image/conda-requirements/biokbase-requirements.txt deleted file mode 100644 index 6f1bfd8735..0000000000 --- a/narrbase-image/conda-requirements/biokbase-requirements.txt +++ /dev/null @@ -1,14 +0,0 @@ -bokeh -decorator -jsonschema -markupsafe -pickleshare -plotly -qgrid -setuptools>=0.8 -simplegeneric -sympy -terminado -numpy -scipy -scikit-learn \ No newline at end of file diff --git a/narrbase-image/conda-requirements/r.conda-forge b/narrbase-image/conda-requirements/r.conda-forge deleted file mode 100644 index 95df697f07..0000000000 --- a/narrbase-image/conda-requirements/r.conda-forge +++ /dev/null @@ -1,6 +0,0 @@ -r-wordcloud -r-timeseries -r-amap -r-pheatmap -r-googlevis -r-tiff diff --git a/narrbase-image/conda-requirements/r.r b/narrbase-image/conda-requirements/r.r deleted file mode 100644 index 2abbd89a6e..0000000000 --- a/narrbase-image/conda-requirements/r.r +++ /dev/null @@ -1,18 +0,0 @@ -r-pkgconfig -r-knitr -r-plyr -r-stringr -r-rgl -r-data.table -r-ggplot2 -r-lme4 -r-reshape -r-rcolorbrewer -r-gplots -r-png -r-lattice -r-tm -r-igraph -r-rjsonio -r-curl -r-devtools diff --git a/narrbase-image/install-r-packages.R b/narrbase-image/install-r-packages.R new file mode 100644 index 0000000000..6f1c27bad7 --- /dev/null +++ b/narrbase-image/install-r-packages.R @@ -0,0 +1,39 @@ +options(repos = c(CRAN = "http://cran.r-project.org/")) + +install.packages("devtools") +install.packages("fACD", repos="http://R-Forge.R-project.org") # ACD model +install.packages("Rglpk", type="source") +install.packages("Quandl", type="source") +install.packages("pkgconfig") +install.packages("knitr") +install.packages("plyr") + +install.packages("pkgconfig") +install.packages("knitr") +install.packages("plyr") +install.packages("stringr") +install.packages("rgl") +install.packages("data.table") +install.packages("ggplot2") +install.packages("lme4") +install.packages("reshape") +install.packages("RColorBrewer") +install.packages("gplots") +install.packages("png") +install.packages("lattice") +install.packages("tm") +install.packages("igraph") +install.packages("RJSONIO") +install.packages("curl") +install.packages("devtools") +install.packages("wordcloud") +install.packages("timeSeries", repos="http://R-Forge.R-project.org") +install.packages("amap") +install.packages("pheatmap") +install.packages("googleVis") +install.packages("tiff") + +require(devtools) +devtools::install_github("ramnathv/rCharts") +#source("http://bioconductor.org/biocLite.R") +#biocLite() diff --git a/narrbase-image/r-packages-postconda.R b/narrbase-image/r-packages-postconda.R deleted file mode 100644 index 99a1232eba..0000000000 --- a/narrbase-image/r-packages-postconda.R +++ /dev/null @@ -1,13 +0,0 @@ -options(repos = c(CRAN = "http://cran.r-project.org/")) - -install.packages("devtools") - -install.packages("Rglpk", type="source") # powerful solver for mixed integer linear programming -install.packages("goalprog", type="source") # goal programming -install.packages("fACD", repos="http://R-Forge.R-project.org") # ACD model - -install.packages("Quandl", type="source") # access Quandl -require(devtools) -devtools::install_github("ramnathv/rCharts") -#source("http://bioconductor.org/biocLite.R") -#biocLite() diff --git a/scripts/start_docker_narrative.tmpl b/scripts/start_docker_narrative.tmpl index 258c9d591a..630969cd31 100755 --- a/scripts/start_docker_narrative.tmpl +++ b/scripts/start_docker_narrative.tmpl @@ -16,5 +16,4 @@ fi cp $NARRATIVE_DIR/src/config.json $JUPYTER_CONFIG_DIR/static/kbase/config/ -source activate base jupyter notebook --NotebookApp.base_url=/narrative --NotebookApp.open_browser=False --NotebookApp.allow_origin=* --ip=0.0.0.0 "$@" diff --git a/src/config.json.templ b/src/config.json.templ index 8d1d8bddd8..b05eb0c14f 100644 --- a/src/config.json.templ +++ b/src/config.json.templ @@ -168,8 +168,8 @@ "google_analytics_id": "UA-74532036-1" }, "dev_mode": {{ if ne .Env.CONFIG_ENV "prod" }}true{{- else }}false{{- end }}, - "git_commit_hash": "cb8823c10", - "git_commit_time": "Tue Aug 16 17:36:24 2022 -0400", + "git_commit_hash": "5b6070452", + "git_commit_time": "Wed Aug 17 15:02:42 2022 -0400", "loading_gif": "/narrative/static/kbase/images/ajax-loader.gif", "name": "KBase Narrative", "next": { From 27fda32ecbd633e95ca9348fa08ebd830b68c8ff Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Tue, 13 Sep 2022 16:03:25 -0400 Subject: [PATCH 11/18] remove commented code from narrbase dockerfile --- narrbase-image/Dockerfile | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/narrbase-image/Dockerfile b/narrbase-image/Dockerfile index 28b6cca6d9..baff056a30 100644 --- a/narrbase-image/Dockerfile +++ b/narrbase-image/Dockerfile @@ -1,4 +1,3 @@ -# FROM kbase/kb_python:python3 FROM python:3.10-slim-bullseye ENV NOTEBOOK_VERSION 6.4.11 @@ -67,33 +66,6 @@ RUN curl -LJO https://github.com/kbase/dockerize/raw/master/dockerize-linux-amd6 mv dockerize /kb/deployment/bin && \ rm dockerize-linux-amd64-v0.6.1.tar.gz -# RUN mkdir -p /kb/installers && \ -# # run conda installs -# x conda update -n base -c defaults conda && \ -# x conda install conda && \ -# x conda install -c conda-forge --file /root/conda/base && \ -# x conda install -c etetoolkit ete3 && \ -# x conda install -c anaconda-platform --file /root/conda/base.anaconda-platform && \ -# x conda install -c javascript --file /root/conda/base.javascript && \ -# x conda install --file /root/conda/biokbase-requirements.txt && \ -# conda install -c r r-base && \ -# conda install -c conda-forge --file /root/conda/r.conda-forge && \ -# conda install -c r --file /root/conda/r.r && \ -# # Install apt-get prereqs for node and R -# x apt-get update && \ -# x apt-get install -y gfortran gnupg curl libcurl-dev libssl-dev && \ -# x # Install nodejs at a useful version -# x curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ -# x apt-get install -y nodejs - -# # Install misc R packages not available on Conda -# ADD ./r-packages-postconda.R /root/r-packages.R -# RUN R --vanilla < /root/r-packages.R && \ -# x # Install IPython, Jupyter Notebook, and ipywidgets at controlled versions -# x conda install -c conda-forge ipython=${IPYTHON_VERSION} notebook=${NOTEBOOK_VERSION} ipywidgets==${IPYWIDGETS_VERSION} && \ -# x conda update six && \ -# x jupyter nbextension enable --py widgetsnbextension - # The BUILD_DATE value seem to bust the docker cache when the timestamp changes, move to # the end LABEL org.label-schema.build-date=$BUILD_DATE \ From 1bbdc26b4cac3ab263ebcffe94f6c703cce5952c Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Thu, 15 Sep 2022 11:54:29 -0400 Subject: [PATCH 12/18] remove refs to narrbase image --- .dockerignore | 1 - Dockerfile | 12 +-- Makefile | 3 - .../services/kbase-ui/narrative_version | 2 +- narrbase-image/Dockerfile | 76 ------------------- narrbase-image/base-pip-requirements.txt | 35 --------- narrbase-image/install-r-packages.R | 39 ---------- narrbase-image/jupyter-pip-requirements.txt | 3 - narrbase-image/kbase-pip-requirements.txt | 14 ---- package-lock.json | 12 +-- src/config.json.templ | 4 +- 11 files changed, 10 insertions(+), 191 deletions(-) delete mode 100644 narrbase-image/Dockerfile delete mode 100644 narrbase-image/base-pip-requirements.txt delete mode 100644 narrbase-image/install-r-packages.R delete mode 100644 narrbase-image/jupyter-pip-requirements.txt delete mode 100644 narrbase-image/kbase-pip-requirements.txt diff --git a/.dockerignore b/.dockerignore index 55156915d1..1ee6956a18 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,7 +4,6 @@ Dockerfile .vscode js-coverage/ python-coverage/ -narrbase-image/ node_modules/ **/__pycache__ karma-result.json diff --git a/Dockerfile b/Dockerfile index 6128e286f1..d3dd0b39c4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ # Made available under the KBase Open Source License # -FROM kbase/narrbase:7.0 +FROM ghcr.io/kbase/narrative-base-image:7.0.0 # These ARGs values are passed in via the docker build command ARG BUILD_DATE @@ -22,16 +22,6 @@ ARG SKIP_MINIFY EXPOSE 8888 -# # install NodeJS 16.x (latest LTS until ~October 2022, https://nodejs.org/en/about/releases/) -# # N.b. this version of node is not available in the conda `base` environment as kbase/narrbase:6.2 -# # installs ancient versions of node (6.x) and npm (3.x). -# RUN \ -# curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && \ -# apt-get install -y nodejs && \ -# source activate base && \ -# conda update -n base -c defaults conda && \ -# python -m pip install --upgrade pip setuptools wheel - # Copy in the narrative repo ADD ./ /kb/dev_container/narrative ADD ./kbase-logdb.conf /tmp/kbase-logdb.conf diff --git a/Makefile b/Makefile index a1c9b42f09..fda22cb9fd 100755 --- a/Makefile +++ b/Makefile @@ -70,9 +70,6 @@ build-docs: -mkdir docs cp -R src/biokbase-doc/_build/html/* docs/ -docker-base: - docker build -t kbase/narrbase:3.0 base/ - docker-narrative: docker build -t kbase/narrative:1.0.3 . diff --git a/deployment/services/kbase-ui/narrative_version b/deployment/services/kbase-ui/narrative_version index 4f14d4a21d..1d6be4307e 100644 --- a/deployment/services/kbase-ui/narrative_version +++ b/deployment/services/kbase-ui/narrative_version @@ -1 +1 @@ -{"version":"5.1.1","git_hash":"5b6070452"} \ No newline at end of file +{"version":"5.1.1","git_hash":"27fda32ec"} \ No newline at end of file diff --git a/narrbase-image/Dockerfile b/narrbase-image/Dockerfile deleted file mode 100644 index baff056a30..0000000000 --- a/narrbase-image/Dockerfile +++ /dev/null @@ -1,76 +0,0 @@ -FROM python:3.10-slim-bullseye - -ENV NOTEBOOK_VERSION 6.4.11 -ENV IPYTHON_VERSION 8.4.0 -ENV IPYWIDGETS_VERSION 7.6.3 -ENV NODEJS_VERSION 16 -ENV TAR /bin/tar - -# Install Base libraries, Node, R and Jupyter Notebook and ipywidgets from distinct channels -ADD ./conda-requirements /root/conda -ADD ./ /root/image_files -RUN mkdir -p /kb/deployment/bin - -# A gamut of basic requirements in Debian -RUN apt-get update && \ - apt-get install -y \ - gfortran \ - gnupg \ - # for pycurl, r-curl - curl \ - libcurl4-openssl-dev \ - libssl-dev \ - git \ - # for ete3 / etetoolkit - python3-pyqt5 \ - # for R and CRAN installations - libxml2 \ - libxml2-dev \ - libfontconfig1-dev \ - libharfbuzz-dev \ - libfribidi-dev \ - libfreetype6-dev \ - libpng-dev \ - libtiff5-dev \ - libjpeg-dev \ - glpk-utils \ - libglpk-dev \ - glpk-doc \ - cmake \ - r-base r-base-dev - -# Python dependencies -# Core Python necessities -RUN pip install -r /root/image_files/base-pip-requirements.txt - -# KBase scientific computing packages -RUN pip install -r /root/image_files/kbase-pip-requirements.txt - -# Install Jupyter, Notebook, Ipywidgets -RUN pip install -r /root/image_files/jupyter-pip-requirements.txt - -# Enable the widgets extension -RUN jupyter nbextension enable --py widgetsnbextension -RUN jupyter nbextension enable --py --sys-prefix clustergrammer_widget - -# JavaScript needs -RUN curl -sL https://deb.nodesource.com/setup_${NODEJS_VERSION}.x | bash - && \ - apt-get install -y nodejs - -# R requirements -RUN R --vanilla < /root/image_files/install-r-packages.R - -# Install Dockerize -RUN curl -LJO https://github.com/kbase/dockerize/raw/master/dockerize-linux-amd64-v0.6.1.tar.gz && \ - tar xvzf dockerize-linux-amd64-v0.6.1.tar.gz && \ - mv dockerize /kb/deployment/bin && \ - rm dockerize-linux-amd64-v0.6.1.tar.gz - -# The BUILD_DATE value seem to bust the docker cache when the timestamp changes, move to -# the end -LABEL org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.vcs-url="https://github.com/kbase/narrative.git" \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.schema-version="1.0.0-rc1" \ - us.kbase.vcs-branch=$BRANCH \ - maintainer="William Riehl wjriehl@lbl.gov" diff --git a/narrbase-image/base-pip-requirements.txt b/narrbase-image/base-pip-requirements.txt deleted file mode 100644 index f901b5ca38..0000000000 --- a/narrbase-image/base-pip-requirements.txt +++ /dev/null @@ -1,35 +0,0 @@ -appdirs==1.4.4 -beautifulsoup4==4.11.1 -certifi==2022.5.18.1 -chardet==4.0.0 -cryptography==36.0.2 -decorator==5.1.1 -html5lib==1.1 -idna==3.3 -jinja2==3.0.3 -jsonschema==3.2.0 -jupyter-console==6.4.3 -lxml==4.9.0 # for etetoolkit / ete3 -markdown==3.3.7 -markupsafe==2.1.1 -ndg-httpsclient==0.5.1 -pexpect==4.8.0 -pickleshare==0.7.5 -pillow==8.4.0 -pyasn1==0.4.8 -pycrypto==2.6.1 -pycurl==7.45.1 -pygments==2.12.0 -pymongo==4.1.1 -pyopenssl==22.0.0 -python-daemon==2.3.0 -python-dateutil==2.8.2 -pyyaml==6.0 -pyzmq==23.1.0 -requests==2.27.1 -rsa==4.8 -semantic_version==2.10.0 -setuptools==62.3.2 -six==1.16.0 -terminado==0.15.0 -tornado==6.1 diff --git a/narrbase-image/install-r-packages.R b/narrbase-image/install-r-packages.R deleted file mode 100644 index 6f1c27bad7..0000000000 --- a/narrbase-image/install-r-packages.R +++ /dev/null @@ -1,39 +0,0 @@ -options(repos = c(CRAN = "http://cran.r-project.org/")) - -install.packages("devtools") -install.packages("fACD", repos="http://R-Forge.R-project.org") # ACD model -install.packages("Rglpk", type="source") -install.packages("Quandl", type="source") -install.packages("pkgconfig") -install.packages("knitr") -install.packages("plyr") - -install.packages("pkgconfig") -install.packages("knitr") -install.packages("plyr") -install.packages("stringr") -install.packages("rgl") -install.packages("data.table") -install.packages("ggplot2") -install.packages("lme4") -install.packages("reshape") -install.packages("RColorBrewer") -install.packages("gplots") -install.packages("png") -install.packages("lattice") -install.packages("tm") -install.packages("igraph") -install.packages("RJSONIO") -install.packages("curl") -install.packages("devtools") -install.packages("wordcloud") -install.packages("timeSeries", repos="http://R-Forge.R-project.org") -install.packages("amap") -install.packages("pheatmap") -install.packages("googleVis") -install.packages("tiff") - -require(devtools) -devtools::install_github("ramnathv/rCharts") -#source("http://bioconductor.org/biocLite.R") -#biocLite() diff --git a/narrbase-image/jupyter-pip-requirements.txt b/narrbase-image/jupyter-pip-requirements.txt deleted file mode 100644 index 73d4c40c27..0000000000 --- a/narrbase-image/jupyter-pip-requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -ipython==8.4.0 -notebook==6.4.11 -ipywidgets==7.6.3 diff --git a/narrbase-image/kbase-pip-requirements.txt b/narrbase-image/kbase-pip-requirements.txt deleted file mode 100644 index 6461c8a1f7..0000000000 --- a/narrbase-image/kbase-pip-requirements.txt +++ /dev/null @@ -1,14 +0,0 @@ -biopython==1.79 -bokeh==2.3.3 -chart_studio==1.1.0 # part of plotly -clustergrammer_widget==1.13.3 -ete3==3.1.2 -networkx==2.8.3 -numpy==1.22.4 -plotly==5.7.0 -qgrid==1.3.1 -seaborn==0.11.2 -sympy==1.10.1 -scipy==1.8.1 -scikit-learn==1.1.2 -wordcloud==1.8.1 diff --git a/package-lock.json b/package-lock.json index 0115b91348..ef4e7c1050 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2586,9 +2586,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "version": "1.0.30001399", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", + "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", "dev": true, "funding": [ { @@ -18568,9 +18568,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "version": "1.0.30001399", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", + "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", "dev": true }, "chalk": { diff --git a/src/config.json.templ b/src/config.json.templ index b05eb0c14f..d793e21597 100644 --- a/src/config.json.templ +++ b/src/config.json.templ @@ -168,8 +168,8 @@ "google_analytics_id": "UA-74532036-1" }, "dev_mode": {{ if ne .Env.CONFIG_ENV "prod" }}true{{- else }}false{{- end }}, - "git_commit_hash": "5b6070452", - "git_commit_time": "Wed Aug 17 15:02:42 2022 -0400", + "git_commit_hash": "27fda32ec", + "git_commit_time": "Tue Sep 13 16:03:25 2022 -0400", "loading_gif": "/narrative/static/kbase/images/ajax-loader.gif", "name": "KBase Narrative", "next": { From d2214d4a2bf5284c795586a912e32e049491fdf6 Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Thu, 15 Sep 2022 12:39:34 -0400 Subject: [PATCH 13/18] remove extra allow_origin=* param from test runner --- scripts/run_tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index ff30d2f1d7..264314d7b5 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -45,7 +45,7 @@ if [ "$run_docker" == 1 ]; then "/kb/dev_container/narrative/src/config.json.templ:/kb/dev_container/narrative/src/config.json" \ --template \ "/kb/dev_container/narrative/src/config.json.templ:/kb/dev_container/narrative/kbase-extension/static/kbase/config/config.json" \ - kbase-narrative --no-browser --NotebookApp.allow_origin="*" --ip=$IP_ADDRESS --port=$JUPYTER_PORT 2>&1 | tee $OUTPUT_FILE & + kbase-narrative --no-browser --ip=$IP_ADDRESS --port=$JUPYTER_PORT 2>&1 | tee $OUTPUT_FILE & bg_pid=$! else echo "starting local narrative" From a512b16e66722464c6edf8171776f94e24d78f42 Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Thu, 15 Sep 2022 17:01:54 -0400 Subject: [PATCH 14/18] remove extra ip for test runner --- scripts/run_tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index 264314d7b5..dd04c700b1 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -45,7 +45,7 @@ if [ "$run_docker" == 1 ]; then "/kb/dev_container/narrative/src/config.json.templ:/kb/dev_container/narrative/src/config.json" \ --template \ "/kb/dev_container/narrative/src/config.json.templ:/kb/dev_container/narrative/kbase-extension/static/kbase/config/config.json" \ - kbase-narrative --no-browser --ip=$IP_ADDRESS --port=$JUPYTER_PORT 2>&1 | tee $OUTPUT_FILE & + kbase-narrative --no-browser --port=$JUPYTER_PORT 2>&1 | tee $OUTPUT_FILE & bg_pid=$! else echo "starting local narrative" From f4a2881f0c5c371b8fa944470467378bb984433d Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Thu, 15 Sep 2022 18:03:09 -0400 Subject: [PATCH 15/18] fix test for running container --- scripts/run_tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/run_tests.sh b/scripts/run_tests.sh index dd04c700b1..3e12390191 100755 --- a/scripts/run_tests.sh +++ b/scripts/run_tests.sh @@ -66,7 +66,7 @@ while :; do kill $bg_pid exit 127 fi - if grep -q "The Jupyter Notebook is running at:" $OUTPUT_FILE; then + if grep -q "Jupyter Notebook.*is running at:" $OUTPUT_FILE; then # exit the loop once the string has been found echo "narrative started" break; From 78226abecca35cabfd74651894815018cb91fa66 Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Fri, 16 Sep 2022 15:34:33 -0400 Subject: [PATCH 16/18] remove comments, clustergrammer install now in base image --- package-lock.json | 12 ++++++------ scripts/install_narrative_docker.sh | 7 ------- src/requirements-no-deps.txt | 1 - 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index ef4e7c1050..22d1ce2e2c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2586,9 +2586,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001399", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", - "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", + "version": "1.0.30001400", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001400.tgz", + "integrity": "sha512-Mv659Hn65Z4LgZdJ7ge5JTVbE3rqbJaaXgW5LEI9/tOaXclfIZ8DW7D7FCWWWmWiiPS7AC48S8kf3DApSxQdgA==", "dev": true, "funding": [ { @@ -18568,9 +18568,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001399", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", - "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", + "version": "1.0.30001400", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001400.tgz", + "integrity": "sha512-Mv659Hn65Z4LgZdJ7ge5JTVbE3rqbJaaXgW5LEI9/tOaXclfIZ8DW7D7FCWWWmWiiPS7AC48S8kf3DApSxQdgA==", "dev": true }, "chalk": { diff --git a/scripts/install_narrative_docker.sh b/scripts/install_narrative_docker.sh index 3ae18f6406..feab5c3a4b 100755 --- a/scripts/install_narrative_docker.sh +++ b/scripts/install_narrative_docker.sh @@ -31,13 +31,6 @@ cat $NARRATIVE_ROOT_DIR/src/requirements.txt | sed -e '/^\s*#.*$/d' -e '/^\s*$/d # overwrite existing pyyaml installation (from distutils, so pip cannot uninstall it) pip install --ignore-installed -r $NARRATIVE_ROOT_DIR/src/requirements-ignore-installed.txt -# Install sklearn and clustergrammer -# ------------------------------ -# We install clustergrammer_widget and sklearn specially here so that it does not -# clobber dependencies in the base conda image -# console "installing sklearn & clustergrammer_widget'" -# pip install --no-dependencies semantic_version sklearn clustergrammer_widget - # Install Narrative code # ---------------------- console "Installing biokbase modules" diff --git a/src/requirements-no-deps.txt b/src/requirements-no-deps.txt index ab7b534e68..0c62c11b42 100644 --- a/src/requirements-no-deps.txt +++ b/src/requirements-no-deps.txt @@ -1,2 +1 @@ sklearn -clustergrammer_widget From 39668ca2a7d8770710cfce7cfc87bfcdd4f8fdec Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Fri, 16 Sep 2022 16:55:49 -0400 Subject: [PATCH 17/18] fix icon tests, typo --- kbase-extension/static/kbase/config/icons.json | 2 +- test/unit/spec/util/iconSpec.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kbase-extension/static/kbase/config/icons.json b/kbase-extension/static/kbase/config/icons.json index fe4d0ee19a..a791c14fa0 100644 --- a/kbase-extension/static/kbase/config/icons.json +++ b/kbase-extension/static/kbase/config/icons.json @@ -135,7 +135,7 @@ "ReferenceAnnotation": "#D2232A", "Report": "#795548", "SampleSet": "#C1CD23", - "SequqnceSet": "#B8D4EC", + "SequenceSet": "#B8D4EC", "SingleEndLibrary": "#EDA7AA", "StringDataTable": "#F58423", "Taxon": "#795548", diff --git a/test/unit/spec/util/iconSpec.js b/test/unit/spec/util/iconSpec.js index 3a95f782de..22f9ce6633 100644 --- a/test/unit/spec/util/iconSpec.js +++ b/test/unit/spec/util/iconSpec.js @@ -124,16 +124,16 @@ define(['util/icon', 'narrativeConfig', 'jquery'], (Icon, narrativeConfig, $) => iconType: 'data-stack', iconTypeClassList: ['fa'].concat(iconSpec.data['FeatureClusters']), // precalculated - style: 'color: rgb(194,254,20)', + style: 'color: rgb(230,55,62)', }, }, { desc: 'can use a custom kbase icon', - args: ['GenomeAnnotation', false], + args: ['Genome', false], result: { iconType: 'data', iconTypeClassList: ['fa', 'icon-genome'], - style: 'color: ' + iconSpec.color_mapping['GenomeAnnotation'], + style: 'color: ' + iconSpec.color_mapping['Genome'], }, }, ]; From b7df36325b73ef74e94b1cc007419fdefdf3749c Mon Sep 17 00:00:00 2001 From: Bill Riehl Date: Mon, 19 Sep 2022 13:21:14 -0400 Subject: [PATCH 18/18] update version to 5.1.2 --- RELEASE_NOTES.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- src/biokbase/narrative/__init__.py | 2 +- src/config.json | 2 +- src/config.json.templ | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index ef17ac312f..e02ec7b3f5 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -4,7 +4,7 @@ The Narrative Interface allows users to craft KBase Narratives using a combinati This is built on the Jupyter Notebook v6.0.2 (more notes will follow). -### Unreleased +### Version 5.1.2 - PTV-1823 - fixed problem where text input fields for apps were displaying incorrect data on reload - DATAUP-778 - fixed bug where xsvGenerator would not run if the paramDisplay value was not present - updated data icon coloring scheme diff --git a/package-lock.json b/package-lock.json index 8db8977761..f1a26ad255 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "kbase-narrative-core", - "version": "5.1.1", + "version": "5.1.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "kbase-narrative-core", - "version": "5.1.1", + "version": "5.1.2", "dependencies": { "bluebird": "3.7.2", "bootstrap": "3.3.7", diff --git a/package.json b/package.json index 886b63457b..fd9258c02c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "kbase-narrative-core", "description": "Core components for the KBase Narrative Interface", - "version": "5.1.1", + "version": "5.1.2", "private": true, "repository": "github.com/kbase/narrative", "devDependencies": { diff --git a/src/biokbase/narrative/__init__.py b/src/biokbase/narrative/__init__.py index 31c929dfa0..6a76eb851b 100644 --- a/src/biokbase/narrative/__init__.py +++ b/src/biokbase/narrative/__init__.py @@ -2,7 +2,7 @@ from semantic_version import Version -__version__ = Version("5.1.1") +__version__ = Version("5.1.2") def version(): diff --git a/src/config.json b/src/config.json index f33a9bca15..a6850bf206 100644 --- a/src/config.json +++ b/src/config.json @@ -391,5 +391,5 @@ "globus_upload_url": "https://app.globus.org/file-manager?destination_id=c3c0a65f-5827-4834-b6c9-388b0b19953a" }, "use_local_widgets": true, - "version": "5.1.1" + "version": "5.1.2" } diff --git a/src/config.json.templ b/src/config.json.templ index d793e21597..0f96eebf72 100644 --- a/src/config.json.templ +++ b/src/config.json.templ @@ -391,5 +391,5 @@ "globus_upload_url": "https://app.globus.org/file-manager?destination_id=c3c0a65f-5827-4834-b6c9-388b0b19953a" }, "use_local_widgets": true, - "version": "5.1.1" + "version": "5.1.2" }