Skip to content

Commit 800ae0a

Browse files
author
ba-tno
authored
Merge branch 'magjac:master' into master
2 parents bf6af7e + 837ba25 commit 800ae0a

File tree

16 files changed

+665
-222
lines changed

16 files changed

+665
-222
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,6 @@ yarn.lock
2525
# generated files
2626
src/shapes.js
2727
src/dotParser.js
28+
29+
coverage-cypress
30+
coverage-jest

CHANGELOG.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
## [Unreleased]
88

99
### Changed
10+
* Add a snackbar add a Snackbar showing when the application has been updated and if the underlying Graphviz version has been updated or not.
11+
* Make the version in the about dialog a link to the version in CHANGELOG.md.
1012
* Bundle @hpcc-js/wasm instead of loading from unpkg
1113
* Upgraded d3-graphviz to version 3.0.6, thereby upgrading @hpcc-js-/wasm to version 0.3.13, thereby upgrading Graphviz to version 2.44.0.
1214
* Added "Export as SVG" to main menu (thanks @pRizz).
1315

14-
## [0.6.4]
16+
## [0.6.4] - 2020-04-29
1517
### Fixed
1618
* Drawing edges or inserting nodes does not work in production bundle #139
1719
* Navigating back to the referring page after URL import requires clicking back twice in the browser #155
1820

19-
## [0.6.3]
21+
## [0.6.3] - 2020-04-09
2022
### Changed
2123
* Upgraded [d3-graphviz](https://gitlab.com/magjac/d3-graphviz) to version [3.0.5](https://github.com/magjac/d3-graphviz/blob/master/CHANGELOG.md#305) thereby replacing [Viz.js](https://github.com/mdaines/viz.js/) with [@hpcc-js/wasm](https://github.com/hpcc-systems/hpcc-js-wasm).
2224
* Upgraded [Graphviz](https://gitlab.com/graphviz/graphviz) to version [2.42.4](https://gitlab.com/graphviz/graphviz/-/releases/2.42.4) through [@hpcc-js/wasm](https://github.com/hpcc-systems/hpcc-js-wasm) version [0.3.11](https://github.com/hpcc-systems/hpcc-js-wasm/releases/tag/v0.3.11), including fixes for:
@@ -30,7 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3032
## 0.6.2
3133
Never released
3234

33-
## [0.6.1]
35+
## [0.6.1] - 2020-01-03
3436
### Fixed
3537
* Module not found: Can't resolve './DoYouWantToDeleteDialog'. #93
3638
* Stuck at "Starting the development server". #95
@@ -40,7 +42,7 @@ Never released
4042
* Ctrl- or Shift-click the canvas deselects already selected components. #107
4143
* Unselected components are not cleared in text editor. #108
4244

43-
## [0.6.0]
45+
## [0.6.0] - 2018-10-01
4446
### Added
4547
* Export as URL. Generates a link to the application with the DOT source code as an URL parameter.
4648
* Specification of the DOT source code through a URL parameter. #69
@@ -162,7 +164,7 @@ Never released
162164
* Mouse interactions
163165

164166
[Unreleased]: https://github.com/magjac/graphviz-visual-editor/compare/v0.6.4...HEAD
165-
[0.6.4]: https://github.com/magjac/graphviz-visual-editor/compare/v0.6.3...v0.6.3
167+
[0.6.4]: https://github.com/magjac/graphviz-visual-editor/compare/v0.6.3...v0.6.4
166168
[0.6.3]: https://github.com/magjac/graphviz-visual-editor/compare/v0.6.1...v0.6.3
167169
[0.6.1]: https://github.com/magjac/graphviz-visual-editor/compare/v0.6.0...v0.6.1
168170
[0.6.0]: https://github.com/magjac/graphviz-visual-editor/compare/v0.5.0...v0.6.0

Makefile

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
GENERATED_FILES = \
2+
src/graphvizVersion.js \
3+
src/graphviz-versions.json \
24
src/shapes.js \
5+
src/versions.json \
36
readme.html \
47
changelog.html \
58
src/dotParser.js \
@@ -12,13 +15,25 @@ src/shapes.js: bin/generate-nodes.js
1215
bin/generate-nodes.js > tmp.js
1316
mv tmp.js $@
1417

18+
src/graphvizVersion.js: bin/generate-graphviz-version.js
19+
bin/generate-graphviz-version.js > tmp.js
20+
mv tmp.js $@
21+
22+
src/versions.json: CHANGELOG.md bin/generate-versions.py
23+
bin/generate-versions.py CHANGELOG.md > tmp.js
24+
mv tmp.js $@
25+
26+
src/graphviz-versions.json: graphviz/CHANGELOG.md bin/generate-versions.py
27+
bin/generate-versions.py graphviz/CHANGELOG.md > tmp.js
28+
mv tmp.js $@
29+
1530
src/dotParser.js: src/dotGrammar.pegjs
1631
node_modules/.bin/pegjs $< tmp.js
1732
echo "/* eslint-disable */" | cat - tmp.js > tmp2.js
1833
mv tmp2.js $@
1934
rm tmp.js
2035

21-
graphviz:
36+
graphviz graphviz/CHANGELOG.md:
2237
git clone --depth 1 https://gitlab.com/graphviz/graphviz.git
2338

2439
dots parse-all-graphviz-dots: dotfiles.txt
@@ -27,7 +42,7 @@ dots parse-all-graphviz-dots: dotfiles.txt
2742
./bin/dotparser.js < $$dotfile > `dirname $$dotfile`/`basename $$dotfile .dot`.json; \
2843
done
2944

30-
dotfiles.txt:
45+
dotfiles.txt: graphviz
3146
find graphviz -name '*.dot' | egrep -v "(nullderefrebuildlist\.dot|^graphviz/rtest/.*)$$" > $@
3247

3348
readme: readme.html

bin/generate-graphviz-version.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#! /usr/bin/env node
2+
3+
var hpccWasm = require("@hpcc-js/wasm/dist");
4+
var fs_promises = require("fs").promises;
5+
6+
global.fetch = function (filename) {
7+
return fs_promises.open(filename, 'r').then((filehandle) => {
8+
return filehandle.readFile().then(data => {
9+
return {
10+
ok: true,
11+
arrayBuffer: () => data,
12+
};
13+
});
14+
});
15+
}
16+
17+
global.document = {
18+
"currentScript": {
19+
src: './node_modules/@hpcc-js/wasm/dist/index.js'
20+
}
21+
};
22+
23+
hpccWasm.graphvizVersion().then(graphvizVersion => {
24+
console.log(`const graphvizVersion = "${graphvizVersion}";`);
25+
console.log('export {graphvizVersion};');
26+
});

bin/generate-versions.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/usr/bin/env python3
2+
3+
"""generator of versions JSON file from a CHANGELOG.md file"""
4+
5+
import json
6+
import re
7+
import sys
8+
from typing import List
9+
10+
def main(args: List[str]) -> int: # pylint: disable=missing-function-docstring
11+
12+
with open(args[1]) as fp:
13+
versions = {}
14+
for line in fp:
15+
mo = re.match("## \[([0-9][^\]]*)] [-–] (.*)$", line)
16+
if mo:
17+
version = mo.group(1)
18+
release_date = mo.group(2)
19+
versions[version] = {"release_date": release_date}
20+
21+
print(json.dumps(versions, indent=4))
22+
23+
return 0
24+
25+
if __name__ == "__main__":
26+
sys.exit(main(sys.argv))

cypress/integration/rendering.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('Basic rendering from DOT source', function() {
5555
switch (engine) {
5656
case 'circo':
5757
cy.wrap(graph0).invoke('height').should('eq', 58.666656494140625);
58-
cy.wrap(graph0).invoke('width').should('eq', 264.21337890625);
58+
cy.wrap(graph0).invoke('width').should('eq', 264.2266845703125);
5959
break;
6060
case 'dot':
6161
cy.wrap(graph0).invoke('height').should('eq', 154.66665649414062);
@@ -71,7 +71,7 @@ describe('Basic rendering from DOT source', function() {
7171
break;
7272
case 'osage':
7373
cy.wrap(graph0).invoke('height').should('eq', 58.666656494140625);
74-
cy.wrap(graph0).invoke('width').should('eq', 173.693359375);
74+
cy.wrap(graph0).invoke('width').should('eq', 172.3599853515625);
7575
break;
7676
case 'patchwork':
7777
cy.wrap(graph0).invoke('height').should('eq',70.29330444335938);

cypress/support/commands.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1+
import packageJSON from '../../package.json';
2+
13
Cypress.Commands.add("startApplication", (options) => {
4+
localStorage.setItem('version', packageJSON.version);
25
cy.visit('http://localhost:3000/', options);
36
cy.waitForTransition();
47
});
58

69
Cypress.Commands.add("startCleanApplication", (options) => {
710
localStorage.setItem('dotSrc', 'digraph {}');
11+
localStorage.setItem('version', packageJSON.version);
812
cy.visit('http://localhost:3000/', options);
913
cy.canvasGraph().should('exist');
1014
});
1115

1216
Cypress.Commands.add("startApplicationWithDotSource", (dotSrc, options) => {
1317
localStorage.setItem('dotSrc', dotSrc);
18+
localStorage.setItem('version', packageJSON.version);
1419
cy.visit('http://localhost:3000/', options);
1520
cy.canvasGraph().should('exist');
1621
});

0 commit comments

Comments
 (0)