 Hi, I'm Nick O'Leary from the Node-RED project and I wanted to spend just a few minutes sharing some of the things we've been up to in the project recently and preview some of what we've got coming up. Earlier this year we released the 1.3 version of Node-RED. This was the latest milestone release that brought a number of new features to both the Node-RED editor and its runtime. In the function node we've made it easier to load external modules to use in your code. Previously you'd have to install the module separately and then edit your settings file to tell Node-RED to make them available. With this new feature enabled you can now specify the external modules straight in the edit dialog of the function node and have Node-RED automatically install them and make them available to the node. For administrators when this feature is enabled we also provide allow and deny list options to provide some control over what end users are able to install. The MQTT nodes are updated to introduce MQTT V5 support. V5 brings a whole host of new options to the protocol including improved message metadata, request response messaging and message expiry. Under the covers we've introduced a new plugins framework for the platform. Plugins are a way to add additional functionality to both the runtime and editor and will be how we deliver some new features in the future keeping the course smaller and providing more choice over what additional features a user has installed. With the 1.3 release we introduce support for two types of plugins. First up are editor theme plugins. They make it easier for users to install new themes and enable them straight in their settings file. There's a great collection of contributed themes available at the Node-RED Contrib Themes repository. The second plugin type are library source plugins. These allow users to configure additional libraries that appear in their import-export dialogues within the editor. We've published a local file system plugin as a first example. This allows you to create a second library stored on your local disk. You could point that as a shared folder on Dropbox for example and it gives you a quick and easy way to share flows with others with colleagues with whoever you're working with. And there are lots of other smaller improvements throughout the project and you can find out lots more in the release blog post. So now let's turn to what's coming up. With the release plan we published last year 1.3 is the last milestone release we'll be doing in the 1.x stream which now goes into maintenance mode where only critical fixes will get applied and in its place is coming Node-RED 2.0. The main driver for the major version change is dropping support for old versions of Node.js. This has in turn allowed us to update a number of our core dependencies across major version changes. Now the goal is to minimize any breaking changes so for the majority of users it's going to be a seamless upgrade but there will inevitably be some areas that will need a bit more care. One example is the HTTP request node. We're finally moving it off the long deprecated request module and we're moving it over to the got module. Now after looking at all the different alternatives available we decided that got would be the easiest to migrate to. That said it was still quite a lot of work to do and made me appreciate just how much the request module did out of the box. We're fairly confident users won't spot the difference but given the number of edge cases around dealing with HTTP requests it is possible that something might slip past our unit tests. We're also changing a few bits of default behavior in the case of clean new installs of Node-RED. For example the new default settings file hardcodes the flow file name to be flows.json. We won't use the host name as part of the file name anymore. Existing setting files won't get changed so instances that rely on the host name will continue to behave in exactly the same way. In the editor we've added an option to replace the ace text editor with monoco the text editor that Microsoft uses in VS code. Now this gives a much richer code editing experience with much better autocomplete content aware help all that sort of stuff. The switch should be pretty transparent but it is possible there will be some third party nodes in the ecosystem that bypass the APIs we provided and try to use ace directly. To that end users at this moment have to opt in to use monoco via their settings file. We do plan to switch over fully to monoco in a future release. Now given the nature of all these changes we'll have an extended beta period for the 2.0 release with the first beta release coming later this month. One of the benefits of low code programming with tools like NodeRED is it abstracts away a lot of the technical details of how things are working. It allows you to focus on solving the problem at hand. But just because it's low code that doesn't mean you can't have the tools you need to make high quality applications and yes to help debug when things aren't going as they should. To that end alongside the 2.0 release we're also going to be releasing a pair of new tools that's going to bring some new superpowers to NodeRED flow developers. First up is a flow debugger. Now this is going to act like regular code debuggers but at the flow level. You're going to be able to set breakpoints on node ports either inputs or outputs then whenever a message arrives at a breakpoint the entire runtime will get paused. Now when it's paused it will show you how many messages are queued up at each point in the flow and in the sidebar you can see the queue of messages in the order they are going to get processed. Each time you click the step button the next message is taken from the top of the queue and gets processed. The message queue also lets you step individual messages out of order or even to remove them from the queue and we've got some great features coming in the future such as adding conditional breakpoints or editing messages in flight. The second tool is a flow linter, nr lint. This can be used to identify potential problems in the flow based on a large set of rules the linter will provide. For example it can warn if you have an HTTP input node that doesn't get connected to an HTTP response node or if you have nodes that are physically overlapping and potentially obscuring each other in the workspace. We've modelled the linter after eslint which we'll also bundle in one of our rules so you can use it to lint the javascript in your function nodes. Now we've designed the linter to run in the browser using a worker thread meaning it doesn't impact the performance of the editor. The sidebar shows you the linting results and let you quickly navigate to the areas of the flow that might need some attention. Outside of the editor nr lint can also be installed and run as a command line tool against a flow JSON file. This means it can be used to validate flows as part of build pipelines. Today we've got quite a minimal set of rules and a recent call for input from the community has generated a long list of great ideas and we hope to have lots of them implemented in time for the release. But we're sure equally that there's going to be some perhaps more esoteric rules that perhaps don't belong in the core set. For example some third party nodes may want to introduce guidance about how their nodes are used. So to support that the linter rules are entirely pluggable allowing custom rules to be created and shared with the community via npm. In wider project news we're going to be launching our not quite annual node red community survey soon. We last ran it just over two years ago in 2019 and got some great insights from the community. We've decided it's time to rerun it with some updates so if you're a node red user keep an eye out for that when it launches. And that's everything I had for you today. We're really looking forward to getting the node red 2.0 beta released and to let you play with the debugger and linter. I really think they're going to be hugely useful tools for the node red community. If you have any questions about anything you've heard today do come and ask in the forum or on Slack and that's everything I've got. Bye for now.