🎉 Node-RED 2.1.0-beta.1 released

:tada: The first beta release of Node-RED 2.1.0 is now available.

The Change Log has the full list of changes in this release, but here are the highlights.

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

  • Flow tab doesn't show as disabled - link - fixed in git
  • Long module names cause layout issues in Help sidebar - link - fixed in git
  • Tour Guide is unreadable with Solarized Light theme - link
  • Markdown rendering of node-help broken - fixed in git

New Welcome Tour Guide

The first time you open the editor with 2.1.0, you will be greeted with a new Welcome Tour. This will highlight a lot of the new features in this version.

The Tour will only be shown the first time you open any particular version of Node-RED - and you can opt-out of seeing them in the future in the User Settings dialog.

If you embed Node-RED in your own application and don't want the tour to be shown to your users, then it can also be disabled in the settings file.

The underlying framework for creating the Welcome Tour can be reused to create other interactive tours/tutorials/guides. We'll have move in this area in the future.

Hiding tabs

We often hear from users who have a lot of tabs. To make it a bit easier to manage, you can now hide tabs in the editor.

image

The Info sidebar list of tabs shows which tabs are hidden, and they can be shown with a single click.

There's also a new tab menu that provides more options around managing the tabs.

For this first release of the feature, the hidden state of a tab is stored in user preferences within the editor - it is not a property of the flow itself. This means you can't share a set of flows with another user and have some of the tabs pre-hidden. It is an open point of discussion as to whether we want to allow that behaviour.

Auto-complete in msg TypedInputs

The msg TypedInputs are used widely throughout Node-RED. To make life a bit easier, they now provide auto-complete when typing message property names.

For now, it offers completions from the list of well-known properties the core nodes use.

In the future, it will be possible for contrib nodes to register the properties they use so they can be offered as completions as well.

We're also thinking about how best to apply this to flow/global inputs - auto-completing based on the current contents of context.

Edit & Arrange menus

The main menu now has Edit and Arrange submenus.

The Edit menu has the actions you'd expect - Undo, Redo, Copy and Paste etc.

The Arrange menu adds tools to help arrange your nodes.

All of the menus now also show any keyboard shortcuts that have been set.

Flow/Group level environment variables

We have supported Environment Variables being set within Subflows for a while now. With this release, you can now also set them at the Flow or Group level.

New Link Call node

The new Link Call node can be used alongside the Link-In/Out nodes to create subroutine-like flows.

If you have a flow that starts with a Link-In node and ends with a Link-Out node that has been put into its new 'return' mode (giving the node a different icon), the Link Call node can be used to pass that flow a message and the result is passed back to the calling node.

Deep copy option on Change node

The Change node's "set" action has a new option to create a deep copy of the value when copying from msg, flow or global.

In the case of Objects and Arrays, this creates a proper clone of the value, rather than creating a reference to the same object.

We've also updated the label of the "set" action to hopefully help users get the 'from' and 'to' fields the right way around.

Delay node updates

When in rate limiting mode, the Delay node supports two new features:

  • if msg.toFront is set, a message is put to the front of the queue of messages waiting to be sent
  • there's a new option to send rate limited messages to an optional second output on the node. This is useful if you need to rate limit messages and do some further processing for the the messages that have been rate limitied, rather than just have them discarded.

Join node reset timeout

If the Join node has a timeout running and it receives a message with msg.restartTimeout set, it will restart the timeout.

File nodes renamed

The file and file in nodes have new palette labels to make it clearer which writes to files and which reads from files. Even after all this time, I would have to double check which was which.

Documentation Update

Whilst not really part of the beta, we've also published lots of updates to the API documentation on the website.

This includes the hooks and library store APIs in the runtime.

The docs now cover more of the APIs available to nodes and plugins to extend the UI.

There is also documentation on creating custom Theme plugins.


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 2.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

There are a couple more PRs that could still make the cut-off - including the long awaited mqtt-control node. We'll see how they progress over the next couple weeks before the final release.

But as it stands, the goal is to release 2.1.0 later this month.

29 Likes

As always, some very nice things in there. :grinning:

I like the welcome guide - is that something that custom node authors could use?

Not really had time to play yet but a very minor (possibly non-) issue:
image
If you have a long Node name, it throws the alignment out in the tree-list.

And one request for a future enhancement - Now that we have evn vars for tabs and groups (nice!), it would be even nicer if the vars were listed in the info bar:
image
Like settings are for nodes:
image

And I note that subflows don't include the env vars in the info bar either so it might be nice to have them there as well.


OK, I know I'm being pedantic now but I wonder whether it might be a good idea to add env vars to projects as well? There is already a project settings panel so it might be easy enough to do and could be very handy for some people.

2 Likes

Already on the back log. And please try to keep this to feedback on the beta rather than a wishlist of what isn't in the beta :wink:

3 Likes

Well, then you need to be a bit less good at the updates Nick so that I've something to report! :rofl:

3 Likes

Interesting, just upgraded to the beta, running in Windows.

Trying to enable / disable flows. The icon in the top will not reflect the disable status immediately after the deploy. However opening the dialog window again and hitting "Done" will change the status.

1 Like

Amazing work as usual :grin:

I'm drooling over the close tabs option already. Gonna spread the word!

In this thread @augjoh has pointed out that axios 0.21.1, required by node-red-admin, fails npm audit, and that there is a bugfix release 0.21.2 to fix it. Is it too late to include that version in 2.1.0?

1 Like

When will the docker images be built for these beta please?

Hi @MyRandomThoughts

they beta images have been published to nodered/node-red-dev - Docker Hub

Apologies, I was looking in the wrong place.
Small bug with the new Tour Guide when using themes, the main text is not readable when using the "solarized-light" theme.

image

There is a "chicken and egg" problem here. The themes need to be updated to properly style the tour guide. But users will typically update Node-RED before they update the theme.

I did try to make sure the tour looked okay against the default and dark themes without the updates to make them look their best. It didn't occur to me that the light themes would be a problem as well....

@MyRandomThoughts what version of the theme are you using?

I just tested with 2.0.6

1 Like

NodeJS: v14.18.0
node-red-docker@2.1.0-beta.1

I just ran npm update and restarted NR. It's working now. I guess the theme got an update that I missed.

1 Like

Feedback on new link facility (just tried it out on a test instance)

image

As I was constructing this flow and pressing deploy at various stages - I got a couple of timeout messages in debug when I pressed deploy (which was unexpected)

Also, I think that default label name is a bit too geeky looking.

I understand why its showing that but maybe its highlighting that link nodes should default to a more friendly name when they are placed into the workspace?

@cymplecy fixed in beta.2

2 Likes