We have now published the second beta release of Node-RED 3.1.
Node-RED 3.x requires at least Node 14.x, but that reaches end-of-life in a couple months. These days you should really be using Node 16 at least or even 18.
Having considered 3.1-beta.1 to be pretty complete, we've managed to squeeze in a few new useful features.
The Change Log has the full list of changes.
You should also checkout the 3.1.0-beta.1 release post if you haven't already seen what was in there.
And don't forget the Community Survey is still running. Don't miss your chance to share you views on the project and help shape what we do.
Note: if any issues are reported against the beta, we'll update this post to list them here. If you hit a problem, please do check back here before adding a comment.
Known Issues
- Search button in palette popover only works once - now fixed in git
- JSONata Expression tester - now fixed in git
New Group User Experience
Following feedback from the community on what it was like to work with the groups feature in the editor, they have been given a big overhaul in this release.
You can now click on any node, inside or outside of a group, and interact with it directly. No more clicking multiple times to get to a node.
Because of that change, you now move a group by clicking on its border and dragging it. But what if you've made the border invisible? It now highlights whenever you mouse over it.
We've also made it possible to drag multiple nodes into a group in one go - previously we only supported dragging one node in at a time.
Overall, this should make for a much for intuitive user experience.
Oh, and one more thing...
If you hold down alt
whilst dragging a selection of nodes inside a group, you can drag them out of the group. Cool huh?
Change notifications on tabs
The tab bar now shows a change icon for any tabs that contain changes. This makes it much easier to find where things have changed in your flows.
A bigger workspace
We have occasionally had requests to make the tab canvas bigger. There was even a discussion around making it infinitely large - allowing a flow to be as large as it needs to be. Whilst that's a nice idea, for this release we've simply increased the size of each tab from 5000x5000 to 8000x8000.
We'd still recommend using tools like Subflows and Link nodes to help organise your flows, but at least this quick change will give you plenty more space to use.
Linking to Node Help
Every node dialog now has a help button in its footer. This will open the Help sidebar and display the... you guessed it... help for the node.
Deprecating synchronous access to JSONata
This is one for node authors rather than end users.
JSONata 2.0 was recently published and promises a lot of significant performance improvements. However it brings a major breaking change - you can no longer evaluate expressions synchronously. So we can't upgrade to it quite yet, but we can lay some ground work for it.
Since we introduced JSONata into Node-RED, we've provided a set of standard APIs for nodes to use. Notably:
-
RED.util.evaluateNodeProperty
- used to evaluate all sorts of standard types of property -
RED.util.evaluateJSONataExpression
- used to evaluate a prepared JSONata expression
Both of these functions accept an optional callback parameter which allows them to evaluate asynchronously - however they both also allow synchronous behaviour.
With this release we have deprecated calling evaluateJSONataExpression
without a callback argument. By extension, evaluateNodeProperty
will require a callback if being used with JSONata.
Using these APIs without a callback will trigger a warning in the log, along with a full stacktrace that will hopefully help identify the node that caused it.
Our intention is to update to JSONata 2.0 in Node-RED 4.0 this summer - so we want to flush out any nodes that need updating.
Node Updates
There are a few bug fixes in the core nodes with this release.
One to highlight is a fix to the Join node, where it was leaking memory when in automatic mode.
Be sure to read through the Change Log to see what else is in there.
Installing the beta
If you want to try out the beta, you will need specify node-red@next when you use npm to update. Without the @next
you'll still get 3.0.x
So on a Pi you'd do:
sudo npm install -g --unsafe-perm node-red@next
Reporting problems
If you hit any problems, please report them either as a reply on this topic, or in the #core-dev slack channel. Please do not post new topics to the forum regarding the beta as that could confuse users who are not using the beta.
Outstanding work
This has been a reasonable productive beta, clearing off quite a few older issues from the backlog. We'll try to keep that up and address more issues in time for the final 3.1 release.
But we do want to make sure this beta gets a good run through by the community. The UX changes around groups, the change notifications on tabs as well as the features from beta.1 could all do with some community effort to make sure all of the edge cases have been flushed out.