Given the scale of some of the changes to the internals of Node-RED in 0.20, we've decided to approach the 0.20 release slightly differently to previous releases.
Today we've published the first beta release of 0.20. (Okay, technically, the second beta, but the first we're telling y'all about).
If you aren't comfortable with backing up your existing Node-RED install, upgrading and rolling back when it all goes wrong, then this beta release is not for you. Please hold off for the final 0.20 release.
If you are comfortable with all of that, then please do try it out. It would be great to flush out any of the edge cases that you are all so adept at hitting before the final 0.20 release.
As we mentioned in the 0.19 release blog post, the 0.20 release no longer supports Node 4. You must be using Node 6 or later.
As a beta, we're not doing a full release blog post, and haven't done all of the documentation updates yet. However, the CHANGELOG has a full list of changes in this release.
The main change in this release is the internals of Node-RED have been split into multiple npm modules. This will make it easier to reuse components of Node-RED and create more customised applications. But from an end-user perspective, that's all hidden detail.
Some of the more visible highlights include (in no particular order):
Editor
- new flow tabs can be added by double clicking on the tab bar. The tab will get inserted where you click - such as in between two existing flows
- Cmd (or Ctrl) - Clicking on a tab selects it. You can select multiple tabs. Once selected, pressing delete will delete the tabs. Opening the export to clipboard dialog (from the menu, or Cmd/Ctrl-E) will let you export the selected tabs.
- The edit dialog for nodes has been reworked as a set of tabs rather than collapsible sections.
- One of these tabs is a description field so you can add markdown-formatted help to any node.
- Any of the markdown edit fields now have a markdown formatting toolbar and can open into a full-screen editor with markdown preview.
- 0.19 allowed you to change a node's icon. You can now also pick from the Font-Awesome v4 range of icons for the node. (excluding any brand-specific icons)
- From the node appearance tab you can hide a node's label - just like the Link node does. (and you can chose to show the Link node's label).
- There are tooltips on lots of the buttons and controls in the UI. Any that have a keyboard shortcut associated with it will also show the shortcut.
- You can delete individual context entries in the Context Sidebar
- You can select Config nodes in the Config node sidebar, Ctrl-Click to select multiple. Pressing delete will delete the selected config nodes - easier than dbl clicking to open the dialog for each one.
- When you kick off either a git push/pull in the Projects sidebar, or an install/remove of a node from the Manage Palette dialog, you'll see a button to 'view log'. This will open the new Event Log (also accessible from the menu, View->Event Log). This lets you see more log output from the underlying git/npm commands those actions run.
- The Import from Clipboard dialog lets you upload a file rather than paste from the clipboard. It also does a better job of highlighting errors if you provide invalid JSON.
- The Export to Clipboard dialog lets you download the flow as a file, rather than copy to clipboard.
- A new 'Restart Flows' option has been added to the deploy menu - this causes the runtime to reload its active flows from storage and restart them.
- The Manage Palette dialog will refuse to install a module if it provides a node type that is already installed.
Runtime
- Add --safe mode flag to allow starting without flows running
- Add setting-defined accessToken for automated access to the adminAPI
- Allow a project to be loaded from cmdline - specifying the project name where you would provide the flow file name will load that project.
There are also lots of updates to various nodes - the CHANGELOG has the full list.
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 0.19.5.
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 #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 small number of open issues and PRs we still have targeted for 0.20. The plan is to get them resolved over the next few weeks so we can get 0.20-final published in early January.
One of the larger pieces of work is the documentation for all the internal modules. A key feature of 0.20 will be a formal runtime API - something we've never properly published. We've started on the documentation for that and you can see a snapshot of the auto-generated docs here.
You'll see there's lots of work still to do on that front. But the fact we can now auto-generate that documentation from the code is a big step forward.