Hi uibuilder fans, been rather too quiet on the uibuilder front recently. Been another odd and crazy busy year. However, I'm trying to get back into the next set of improvements for uibuilder and I think it is now pretty close.
If you like to keep up with the latest changes, please feel free to manually install the "v6.0.0" branch direct from GitHub after reading the latest CHANGELOG file so that you know what the requirements are, what has changed, the remaining known issue, and the last couple of things that might make it into v6.0.0. You can also check out the crazy long roadmap document if you want to get a feel for where things are going - you might even get inspired to contribute!
The breaking changes are minor. Just a change from node.js v12 to v14 to align to Node-RED v3 which is also the minimum supported version.
A few annoying things fixed, most importantly the built-in package management should be a lot more robust now an won't flake out if you have lots of uibuilder packages installed.
Not too much brand new stuff. You now have the option to include the client ID and IP Address in standard msgs as well as control msgs. There is a new basic VueJS v3 template to complement the v2 ones. Also a new example demonstrating how to use uibuilder to do some interesting logging. Many thanks to Harold Peters Inskipp for that contribution.
Other key changes:
- The new front-end client libraries are rather smarter at pestering you with errors and warnings. In particular, the client now knows if you are online or offline and is smarter at reconnecting you to Node-RED if the network returns. This is especially useful if you leave your browser open and the computer goes to sleep.
- The new client libraries also know what type of page navigation happened last and the control msg to node-red indicates whether a "new" connection is really new or simply a client either reloading the page or reconnecting the socket.
- Some small but useful tweaks to the uibuilder Editor panel. You can choose any instance top-level folder to serve your files from (nice for odd build processes). Some additional information is shown about what is happening. The library manager now shows if there are updates to installed packages, the marker is a button that will update the installed package.
- The uib-list and uib-cache nodes have also had some tweaks to make them neater and more robust.
- The usual tweaks to the tech docs and the back-end libraries.
So this won't be a massive release like v5 was but it should certainly bring some welcome improvements.
From v6 onwards, the new client libraries are now the preferred ones and the old uibuilderfe.js library is now stabilised and will not receive any further features. All new client library features will be in the uibuilder.iife.js and uibuilder.esm.js libraries. The old library will eventually be deprecated but probably not for some time since the old library still works.
Also from v6 onwards, I'll be trying to align better to Node-RED releases so expect a major release after there is a node-red major release. If nothing else, I want to push forward on node.js baselines since we need at least v18 when top-level await should go live and be stable. That should then start to open possibilities for converting from the current CommonJS module format to ESM. In turn, that opens a number of other possibilities.
cd ~/.node-red
npm install TotallyInformation/node-red-contrib-uibuilder#v6.0.0
Have fun and please give any feedback in this thread.