Skip to content

Commit 629d3f1

Browse files
authored
Merge pull request #243 from node-red/21-release
2.1.0 release blog post
2 parents 3ca62ee + f5391b4 commit 629d3f1

32 files changed

+972
-179
lines changed

_includes/toc-api-ui.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<li {% if page.url contains "/docs/api/ui/notifications" %}class="active"{% endif %}><a href="/docs/api/ui/notifications">RED.notify</a></li>
1010
<li {% if page.url contains "/docs/api/ui/sidebar" %}class="active"{% endif %}><a href="/docs/api/ui/sidebar">RED.sidebar</a></li>
1111
<li><a style="text-decoration: none !important; font-weight: bold">Widgets</a></li>
12+
<li {% if page.url contains "/docs/api/ui/autoComplete" %}class="active"{% endif %}><a href="/docs/api/ui/autoComplete">AutoComplete</a></li>
1213
<li {% if page.url contains "/docs/api/ui/editableList" %}class="active"{% endif %}><a href="/docs/api/ui/editableList">EditableList</a></li>
1314
<li {% if page.url contains "/docs/api/ui/searchBox" %}class="active"{% endif %}><a href="/docs/api/ui/searchBox">SearchBox</a></li>
1415
<li {% if page.url contains "/docs/api/ui/treeList" %}class="active"{% endif %}><a href="/docs/api/ui/treeList">TreeList</a></li>

_includes/toc-editor-guide.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<li {% if page.url == "/docs/user-guide/editor/workspace/groups" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/groups" style="padding-left: 50px;">Groups</a></li>
1111
<li {% if page.url == "/docs/user-guide/editor/workspace/subflows" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/subflows" style="padding-left: 50px;">Subflows</a></li>
1212
<li {% if page.url == "/docs/user-guide/editor/workspace/selection" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/selection" style="padding-left: 50px;">Selection</a></li>
13+
<li {% if page.url == "/docs/user-guide/editor/workspace/arrange" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/arrange" style="padding-left: 50px;">Arranging Nodes</a></li>
1314
<li {% if page.url == "/docs/user-guide/editor/workspace/import-export" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/import-export" style="padding-left: 50px;">Import/Export</a></li>
1415
<li {% if page.url == "/docs/user-guide/editor/workspace/search" %}class="active"{% endif %}><a href="/docs/user-guide/editor/workspace/search" style="padding-left: 50px;">Search</a></li>
1516
<li {% if page.url == "/docs/user-guide/editor/palette/" %}class="active"{% endif %}><a href="/docs/user-guide/editor/palette/">Palette</a></li>

_includes/toc-footer.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@
7474
currentItem.removeClass("active");
7575
}
7676
currentItem = targetItem;
77-
currentItem.addClass("active");
77+
if (currentItem) {
78+
currentItem.addClass("active");
79+
}
7880
}
7981
}
8082
$(window).resize(resizeWindow);
Lines changed: 188 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
---
2+
layout: blog
3+
title: Version 2.1 released
4+
author: nick
5+
---
6+
7+
Node-RED 2.1 is now available to [install](https://npmjs.org/package/node-red). If upgrading, please read the [upgrade instructions](http://nodered.org/docs/getting-started/upgrading.html).
8+
9+
The [Change Log](https://github.com/node-red/node-red/blob/21304a695c3450fbf80cee69c84fe71ce753b076/CHANGELOG.md) has the full list of changes in this release, but here are the highlights.
10+
11+
---
12+
13+
<iframe width="560" height="315" src="https://www.youtube.com/embed/5DHs7y0zSZo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
14+
15+
---
16+
17+
- [Highlights](#highlights)
18+
- [New Welcome Tour Guide](#new-welcome-tour-guide)
19+
- [Hiding tabs](#hiding-tabs)
20+
- [Dynamic MQTT nodes](#dynamic-mqtt-nodes)
21+
- [Auto-complete in `msg` TypedInputs](#auto-complete-in-msg-typedinputs)
22+
- [New Link Call node](#new-link-call-node)
23+
- [Edit & Arrange menus](#edit--arrange-menus)
24+
- [Flow/Group level environment variables](#flowgroup-level-environment-variables)
25+
- [Other node updates](#other-node-updates)
26+
- [Debug sidebar options](#debug-sidebar-options)
27+
- [Deep copy option on Change node](#deep-copy-option-on-change-node)
28+
- [Delay node updates](#delay-node-updates)
29+
- [Join node reset timeout](#join-node-reset-timeout)
30+
- [TCP Request node can return Strings](#tcp-request-node-can-return-strings)
31+
- [File nodes renamed](#file-nodes-renamed)
32+
- [Documentation Updates](#documentation-updates)
33+
- [What's next?](#whats-next)
34+
35+
36+
## Highlights
37+
38+
### New Welcome Tour Guide
39+
40+
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.
41+
42+
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.
43+
44+
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.
45+
46+
The underlying framework for creating the Welcome Tour can be reused to create other interactive tours/tutorials/guides. We'll have more on this area in the future.
47+
48+
![](/blog/content/images/2021/10/welcome-tour.png)
49+
50+
### Hiding tabs
51+
52+
We often hear from users who have a *lot* of flows. To make it a bit easier to manage, you can now hide their tabs in the editor.
53+
54+
![](/blog/content/images/2021/10/hide-tabs.png)
55+
56+
The Info sidebar still lists them all, and indicates which are currently hidden. It also allows them to be shown with a single click.
57+
58+
![](/blog/content/images/2021/10/hide-tabs-sidebar.png)
59+
60+
There's also a new tab menu that provides more options around managing the tabs.
61+
62+
![](/blog/content/images/2021/10/hide-tabs-menu.png)
63+
64+
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.
65+
66+
Whilst talking about managing the tabs, shift-clicking on the workspace tab bar scroll arrows will now jump immediately to the start/end of the tab list.
67+
68+
69+
### Dynamic MQTT nodes
70+
71+
The MQTT In node now includes a 'Dynamic subscription' option. When selected, the node gets an input so you can pass it messages. Those messages can be used to:
72+
73+
- connect/disconnect the broker
74+
- subscribe to topics
75+
- unsubscribe from topics
76+
77+
![](/blog/content/images/2021/10/mqtt-out-opts.png)
78+
79+
80+
The MQTT Out node also supports the connect/disconnect messages as well.
81+
82+
The MQTT Broker configuration node has a new 'connect automatically' option - which is enabled by default. If you disable that, it won't connect until one of the flow nodes receives a connect message.
83+
84+
Full details of the formats of those messages are in the node help and summarised in the [pull-request here](https://github.com/node-red/node-red/pull/3189).
85+
86+
### Auto-complete in `msg` TypedInputs
87+
88+
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.
89+
90+
For now, it offers completions from the list of well-known properties the core nodes use.
91+
92+
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.
93+
94+
![](/blog/content/images/2021/10/autocomplete.png)
95+
96+
We're also thinking about how best to apply this to flow/global inputs - auto-completing based on the current contents of context.
97+
98+
### New Link Call node
99+
100+
The new Link Call node can be used alongside the Link-In/Out nodes to create subroutine-like flows.
101+
102+
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.
103+
104+
![](/blog/content/images/2021/10/link-call.png)
105+
106+
As an alternative to using subflows, this is great for creating little utility flows that you want to reuse in multiple places.
107+
108+
109+
### Edit & Arrange menus
110+
111+
The main menu now has Edit and Arrange submenus.
112+
113+
The Edit menu has the actions you'd expect - Undo, Redo, Copy and Paste etc.
114+
115+
The Arrange menu adds tools to help arrange your nodes.
116+
117+
![](/blog/content/images/2021/10/menus.png)
118+
119+
All of the menus now also show any keyboard shortcuts that have been set.
120+
121+
### Flow/Group level environment variables
122+
123+
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.
124+
125+
## Other node updates
126+
127+
### Debug sidebar options
128+
129+
The Debug sidebar options have been reworked.
130+
131+
The filter options are now a drop-down menu of options, rather than the sliding panel.
132+
133+
![](/blog/content/images/2021/10/debug-filter.png)
134+
135+
The 'clear messages' button now also has a drop-down that lets you change it to 'clear filtered messages' instead. That option is useful if you have the 'current flow' filter enabled, and you want to clear the message for the current flow without clearing messages from other flows.
136+
137+
In other good news, both of these options are now stored in the editor settings - so they are remembered between editor reloads.
138+
139+
140+
### Deep copy option on Change node
141+
142+
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`.
143+
144+
In the case of Objects and Arrays, this creates a proper clone of the value, rather than creating a reference to the same object.
145+
146+
We've also updated the label of the "set" action to hopefully help users get the 'from' and 'to' fields the right way around.
147+
148+
![](/blog/content/images/2021/10/deep-copy.png)
149+
150+
### Delay node updates
151+
152+
When in rate limiting mode, the Delay node supports two new features:
153+
154+
- if `msg.toFront` is set, a message is put to the front of the queue of messages waiting to be sent
155+
- 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 messages that have been rate limited, rather than just have them discarded.
156+
For example, if you are creating a rate limited HTTP endpoint, you still want to be able to respond to the rate limited requests rather than just letting them time out.
157+
158+
### Join node reset timeout
159+
160+
If the Join node has a timeout running and it receives a message with `msg.restartTimeout` set, it will restart the timeout.
161+
162+
163+
### TCP Request node can return Strings
164+
165+
The TCP Request node can now be configured to return Strings rather than raw Buffers. This matches the functionality already available with the TCP In node.
166+
167+
### File nodes renamed
168+
169+
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.
170+
171+
## Documentation Updates
172+
173+
Whilst not really part of the release, we've also published lots of updates to the [API documentation](https://nodered.org/docs/api/) on the website.
174+
175+
This includes the hooks and library store APIs in the runtime.
176+
177+
The docs now cover more of the APIs available to nodes and plugins to [extend the UI](https://nodered.org/docs/api/ui/).
178+
179+
There is also documentation on creating custom [Theme plugins](https://nodered.org/docs/api/ui/themes/).
180+
181+
182+
## What's next?
183+
184+
This release has got us back on schedule for our [release plan](/about/releases/). With that plan, the next release, 2.2 is scheduled for the end of January.
185+
186+
There are a few features already in development for that release, including tooling to help package subflows as npm modules directly from the editor.
187+
188+
As ever, if there are any particular features you're interested in, now is a great time to jump into the [forum](https://discourse.nodered.org) to share your feedback.

about/index.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: About
44
---
55

66
Node-RED is a flow-based programming tool, originally developed by [IBM's Emerging Technology Services](https://emerging-technology.co.uk)
7-
team and now a part of the [JS Foundation](https://js.foundation).
7+
team and now a part of the [OpenJS Foundation](https://openjsf.org/).
88

99
### Flow-based Programming
1010

@@ -43,6 +43,9 @@ It was open-sourced in September 2013 and has been developed in the open ever
4343
since, culminating in it being one of the founding projects of the JS Foundation
4444
in October 2016.
4545

46+
In 2019, the Node.js Foundation merged with the JS Foundation to form the
47+
[OpenJS Foundation](https://openjsf.org/).
48+
4649
<div class="doc-callout">
4750
<b>Why is it called Node-RED?</b> The name was a light-hearted play on words
4851
sounding like 'Code Red'. It stuck and was a great improvement on whatever it was
@@ -65,3 +68,13 @@ For some more of the history and highlights:
6568
<div style="text-align: center">
6669
<iframe width="560" height="315" src="https://www.youtube.com/embed/Bbg1017amZs" frameborder="0" allowfullscreen></iframe>
6770
</div>
71+
72+
73+
### Citing Node-RED
74+
75+
If you need to cite the project in a paper, please use the following information:
76+
77+
-----|----
78+
**Name** | `Node-RED`
79+
**Author** | `OpenJS Foundation & Contributors`
80+
**URL** | If you are citing the project in general, use the project website URL - `https://nodered.org`. <br/>If you are citing a particular version, use either the website, or find the [release page on GitHub](https://github.com/node-red/node-red/releases) for the version you are citing.

about/releases/index.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,29 @@ title: Release Plan
44
slug: releases
55
---
66

7-
_Updated: 2020-07-01_
7+
_Updated: 2021-10-21_
88

99
This plan is a guide for how the project plans to schedule upcoming releases, taking
1010
into account the release schedule of the underlying Node.js runtime.
1111

1212
![](release-plan.png)
1313

1414

15-
The active Node-RED stream (1.x) will get a new minor version release (for example, 1.1 -> 1.2)
16-
every three months. Maintenance releases (for example 1.1.0 -> 1.1.1) will continue
15+
The active Node-RED stream (2.x) will get a new minor version release (for example, 2.1 -> 2.2)
16+
every three months. Maintenance releases (for example 2.1.0 -> 2.1.1) will continue
1717
to happen as and when they are needed.
1818

19-
At the end of April 2021, when Node 10.x reaches its end-of-life, we will publish
20-
Node-RED 2.x that will *drop* support for both Node 8.x and Node 10.x.
19+
At the end of April 2022, when Node 12.x reaches its end-of-life, we will publish
20+
Node-RED 3.x that will *drop* support for Node 12.
2121

22-
The 1.x stream will then enter maintenance mode. It will only receive bug fixes
23-
and security updates. New features could get back-ported from 2.x if there was
22+
The 2.x stream will then enter maintenance mode. It will only receive bug fixes
23+
and security updates. New features could get back-ported from 3.x if there was
2424
a very good reason to do so as well as people available to do the work.
2525

26-
The 2.x stream will continue in active development with a minor release every
27-
three months or so until April 2022 when Node 12.x reaches its end-of-life. We
28-
then publish Node-RED 3.x and the cycle continues. The 1.x stream will reach its
29-
end-of-life soon after the 3.x release. The exact timing of that will be something
26+
The 3.x stream will continue in active development with a minor release every
27+
three months or so until April 2023 when Node 14.x reaches its end-of-life. We
28+
then publish Node-RED 4.x and the cycle continues. The 2.x stream will reach its
29+
end-of-life soon after the 4.x release. The exact timing of that will be something
3030
we will need to discuss further.
3131

3232
This proposal means:

about/releases/release-plan.png

31 KB
Loading
13.1 KB
Loading
7.14 KB
Loading
10.9 KB
Loading

0 commit comments

Comments
 (0)