|
| 1 | +--- |
| 2 | +layout: blog |
| 3 | +title: Version 0.15 released |
| 4 | +--- |
| 5 | + |
| 6 | +Node-RED 0.15 is now available to [download](https://github.com/node-red/node-red/releases/download/0.15.0/node-red-0.15.0.zip) or [npm install](https://npmjs.org/package/node-red). |
| 7 | + |
| 8 | +If upgrading, please read the [upgrade instructions](http://nodered.org/docs/getting-started/upgrading.html). |
| 9 | + |
| 10 | +If you are using the pre-installed version on Raspberry Pi Jessie, the repositories will be updated in the near future. |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +### Editor Updates |
| 15 | + |
| 16 | + |
| 17 | +#### Palette editor |
| 18 | + |
| 19 | +It's now possible to manage your palette from within the editor. This lets you |
| 20 | +browse a catalogue of all available nodes and install any of them without having to |
| 21 | +restart Node-RED. |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +Under the covers, this triggers an npm install of the node module into your user |
| 26 | +directory - by default, `$HOME/.node-red`. Note that if the node has any dependencies |
| 27 | +beyond the standard npm dependencies, you'll need to resolve them manually. It also |
| 28 | +requires you to have `npm` installed, which, if you're using the Raspberry Pi |
| 29 | +preinstall image, you may not have - check [the docs](http://nodered.org/docs/hardware/raspberrypi.html#adding-nodes) for how to get it. |
| 30 | + |
| 31 | + |
| 32 | +#### Scrollable tabs |
| 33 | + |
| 34 | +Having let you reorder your workspace tabs in the last release, we knew there was |
| 35 | +more to be done. A common complaint was how the editor handled flows with lots of tabs; |
| 36 | +we would squeeze them all into the view making it virtually impossible to jump to the |
| 37 | +right tab first time. It also made the Flows menu unusable as to grew beyond the bottom |
| 38 | +of the page. |
| 39 | + |
| 40 | +With this release, we now behave much more sensibly and allow the tab bar to scroll |
| 41 | +so the tabs never become too small. That ensures their labels are always legible. |
| 42 | +We've also removed the list of tabs from the Flows menu. |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | + |
| 47 | + |
| 48 | +But wait a minute, I hear you say, how can you quickly navigate between tabs if |
| 49 | +they are now scrolled off screen and there's no menu entry? Well, I reply, you |
| 50 | +want to see the new search box... |
| 51 | + |
| 52 | + |
| 53 | +#### Search box |
| 54 | + |
| 55 | +We've added a search box that makes it easy to quickly find any tab or node. You |
| 56 | +can access it from the 'Search flows' option in the menu, or simply hit `Ctrl+.` (`Cmd+.` on Mac). As you type, it shows a list of possible matches, either click |
| 57 | +on the one you want, or use the cursor keys and hit enter. |
| 58 | + |
| 59 | +If you select a flow or subflow, it will switch to the appropriate tab. If you pick |
| 60 | +a node in the flow, it switches to the appropriate tab, scrolls to ensure the node |
| 61 | +is visible and flashes its border so you can spot it. If you pick a configuration node, |
| 62 | +it will reveal it in the config node sidebar. |
| 63 | + |
| 64 | + |
| 65 | + |
| 66 | +#### Import/Export improvements |
| 67 | + |
| 68 | +The Import and Export dialogs have had a few small updates. When importing a flow, |
| 69 | +you can now choose to have it import into a new flow rather than the current one. |
| 70 | + |
| 71 | +The export dialog gives you more options on what gets exported - whether the selected |
| 72 | +nodes, the current flow or all flows. You can also pick if the export should be |
| 73 | +prettified or minified. |
| 74 | + |
| 75 | +  |
| 76 | +  |
| 77 | + |
| 78 | +A couple of other new features on import: |
| 79 | + - we avoid duplicating subflows if you import one you already have in the palette |
| 80 | + - you can now include credentials in the flow json you import |
| 81 | + |
| 82 | + |
| 83 | +#### Other things |
| 84 | + |
| 85 | +- As you switch between flows, we update the url in the browser so you can link |
| 86 | +straight into a particular flow or subflow: |
| 87 | + |
| 88 | +  |
| 89 | + |
| 90 | + |
| 91 | +- We've changed the default scope of new config nodes. When we introduced the idea |
| 92 | +of scoping config nodes to a particular flow we defaulted to the current flow you're |
| 93 | +on. This has caused quite a bit of confusion as user's don't necessary understand |
| 94 | +what the scoping is doing and end up creating identical config nodes on each tab. |
| 95 | +With this release, we now set config nodes to be global by default. |
| 96 | + |
| 97 | + |
| 98 | +### Runtime Updates |
| 99 | + |
| 100 | +#### Encrypting credentials |
| 101 | + |
| 102 | +We've always taken care to ensure any credential properties are not stored in the |
| 103 | +main flow file and put them in a dedicated credentials file. This means the main |
| 104 | +flow file can be version controlled without fear of leaking anything sensitive. |
| 105 | +However we can't avoid the fact that credentials really need to be kept in sync |
| 106 | +with the flows and only version controlling one doesn't make sense. |
| 107 | + |
| 108 | +As we're building up to adding version control support to Node-RED, we needed to |
| 109 | +do something to protect the credentials whilst enabling them to be version controlled. |
| 110 | + |
| 111 | +As such, we now encrypt the credentials by default. This will mean you can no |
| 112 | +longer hand-edit the credentials file unless you choose to explicitly disable |
| 113 | +encryption. The exact details of how we do this are on the wiki [here](https://github.com/node-red/node-red/wiki/Design%3A-Encryption-of-credentials). |
| 114 | + |
| 115 | + |
| 116 | +#### Preventing overwrite protection |
| 117 | + |
| 118 | +In anticipation of version control support, the `/flows` admin api has been updated |
| 119 | +to include a revision identifier along with the flows. |
| 120 | +When you hit the deploy button, the editor can now check if the flows in the runtime |
| 121 | +are those it loaded originally. Why is that useful? It means if someone deploys some |
| 122 | +changes whilst you're still working on yours, the editor will warn you when you |
| 123 | +come to deploy. In this release, we give you the option to deploy anyway (over-writing |
| 124 | +whatever changes had been made), or cancel the deploy. |
| 125 | + |
| 126 | +We've already started work on being able to see what changes have been made so you |
| 127 | +can merge them into your changes before deploying, but it didn't make the cut for |
| 128 | +this release. |
| 129 | + |
| 130 | +As the changes to `/flows` are not backward compatible, we've added a new custom |
| 131 | +HTTP header to identify what version of the API should be used. That means any existing |
| 132 | +use of the `/flows` api will continue to work, but can easily opt-in to the new |
| 133 | +behaviour. The documentation for this new api will get updated later this week. |
| 134 | + |
| 135 | +### Node 0.10 |
| 136 | + |
| 137 | +Finally, we need to talk about Node.js 0.10. At the [end of this month](https://github.com/nodejs/LTS/blob/75bd36a060be3b965e696bc0c53f799089ad0f52/README.md), it will no long receive _any_ updates - including security updates. This end-of-life means it is hard for us to justify maintaining support for it. There |
| 138 | +is a growing list of modules that have already dropped support for both 0.10 and |
| 139 | +0.12 which leaves us stuck if a critical issue was to be found in them. |
| 140 | + |
| 141 | +The _only_ reason we've held onto 0.10 for so long is the fact its the version that |
| 142 | +Debian Stable ships - and thus it's the only version available as part of our |
| 143 | +Raspberry Pi preinstall image. Debian Stable isn't due to update for quite some |
| 144 | +time yet, so we're at a bit of an impasse. |
| 145 | + |
| 146 | +Having explored a wide range of options we've made the decision that the 0.15 stream |
| 147 | +will be the last one to support node 0.10 *and* 0.12. |
| 148 | + |
| 149 | +**The next milestone release, 0.16, will require Node 4.x.** |
| 150 | + |
| 151 | +This means, for now, the Raspberry Pi preinstall will be fixed at 0.15. |
| 152 | +To make life easier, we already include a script on the preinstall image called |
| 153 | +`update-nodejs-and-nodered` that updates node.js to the latest LTS version using the |
| 154 | +NodeSource repositories and then reinstalls node-red on top. See [the documentation](http://nodered.org/docs/hardware/raspberrypi.html#upgrading-nodejs) for more information - including instructions for doing that upgrade manually if you so |
| 155 | +choose. |
| 156 | + |
| 157 | +#### Serial node |
| 158 | + |
| 159 | +One of the more painful parts of the node.js world is handling binary dependencies. |
| 160 | +It can be a real headache when upgrading between versions to make sure such dependencies |
| 161 | +continue to work as expected. |
| 162 | + |
| 163 | +We're serving notice that in the 0.16 release **we will be removing `node-red-node-serialport` as a default |
| 164 | +dependency**. |
| 165 | + |
| 166 | +That means we'll no longer include the Serial node as part of the core |
| 167 | +install. |
| 168 | + |
| 169 | +It will remove a lot of hardware/platform dependant code, speeding up the install |
| 170 | +time and shrinking the runtime footprint for users who have no need of the node. |
| 171 | + |
| 172 | +It will also make upgrading more reliable as the serial port code will no longer be buried within Node-RED and can be upgraded just like any other node. |
| 173 | + |
| 174 | +This will mean if you are using the serial port nodes you'll need to manually |
| 175 | +install them after upgrading to 0.16 - we'll share more details when we get to |
| 176 | +that release. |
| 177 | + |
| 178 | +### And finally... |
| 179 | + |
| 180 | +Keep a look out for some announcements next week... we have some exciting news |
| 181 | +to share! |
0 commit comments