- `xod-project`
- no notion of different impl types
- because there is only one kind of implementation left, no need to store them in `impls`, it can be extracted straight from attachments
- API changes:
- removed:
- `listImpls`
- `hasImpls`
- `getImplByArray`
- added:
- `hasImpl :: Patch -> Boolean`
- `setImpl :: Source -> Patch -> Patch`
- changed signatures:
- `getImpl` is now `Patch -> Maybe Source`
- `hasImpl` is now `Patch -> Boolean`
- `flatten` is now `Project -> PatchPath -> Either Error Project`
- `xod-fs`
- does not know about implementation files — they all are just attachments
+ minor changes in other backages
Squashed commits:
[4609d47] fix(xod-client): fix React warning about empty children property (in UnknownPinWidget)
[62345a3] refactor(xod-project): add accosPatch and assocPatchList unsafe versions for surviving
[fe779e9] test(xod-project): add test cases for project surviving
[b731d1d] refactor(xod-project): rename `getPinsForPatch` to `getPinsForNode`, cause really we're getting pins for passed Node
[5485746] tweak(xod-client, xod-client-electron): show proper message for transpiling patch with broken content
[e589088] feat(xod-client): mark patches with broken content in the Project Browser with special icon
[9e7cfa5] feat(xod-client, xod-project): add creating missed pins into patches and mark links, that connected with unexistent pins, as broken
[b9d13cd] feat(xod-client): make Inspector works properly when selecting broken nodes
[29063a0] feat(xod-client): add broken style for links, that connected with broken nodes
[0b8e5ef] feat(xod-client, xod-project): make first step in project surviving: nodes that uses type of unexistent patch could be rendered with pins, that have links, with a special look
Squashed commits:
[ca50efb] refactor(xod-client, xod-arduino-deploy, xod-client-electron): handle lost connection (unplug device), make some small fixes
[8c9fbce] tweak(xod-client-electron): add retries to find device after upload (3 times with 300ms delay)
[8c77fce] fix(xod-client-electron): fix adding an error message into debugger log
[c0668c1] refactor(xod-client, xod-client-electron): add throttling to send data readed from serial port and updating log by list of messages instead of appending each message
[9528c6e] refactor(xod-arduino, xod-client, xod-client-electron): make fixes in accordance with comments to PR
[117996b] refactor(xod-client): simplified selecting renderer by message type in the Log container
[512b74f] refactor(xod-arduino): revert XOD_TRACE functions to use only for debug runtime, watch-node uses DEBUG_SERIAL, updated fixtures and etc
[7b92c98] chore(xod-client): remove dispatching no longer existing action (setMode)
[cb38db1] refactor(xod-arduino): split transpiling into two functions: transformProject and transpile, add function to get nodeIdsMap from transformed project, use last one instead of pushing it through a long pipes of calls
[01c3f2e] tweak(xod-client): show xod message delimiter in the log
[360f216] chore(xod-client): change caption of button "Stop debug session" -> "Stop debug"
[531c280] style(xod-client): change colors of watch nodes, remove ellipsis from watch node values, change color of error and success message borders
[bb3c5df] fix(xod-client): fix panning mode to show nodeValues in debug session interactively
[7fac400] tweak(xod-client): sync offsets of patches between tabs (if user pans debug tab -> patch tab panned too, and vice versa)
[086d863] tweak(xod-client): stop debug session when debugger tab was closed
[eccc14a] tweak(xod-client): pass offsets between patchTab and debuggerTab, reopen original patch on debugger tab close
[83c3090] test(xod-client-electron): fix functional test and remove fixture (take it from workspace)
[f87fb2d] tweak(xod-client): tweak closing tab to prevent switching to another tab if closed another one
[c17cc0f] refactor(xod-client): remove editor modes from redux store, make modes depends on tab type
[92ce1df] refactor(xod-client): add tab types, add debug tab type and styles, handle opening and closing this tab on debug start/stop
[09af9af] refactor(xod-client): refactored tabs to contain an unique id and patchPath, instead of storing two entities in one property
[31991f7] refactor(xod-client): optimize rendering logs, add Debugger into storybook, fix one possible bug in the reducer
[7355928] refactor(xod-client): move log of Debugger into a separate container
[30d36c5] refactor(xod-client): optimize debugger selectors
[9615450] feat(xod-client): pass values of watch nodes into view
[34b40d0] refactor(xod-client): move rendering of node bodies and some parts into small components, add WidgetNodeBody component
[18f4e75] feat(xod-client): add new editor mode: debugging
[6c6d9bd] feat(xod-arduino, xod-client): store map of nodeIds to topologically sorted index of nodes in the redux state
[492caea] feat(xod-arduino, xod-project): remove debug nodes on transpilation without debug mode, update fixtures and tests
[63a8083] refactor(xod-arduino, xod-clients): update debug flags in runtime, allow to switch flags in the transpiler (using options object) and integrate it into clients
[01cfd83] feat(xod-arduino, workspace): implement watch node and change debug flags in the runtime and configuration template
The minority of nodes that deal with internal state now should call
`getState` to access their state. On other end all stateless nodes don’t
have to carry `state` argument in their `evaluate` signature.
Closes#565