Skip to content

Commit 9f1b0c0

Browse files
authored
Merge pull request #3121 from kbase/develop
Merge to main for 5.1.3 release
2 parents b82cec9 + eeb59d8 commit 9f1b0c0

36 files changed

Lines changed: 79575 additions & 1038 deletions

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
# Made available under the KBase Open Source License
1212
#
1313

14-
FROM ghcr.io/kbase/narrative-base-image:7.0.0
14+
FROM ghcr.io/kbase/narrative-base-image:7.1.0
1515

1616
# These ARGs values are passed in via the docker build command
1717
ARG BUILD_DATE

RELEASE_NOTES.md

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,51 @@
22

33
The Narrative Interface allows users to craft KBase Narratives using a combination of GUI-based commands, Python and R scripts, and graphical output elements.
44

5-
This is built on the Jupyter Notebook v6.0.2 (more notes will follow).
5+
This is built on the Jupyter Notebook v6.4.12 and IPython 8.5.0 (more notes will follow).
6+
7+
## Version 5.1.3
8+
9+
- PTV-1620 - fix problem with Expression Pairwise Correlation creating or displaying large heatmaps and freezing or crashing browser
10+
- PTV-1514 - sanitized HTML being used for app input tooltips
11+
12+
Dependency Changes
13+
- Python dependency updates
14+
- black >=20.8b1 -> 22.8.0
15+
- coverage 6.2 -> 6.4.4
16+
- cryptography 37.0.4 -> 38.0.1
17+
- flake8 3.8.4 -> 5.0.4
18+
- jinja2 3.0.3 -> 3.1.2
19+
- jupyter-console 6.4.3 -> 6.4.4
20+
- pygments 2.12.0 -> 2.13.0
21+
- requests 2.27.1 -> 2.28.1
22+
- Javascript dependency updates
23+
- @wdio/cli 7.19.6 -> 7.25.0
24+
- @wdio/local-runner 7.19.5 -> 7.25.0
25+
- @wdio/spec-reporter 7.19.5 -> 7.25.0
26+
- bootstrap 3.3.7 -> 3.4.1
27+
- bootstrap-slider 10.6.2 -> 11.0.2
28+
- chrome-launcher 0.14.2 -> 0.15.1
29+
- chromedriver ^101.0.0 -> ^105.0.0
30+
- cssnano 5.1.7 -> 5.1.13
31+
- jasmine-core 4.1.0 -> 4.3.0
32+
- jquery-ui 1.13.1 -> 1.13.2
33+
- karma-jasmine-html-reporter 1.7.0 -> 2.0.0
34+
- postcss-cli 9.1.0 -> 10.0.0
35+
- prettier 2.4.1 -> 2.7.1
36+
- puppeteer 13.7.0 -> 18.0.5
37+
- require-css 0.1.8 -> 0.1.10
38+
- sass 1.51.0 -> 1.55.0
39+
- selenium-standalone 8.1.1 -> 8.2.0
40+
- selenium-webdriver 4.1.2 -> 4.4.0
41+
- terser 5.13.1 -> 5.15.0
42+
- underscore 1.13.3 -> 1.13.6
43+
44+
Removed dependencies
45+
**note** a number of these were removed from the narrative, but left in the narrative base image. The `requirements.txt` in this repo is intended for those packages required for the narrative to run. Any other packages, including scientific programming ones, useful for either KBase Apps or other manual use in Narrative code cells are included in the narrative base image (see [narrative-base-image](https://github.com/kbase/narrative-base-image) for more details). Also note that most of these are duplicated and included in that image - these are still necessary for narrative functionality when installed locally (i.e. not in a Docker image), so they're left in.
46+
- plotly - not necessary for core narrative functionality, moved to narrative base image
47+
- semantic_version -- removed, wasn't used effectively, and removed the need for it
48+
- sklearn - still included, installed manually alongside clustergrammer in the install script, so the requirements.txt was removed
49+
- sympy - not necessary for core narrative functionality, moved to narrative base image
650

751
### Version 5.1.2
852
- PTV-1823 - fixed problem where text input fields for apps were displaying incorrect data on reload

docs/developer/local-docker.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,29 @@ make start build-image=f env=next local-narrative=t
131131
## Done
132132

133133
You should now be able to navigate to https://ci.kbase.us, log in, and pull a Narrative from the Dashboard.
134+
135+
## Testing with a local container
136+
137+
Testing instructions assume that all JS and Python dependencies are installed locally, and that Narrative is built on the host for local usage.
138+
139+
This, however, is not necessary with the container, although it is necessary for now to install JS dependencies because tooling relies up it. Of course,
140+
it would be possible to run any node-based tool via a simple node container, but that is for another day.
141+
142+
- Get the narrative running in one terminal window:
143+
- `make dev-image`
144+
- `ENV=ci make run-dev-image`
145+
- In another terminal window:
146+
- `NARRATIVE_SERVER_URL=http://localhost:8888 npm run test_local`
147+
148+
Please note the volume mounts in `scripts/local-def-run.sh`. Not all directories in kbase-extension/static local narrative repo are mounted, due to
149+
the fact that ext_components is installed.
150+
151+
To explain the `ext_` directories briefly.
152+
153+
- `ext_modules` is where all node modules should be placed; that is what it was originally designed for and a very few npm dependencies are placed there;
154+
it does not exist until the narrative is built.
155+
- `ext_components` is where `node_modules` is copied to, for those bower components which were migrated to npm modules; it also does not exist until the
156+
narrative is built.
157+
- `ext_packages` is where old dependencies which cannot be brought into the codebase as normal npm dependencies reside; it essentially never changes as
158+
it freezes certain dependencies that could not be brought in as bower dependencies when the narrative was converted from manually installed
159+
dependencies to bower.

kbase-extension/static/kbase/js/common/html.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
define(['uuid'], (Uuid) => {
1+
define(['uuid', 'util/string'], (Uuid, StringUtil) => {
22
'use strict';
33

44
const TAGS = {};
@@ -102,10 +102,7 @@ define(['uuid'], (Uuid) => {
102102
})();
103103
switch (typeof attribValue) {
104104
case 'string': {
105-
const escapedValue = attribValue.replace(
106-
new RegExp('\\' + quoteChar, 'g'),
107-
'\\' + quoteChar
108-
);
105+
const escapedValue = StringUtil.escape(attribValue);
109106
return `${attribName}=${quoteChar}${escapedValue}${quoteChar}`;
110107
}
111108
case 'boolean':

0 commit comments

Comments
 (0)