Skip to content

Commit

Permalink
v0.11.0
Browse files Browse the repository at this point in the history
  • Loading branch information
spoenemann committed Nov 30, 2021
1 parent 9401d56 commit 717b100
Show file tree
Hide file tree
Showing 9 changed files with 81 additions and 35 deletions.
39 changes: 20 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,34 +13,35 @@ This is the client part of _Sprotty_, a next-generation, open-source diagramming

Some selected features:

* fast, scalable SVG rendering that is compatible with many browsers and stylable with CSS,
* animations built into the core,
* support for a distributed runtime with a diagram client and a model server,
* a fast, reactive client architecture implemented in TypeScript,
* a Java-based server architecture,
* configuration via dependency injection,
* integration with Xtext, the Language Server Protocol and Theia that can be run as rich-client as well as in the browser.
* Fast, scalable SVG rendering that is compatible with all modern browsers and stylable with CSS
* Animations built into the core
* Support for a distributed runtime with client and server
* Fast, reactive client architecture implemented in TypeScript
* Java or Node.js based server architecture
* Configuration via dependency injection
* Integrations with Xtext, Langium, the Language Server Protocol, VS Code and Theia
* Can be run as rich-client as well as in the browser

## Repositories

The Sprotty project spans across four GitHub repositories
* [sprotty](https://github.com/eclipse/sprotty) (this repository) contains client code (TypeScript) and the examples.
* [sprotty-server](https://github.com/eclipse/sprotty-server) contains server code (Java/Xtend) including server-side diagram layout, the extension of the Language Server Protocol, and the integration with the Xtext framework.
* [sprotty-theia](https://github.com/eclipse/sprotty-theia) contains the glue code (TypeScript) to integrate Sprotty views in the Theia IDE.
* [sprotty-vscode](https://github.com/eclipse/sprotty-vscode) contains the glue code (TypeScript) to integrate Sprotty views in VS Code.
* [sprotty-layout](https://github.com/eclipse/sprotty-layout) contains the API for client-side diagram layout and an implementation based on the Eclipse Layout Kernel.
The Sprotty project spans across four GitHub repositories.

The project is built on [jenkins.eclipse.org/sprotty](https://jenkins.eclipse.org/sprotty/).
* [sprotty](https://github.com/eclipse/sprotty) (this repository) contains the client code (`sprotty`), shared code for Node.js servers (`sprotty-protocol`), ELK layout integration (`sprotty-elk`) and examples.
* [sprotty-server](https://github.com/eclipse/sprotty-server) contains server code for Java and includes server-side diagram layout, the extension of the Language Server Protocol, and the integration with the Xtext framework.
* [sprotty-theia](https://github.com/eclipse/sprotty-theia) contains the glue code to integrate Sprotty views in the Theia IDE.
* [sprotty-vscode](https://github.com/eclipse/sprotty-vscode) contains the glue code to integrate Sprotty views in VS Code.

The project is built on [ci.eclipse.org/sprotty](https://ci.eclipse.org/sprotty/).

## Docs

For further information please consult the [wiki](https://github.com/eclipse/sprotty/wiki) or this [blog post](https://www.typefox.io/sprotty-a-web-based-diagramming-framework).
For further information please consult the [Wiki](https://github.com/eclipse/sprotty/wiki).

The version history is documented in the [CHANGELOG](https://github.com/eclipse/sprotty/blob/master/CHANGELOG.md).
The version history is documented in the [CHANGELOG](https://github.com/eclipse/sprotty/blob/master/packages/sprotty/CHANGELOG.md) (see also links to other packages there).

## References

- [DSL in the Cloud example](http://github.com/TypeFox/theia-xtext-sprotty-example) an example using Xtext, Theia and Sprotty to create a DSL workbench in the cloud.
- [npm dependencies](http://npm-dependencies.com/) to discover dependencies of npm packages
- [yangster](http://github.com/theia-ide/yangster) a Theia extension for the YANG language.
- [Example: DSL in the Cloud](http://github.com/TypeFox/theia-xtext-sprotty-example) – an example using Xtext, Theia and Sprotty to create a DSL workbench in the cloud
- [Example: npm dependencies](https://github.com/TypeFox/npm-dependency-graph) – discover dependencies of npm packages
- [Yangster](https://github.com/theia-ide/yang-vscode) a VS Code extension for the YANG language

4 changes: 2 additions & 2 deletions examples/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
"core-js": "^3.19.1",
"http-server": "^14.0.0",
"reflect-metadata": "^0.1.13",
"sprotty": "0.10.0",
"sprotty-elk": "0.10.0"
"sprotty": "0.11.1",
"sprotty-elk": "0.11.0"
},
"devDependencies": {
"@types/webpack-env": "^1.16.3",
Expand Down
8 changes: 4 additions & 4 deletions packages/sprotty-elk/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "sprotty-elk",
"version": "0.10.0",
"version": "0.11.0",
"description": "Integration of ELK graph layout algorithms in Sprotty",
"license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)",
"keywords": [
Expand Down Expand Up @@ -39,7 +39,7 @@
},
"dependencies": {
"elkjs": "^0.7.1",
"sprotty-protocol": "0.10.0"
"sprotty-protocol": "~0.11.0"
},
"optionalDependencies": {
"inversify": "^5.0.1"
Expand Down Expand Up @@ -70,8 +70,8 @@
"lint": "eslint -c ../../configs/.eslintrc.js \"src/**/!(*.spec.ts*)\"",
"test": "jenkins-mocha --config ../../configs/.mocharc.json \"./src/**/*.spec.?(ts|tsx)\"",
"prepublishOnly": "yarn run test",
"publish:next": "yarn publish --new-version \"$(semver $npm_package_version -i minor)-next.$(git rev-parse --short HEAD)\" --tag next",
"publish:latest": "yarn publish --tag latest"
"publish:next": "yarn publish --new-version \"$(semver $npm_package_version -i minor)-next.$(git rev-parse --short HEAD)\" --tag next --no-git-tag-version",
"publish:latest": "yarn publish --tag latest --no-git-tag-version"
},
"files": [
"lib",
Expand Down
5 changes: 5 additions & 0 deletions packages/sprotty-protocol/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Sprotty Protocol

This package contains the platform-independent definitions of Sprotty. They are used both by the main client code ([sprotty](https://www.npmjs.com/package/sprotty)) and by servers running in Node.js.

For Node.js-based diagram servers, a class `DiagramServer` is provided. It handles the state and message handling for one client, so you need to create one instance of that class for every diagram instance that is shown in the frontend.
9 changes: 4 additions & 5 deletions packages/sprotty-protocol/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "sprotty-protocol",
"version": "0.10.0",
"version": "0.11.0",
"description": "TypeScript declarations for Sprotty to be used both in browser and Node.js context",
"license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)",
"keywords": [
Expand Down Expand Up @@ -28,8 +28,7 @@
"url": "https://github.com/eclipse/sprotty",
"directory": "packages/sprotty-protocol"
},
"dependencies": {
},
"dependencies": {},
"devDependencies": {
"@types/mocha": "^7.0.2",
"@typescript-eslint/eslint-plugin": "^5.3.0",
Expand All @@ -52,8 +51,8 @@
"lint": "eslint -c ../../configs/.eslintrc.js \"src/**/!(*.spec.ts*)\"",
"test": "mocha --config ../../configs/.mocharc.json \"./src/**/*.spec.?(ts|tsx)\"",
"prepublishOnly": "yarn run test",
"publish:next": "yarn publish --new-version \"$(semver $npm_package_version -i minor)-next.$(git rev-parse --short HEAD)\" --tag next",
"publish:latest": "yarn publish --tag latest"
"publish:next": "yarn publish --new-version \"$(semver $npm_package_version -i minor)-next.$(git rev-parse --short HEAD)\" --tag next --no-git-tag-version",
"publish:latest": "yarn publish --tag latest --no-git-tag-version"
},
"files": [
"lib",
Expand Down
9 changes: 8 additions & 1 deletion packages/sprotty/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
## Eclipse Sprotty Change Log

This change log covers only the client part of Sprotty. See also the change logs of [sprotty-server](https://github.com/eclipse/sprotty-server/blob/master/CHANGELOG.md), [sprotty-theia](https://github.com/eclipse/sprotty-theia/blob/master/CHANGELOG.md) and [sprotty-layout](https://github.com/eclipse/sprotty-layout/blob/master/CHANGELOG.md).
This change log covers only the client part of Sprotty. See also the change logs of [sprotty-server](https://github.com/eclipse/sprotty-server/blob/master/CHANGELOG.md), [sprotty-theia](https://github.com/eclipse/sprotty-theia/blob/master/CHANGELOG.md) and [sprotty-elk](https://github.com/eclipse/sprotty/blob/master//packages/sprotty-elk/CHANGELOG.md).

### v0.11.1 (Nov. 2020)

Fixed dependency to `sprotty-protocol`: version constraint is now `~0.11.0` (equivalent to `0.11.*`). The previous version pointed to the non-existing version `0.10.0`.

### v0.11.0 (Nov. 2020)

This version introduces a dependency to the new package `sprotty-protocol`. Many definitions have been copied to the new package and the original definitions are marked as deprecated, so you need to update your imports to stay compatible with future versions.

New features:
* Edges rendered as Bézier curves ([#245](https://github.com/eclipse/sprotty/pull/245)). Use the new `BezierCurveEdgeView` to display edges as smooth curves. This requires the routing points of the edges to be provided as a series of curve segments, each with two control points and one target point (except the last segment, which connects to the target node). The expected number of routing points is of the form `3*n-1`: 2, 5, 8, 11...

Breaking API changes:
* Actions are consistently declared as interfaces, not as classes, to emphasize that they must be serializable to enable transfer between client and server. Instead of a constructor, use the `create` function defined in the namespace with the same name as the corresponding action interface.
* `SModelIndex` was renamed to `ModelIndexImpl` and is usable only for the internal model that is used for rendering. If you want to apply an index to an external model (defined via `sprotty-protocol`), you should use the new `SModelIndex` from `sprotty-protocol` instead.
Expand Down
32 changes: 32 additions & 0 deletions packages/sprotty/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Sprotty

This is the client part of _Sprotty_, a next-generation, open-source diagramming framework built with web technologies.

<img src="https://raw.githubusercontent.com/wiki/eclipse/sprotty/images/screenshot0.png" width="23%" align="left">
<img src="https://raw.githubusercontent.com/wiki/eclipse/sprotty/images/screenshot1.png" width="23%" align="left">
<img src="https://raw.githubusercontent.com/wiki/eclipse/sprotty/images/screenshot2.png" width="23%" align="left">
<img src="https://raw.githubusercontent.com/wiki/eclipse/sprotty/images/screenshot3.png" width="23%">


Some selected features:

* Fast, scalable SVG rendering that is compatible with all modern browsers and stylable with CSS
* Animations built into the core
* Support for a distributed runtime with client and server
* Fast, reactive client architecture implemented in TypeScript
* Java or Node.js based server architecture
* Configuration via dependency injection
* Integrations with Xtext, Langium, the Language Server Protocol, VS Code and Theia
* Can be run as rich-client as well as in the browser

## Docs

For further information please consult the [Wiki](https://github.com/eclipse/sprotty/wiki).

The version history is documented in the [CHANGELOG](https://github.com/eclipse/sprotty/blob/master/packages/sprotty/CHANGELOG.md).

## References

- [Example: DSL in the Cloud](http://github.com/TypeFox/theia-xtext-sprotty-example) &ndash; an example using Xtext, Theia and Sprotty to create a DSL workbench in the cloud
- [Example: npm dependencies](https://github.com/TypeFox/npm-dependency-graph) &ndash; discover dependencies of npm packages
- [Yangster](https://github.com/theia-ide/yang-vscode) a VS Code extension for the YANG language
8 changes: 4 additions & 4 deletions packages/sprotty/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "sprotty",
"version": "0.10.0",
"version": "0.11.1",
"description": "A next-gen framework for graphical views",
"license": "(EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0)",
"keywords": [
Expand Down Expand Up @@ -57,7 +57,7 @@
"file-saver": "^2.0.2",
"inversify": "^5.0.1",
"snabbdom": "^3.0.3",
"sprotty-protocol": "0.10.0",
"sprotty-protocol": "~0.11.0",
"tinyqueue": "^2.0.3"
},
"devDependencies": {
Expand Down Expand Up @@ -92,8 +92,8 @@
"test:cli": "ts-mocha \"./src/**/*.spec.?(ts|tsx)\"",
"test": "jenkins-mocha --config ../../configs/.mocharc.json \"./src/**/*.spec.?(ts|tsx)\"",
"prepublishOnly": "yarn run test",
"publish:next": "yarn publish --new-version \"$(semver $npm_package_version -i minor)-next.$(git rev-parse --short HEAD)\" --tag next",
"publish:latest": "yarn publish --tag latest"
"publish:next": "yarn publish --new-version \"$(semver $npm_package_version -i minor)-next.$(git rev-parse --short HEAD)\" --tag next --no-git-tag-version",
"publish:latest": "yarn publish --tag latest --no-git-tag-version"
},
"files": [
"lib",
Expand Down
2 changes: 2 additions & 0 deletions packages/sprotty/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ export * from "./features/projection/views";

export * from "./features/routing/anchor";
export * from "./features/routing/abstract-edge-router";
export * from "./features/routing/bezier-anchors";
export * from "./features/routing/bezier-edge-router";
export * from "./features/routing/manhattan-anchors";
export * from "./features/routing/manhattan-edge-router";
export * from "./features/routing/model";
Expand Down

0 comments on commit 717b100

Please sign in to comment.