Package Exports
- fbp-diff
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fbp-diff) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
fbp-diff
Diff utility for FBP graphs, making it easier to determine changes compare to using a naive textual diff of the JSON files.
FBP graphs are used to specify a Flow-based programming (FBP) or dataflow program, consisting of processes and connections between them. The processes are nodes in the graph, and the connections are edges.
Related
fbp-diff is used by fbp-diffbot to provide diffs on Github pull requests.
Status
Minimally useful
fbp-diffgive a textual diff of node/connection/IIP changes, from a.jsonor.fbpfilefbp-git-diffcan lookup diffs of a graph stored ingitfbp-git-logcan show the diffs for graph across manygitrevisions
Installing
Note: You need to have Node.js installed
Install locally (recommended)
npm install fbp-diffAlternative, install globally using NPM
npm install -g fbp-diffCommand-line usage
Add the command-line tools to PATH (not needed if installed globally)
export PATH=./node_modules/.bin:$PATHDiff between two graphs
fbp-diff mygraph.json myothergraph.jsonDiff between two versions of a graph stored in git
fbp-git-diff master otherbranch ./graphs/MyGraph.jsonAPI Usage
fbp-diff also provides a JavaScript API.
var fbpDiff = require('fbp-diff');
var options = {
// fromFormat: 'object', // don't parse fromGraph, it is a JS object of a graph (default)
// toFormat: 'json', // parse toGraph .json format
format: 'fbp' // specify toFormat and fromFormat in one go
};
var fromGraph = "'hello' -> concat(Concatinator)\n'world' -> concat -> IN (Print)";
var toGraph = "'hello' -> IN (Print)";
var diff = fbpDiff.diff(fromGraph, toGraph, options);
console.log(diff);TODO
Also see ./doc/braindump.md
version 0.1 "minimally useful"
- Implement diffing of graph properties
- Implement basic grouping/heuristics/context to make the diff easier to understand
- Support diffing of process/edge metadata
- Support diffing of connection order changes
Later
- Add a visual diffing tool
- Add a color-based text formatter. Should support console+HTML/Markdown
- Add a --raw mode, which outputs the calculated diff as JSON