Commit Graph

73 Commits

Author SHA1 Message Date
Kirill Shumilov
034ca0030d test(xod-project): cover new functions isDeprecatedPatch and getDeprecationPatchReason with tests 2018-03-21 12:37:20 +03:00
Evgeny Kochetkov
0ef2e2f1a0 feat(xod-project, xod-client): allow to create abstract nodes 2018-03-16 15:41:38 +03:00
Evgeny Kochetkov
e6ab08e297 chore(infra): format code with prettier
Just `yarn lint  --fix`
2018-03-05 17:59:03 +03:00
Kirill Shumilov
4e510b7957 feat(xod-project): add basic features for variadics: new types, getters/setters, path utils, built-in patches, function that computes variadic Pins and validates variadic Patch 2018-02-20 15:38:17 +03:00
Kirill Shumilov
24a416118c feat(xod-project): add functions that returns lists of installed library names, of used libraries (somewhere in patches) and missed library names (based on previvous two functions), add PatchPathUtil function getOwnerName 2017-11-24 14:05:54 +03:00
Evgeny Kochetkov
65030ac698 refactor(xod-project, xod-fs, xod-arduino): single target platform, single implementation file
- `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
2017-11-15 13:16:21 +03:00
Kirill Shumilov
44577c03a4 feat(xod-arduino-deploy, xod-deploy, xod-client, xod-client-electron): add interactive debug session with watch nodes, optimized log and etc (+31 squashed commits)
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
2017-10-03 14:26:28 +03:00
Victor Nakoryakov
981902fff6 optimize(xod-arduino): toposort nodes in-place 2017-08-30 01:00:52 +03:00
Victor Nakoryakov
0ad266c1ed optimize(xod-project): inject @@type hints into entities to speed up type checks
Closes #716
2017-08-16 13:27:47 +03:00
Evgeny Kochetkov
ad0d3583cd feat(xod-project): add Comment type, add comments field for Patch and all nececssary functions 2017-08-01 18:13:16 +03:00
Evgeny Kochetkov
d9a0394133 refactor(xod-project, xod-js): get rid of getConstantPatchPath and isConstantPatchPath utils, use constants instead 2017-07-12 14:41:17 +03:00
Kirill Shumilov
c6b7d94f6d feat(xod-project): add upsertNodes and upsertLinks functions, that associates a list of nodes/links into Patch 2017-07-10 14:50:06 +03:00
Evgeny Kochetkov
8bbbd6f8da fix(xod-project, xod-arduino, xod-js): report an error when loops in nodes graph are detected instead of silently failing
Closes #645.
2017-07-06 13:09:20 +03:00
Victor Nakoryakov
44e6b48f0f fix(xod-project): fix isTerminalPatch as it used to give false positives
Now implementation is solid and it has no chance to confuse cast-* nodes
with termintal-* nodes
2017-06-09 16:27:24 +03:00
Evgeny Kochetkov
71bf614346 feat(xod-project): defaultValue for Pins. calculated from terminal’s bound value or a default for pin’s data type 2017-05-26 20:34:36 +03:00
Evgeny Kochetkov
cf87e3ef0e infra(xod-project): shorten tests for pin ordering 2017-05-26 20:34:36 +03:00
Evgeny Kochetkov
38702fdb68 feat(xod-project): isBindable prop for Pin 2017-05-26 20:34:36 +03:00
Evgeny Kochetkov
813cc0d2c0 refactor(xod-project): make isEffectPatch usable inside computePins, where a full pins list is unknown 2017-05-26 20:34:36 +03:00
Evgeny Kochetkov
9efc1223f2 tweak(xod-project): determine pins order by x AND y coordinates of terminal nodes 2017-05-26 20:34:36 +03:00
Evgeny Kochetkov
157a99d90e feat(xod-project): isEffectPatch and isFunctionalPatch utils 2017-05-26 20:34:36 +03:00
Evgeny Kochetkov
be70b6d500 feat(xod-project): canBindToOutputs util 2017-05-26 20:34:35 +03:00
Kirill Shumilov
9f8f0aed31 fix(xod-project): fix test fixture 2017-05-18 20:40:20 +03:00
Kirill Shumilov
cf35ccc97c tweak(xod-project): computedPins returns pins with label extracted from Node 2017-05-18 20:40:20 +03:00
Evgeny Kochetkov
e0e215a72b refactor(*): rename Node’s pin property to boundValues 2017-05-18 15:13:56 +03:00
Evgeny Kochetkov
7a6526e561 tweak(xod-project): remove setPin* functions
Because pins are now read-only.
2017-05-15 21:07:57 +03:00
Evgeny Kochetkov
d08fb6af13 refactor(*): rename ‘xod/built-in’ to ‘xod/patch-nodes’ 2017-05-15 16:59:01 +03:00
Evgeny Kochetkov
8959082245 refactor(xod-project): make patch pins computed from terminal nodes 2017-05-15 09:11:06 +03:00
Evgeny Kochetkov
a5ca5c3479 refactor(xod-project): remove dissocPin method
because we can’t manipulate pins directly anymore
2017-05-12 23:17:04 +03:00
Evgeny Kochetkov
db01dcd57d feat(xod-project): enforce identifiers and patch paths format 2017-04-28 15:58:04 +03:00
Evgeny Kochetkov
aaeb12afac refactor(xod-project): get rid of patch labels 2017-04-20 12:45:17 +03:00
Kirill Shumilov
611ae208e7 feat(xod-project): add method getNodeByIdUnsafe and extend NODE_NOT_FOUND error to with searched NodeId and PatchPath 2017-03-24 12:50:17 +03:00
Victor Nakoryakov
eded55c54e refactor(xod-project): get rid of validatePin 2017-03-09 19:22:51 +03:00
Victor Nakoryakov
7b59f1f05e refactor(xod-project): remove validatePatch 2017-03-09 19:22:51 +03:00
Kirill Shumilov
a9f8fefd61 fix(xod-project): fix a bug with converting terminal nodes with type *Bool into Boolean by adding new map 2017-02-17 18:16:22 +03:00
Kirill Shumilov
8ed341849b fix(xod-project): fix getLinkNodeIds (output first), add test and fix test for getTopology function 2017-02-17 18:13:04 +03:00
Victor Nakoryakov
1cd55b856c chore(xod-project): make linter happy 2017-02-17 14:47:47 +03:00
Victor Nakoryakov
01c5892586 refactor(xod-project): enforce type specs in patch module 2017-02-17 14:47:47 +03:00
Victor Nakoryakov
48c3e1572e refactor(xod-project): cover pin functions with type specs 2017-02-17 14:47:47 +03:00
Victor Nakoryakov
30baf5380a refactor(xod-project): introduce $Pin type 2017-02-17 14:47:47 +03:00
Victor Nakoryakov
e897b6c3ba refactor(xod-project): apply hm-def’s to patch.js 2017-02-17 14:47:47 +03:00
Victor Nakoryakov
3c22749a04 fix(xod-project): make node renumbering produce Strings, not Numbers
Because NodeId’s should be strings and Object indexes are strings too
2017-02-10 18:17:05 +03:00
Victor Nakoryakov
a31440a072 refactor(xod-project): enforce type checking, add Maybe type 2017-02-10 17:53:48 +03:00
Victor Nakoryakov
ffd76f9156 refactor(xod-project): enforce type checks with def-hm 2017-02-10 17:53:48 +03:00
Victor Nakoryakov
de4cbd6255 fix(xod-project): use proper Link type in tests 2017-02-10 17:52:22 +03:00
Kirill Shumilov
f63e9e5b87 feat(xod-project): add function for renumbering nodes and getting topology, also copied gmath from xod-core 2017-02-10 13:59:41 +03:00
Kirill Shumilov
a66b630c09 feat,test(xod-project): add two more functions (and tests) into Patch to get implementations by key (getImpl) and by array of keys (getImplByArray) 2017-02-10 13:59:41 +03:00
Kirill Shumilov
8b411163ce fix(xod-project): fix test in case of renaming hasImpl -> hasImpls 2017-02-10 13:59:41 +03:00
Kirill Shumilov
1adaa8a5db feat,test(xod-project): add functions to check terminals: isTerminalPin and isTerminalPatch 2017-02-02 11:40:43 +03:00
Kirill Shumilov
eef1d6ee82 feat,test(xod-project): first step in flatten graph issue 2017-02-02 11:40:43 +03:00
Kirill Shumilov
81ebe36a33 fix(xod-project): fix test for createPatch (links is object, not array) 2017-02-02 11:40:43 +03:00