0.8.0
Read the release announcement.
-
General availability of Process API for NoFlo components
-
Updated headers to reflect the copyright assignment from The Grid to Flowhub UG
-
Reimplemented
noflo.helpers.MapComponent
to use Process API internally. This helper is deprecated and components using it should be ported to Process API -
Reimplemented
noflo.helpers.WirePattern
to use Process API internally. To use the original WirePattern implementation, either pass alegacy: true
to WirePattern function or setNOFLO_WIREPATTERN_LEGACY
environment variable -
Removed WirePattern
receiveStreams
andsendStream
options -
Added deprecation warnings to several WirePattern options:
postpone
andresume
. These are still available in legacy mode but will be removed soongroup
collationfield
collationasync: false
optioncomponent.error
method with WirePattern. Use async and error callback insteadcomponent.fail
method with WirePattern. Use async and error callback insteadcomponent.sendDefaults
method with WirePattern. Start your components with a NoFlo network to get defaults sentnoflo.helpers.MultiError
. Use error callback instead
-
Added
setUp
andtearDown
methods for easier handling of custom states in components. These methods take an asynchronous callback and are recommended to be used instead ofstart
andshutdown
-
Added callbacks for component
start
andshutdown
methods -
Added a
clear
method for inports to clear their packet buffer. Used by componentshutdown
method -
Added addressable port support to Process API
- When sending packets to an addressable outport, the connection to send to will be selected based on the
index
attribute of the IP object - When reading from addressable ports, provide port name with index in format
[portname, index]
. For example:input.getData ['in', 2]
- When sending packets to an addressable outport, the connection to send to will be selected based on the
-
Added callback for
Network.stop
-
Outmost brackets are no longer automatically converted to
connect
anddisconnect
events. Instead,connect
anddisconnect
are injected as needed, but only for subscribers of the legacy events -
Added deprecation warnings for APIs that will be removed by NoFlo 1.0. These can be made fatal by setting the
NOFLO_FATAL_DEPRECATED
environment variable. These include:noflo.AsyncComponent
: should be ported to Process APInoflo.helpers.MapComponent
: should be ported to Process APInoflo.ArrayPort
: should be ported to noflo.In/OutPort withaddressable: true
noflo.Port
: should be ported to noflo.In/OutPort- Calling
Network.start
orNetwork.stop
without a callback noflo.InPort
process
option: should be ported to Process API or use thehandle
optionnoflo.InPort
receive
method: replaced by theget
methodnoflo.InPort
contains
method: replaced by thehas
methodnoflo.Graph
exports: use specific inport or outport instead- Additionally component.io builds warn about deprecation in favor of webpack with helpful automation available in grunt-noflo-browser
-
Added IP object
scope
support toWirePattern
to makeWirePattern
components more concurrency-friendly -
Removed
receiveStreams
option fromWirePattern
-
Graph JSON schema has been moved to https://github.com/flowbased/fbp, and updated with tests.
-
Added stream helpers for Process API input.
hasStream
checks if an input buffer contains a complete stream (matching brackets and data, or only data),getStream
returns a complete stream of packets. These requireforwardBrackets
to be disabled for the port. -
babel-core was removed as a dependency. Install separately for projects needing ES6 component support
-
underscore.js was removed as a dependency
-
input.getData()
in Process API has been changed to fetch only packets ofdata
type skipping and dropping brackets inbetween -
IP objects are strictly required to be of
noflo.IP
type -
Removed support for deprecated Node.js 0.x versions
-
NoFlo Graph and Journal were moved to a dedicated fbp-graph library for easier usage in other FBP projects. No changes to NoFlo interface
-
NoFlo networks now emit packet events only while the network is running
-
NoFlo networks can show their currently active processes with the
getActiveProcesses()
method