Releases: sverweij/state-machine-cat
v3.0.2
v3.0.1
v3.0.0
- 🐣 adds a new 'label' attribute to the language and the AST ('json-representation'). See below (and #17 and #18) for details. This triggered a major version bump because of a (small) breaking change in the smcat syntax.
- ⬆️ webpack (relevant for the online interpreter) and some dev dependencies
- 🔧 don't publish sources not necessary at runtime (*.pegjs, *.hbs) to npm
New feature: label attribute for states
This version introduces a label
attribute for states see the section in the README for details.
Goal: enable different values for the name of a state vs the displayed name. This is useful in two scenarios:
display non-unique labels
names of states have to be unique, but display names don't need to be. In the sample below it's clearer to show 'on' and 'off' instead of bold.on, bold.off, underline.on and underline.off:
parallel {
bold{
bold.on [label="on"], bold.off [label="off"];
bold.on -> bold.off;
bold.off -> bold.on;
},
underline{
underline.on [label="on"], underline.off [label="off"];
underline.on -> underline.off;
underline.off -> underline.on;
};
};
use shorter state names
display names can be more verbose than is comfortable in use while typing a
on [label="Television set is on"],
off [label="Television set is off"];
off => on:
received whack
on the side;
on => off:
received full
fist on the top;
BREAKING CHANGE: [
not allowed in unquoted state names anymore
Impact: none if you don't use [
as part of the names of states. Adding some quotes to
your smcat scripts if you do.
Up till version 2.6.10 this was valid, but from version 3.0.0 it will be considered a syntax error:
somestate[: some activity;
To keep using the [
character as part of a state name, simply slap some quotes around them:
"somestate[": some activity;
This is to enable the smcat parser to properly distinguish between a state name and the
(optional, new) additional attributes section, that starts with a [
(see above)
v2.7.0-beta-0
v2.6.10
v2.6.9
v2.6.6
- 👩⚖️ change license to MIT
- 📖 the online interpreter now measures end to end render times
- 📖 add a travis ci badge to readme
- 🔧 ci: use node 10 instead of node 9 where this was possible and needed
- 🐛 ci gitlab: also copy samples to gitlab pages
- 🔧 ocd: move all config that doesn't need to be in root to a config folder
v2.6.5
- 🐛 fixes a bug (#15 - thanks @karl for reporting!) where GraphViz could not render some state machines. The fix involved a different way of rendering states. It was possible to keep the rendered output to look very close to what it was in 2.6.4 and before, but there are tiny differences. I've included an after and before picture as full disclosure.
- 🐛 removes redundant definitions from the json schema
- ⬆️ dependency-cruiser, webpack-cli
after
before
v2.6.4
v2.6.3
- 🐛 if you generate scxml, the id's state-machine-cat generates from state names are now valid (SC)XML names. See transforming state names to valid XML ids for details. Thanks @jdrew1303 for raising issue #11 on this.