UIBUILDER development progress: Next release will be a major update (v7)

Hi all, now that Node-RED 4 is in beta, I can now confirm that the next release of UIBUILDER (barring any minor fixes) will also be a major release, v7.0.

That means that it may have some potentially breaking changes you should be aware of. I will, of course, release actual details as they are coded but below is a possible list.

Note however that the key change will be setting Node.js v18 as the minimum supported release. Node-RED v3 will remain the minimum requirement as for v6 releases.

Please let me know if you may have issues with any of the following, there is still time to adjust things if needed.


Potential breaking changes for UIBUILDER v7

Note that many of these will not impact many (if any) existing deployments.

  • Minimum node.js v18 - Everyone should already be at or close to this version already.

  • Remove uibuilderfe library (and tidy gulp and source) - if you are still using this, please to try to move to the module based library as it is far more feature rich and has many bugs removed.

    I believe some people may still be using the old library, if so, you will not - I'm afraid - be able to upgrade until you move to the newer module based library. And you are missing out on the many newer features.

  • Removal of uib-list node - The uib-element node does everything that it did and more.

  • Switch to default of case sensitive URL's for ExpressJS. Socket.IO is already case sensitive but ExpressJS is not. This can cause issues as shown in Ref.

    Will make both case sensitive in line with W3C recommendations. Will also add a case sensitivity flag to uibuilder node and allow setting of ExpressJS flags on routers. Ref 1, Ref 2. Also document in uibuilder settings. Ref 3.

  • Move socket.io-client from dependencies to dev-dependencies - ensure removed from runtime code.

    If using the module based client library, you should not be loading the Socket.IO client yourself anyway since it is already built into the client library.

  • In the client library, will consider restricting onChange to only watch watched variables.

    Will also add checks to make sure the variable doesn't start with _ or #.

  • Remove Pollyfills from uibuilder editor code - shouldn't impact anyone using a browser from the last 5 years or so.

  • Will consider removing the css auto-load in the next major release since at least 1 person has hit a race condition. Ref.

    This automatically loads the uib-brand.css if no css is provided at all. Since all of the standard templates include some CSS and have for a long time, this should not impact anyone.

  • Will remove serve-index dependency if the uib-file-* nodes have been delivered.

    I'm really not sure anyone uses this in any case and the new nodes will provide a richer and more controllable experience. Serve-index lets you optionally see a file-manager style view of all files being served by a uibuilder node. Obviously, this can be a security issue which is why it is optional. The new nodes will let you limit what is shown and to whom.


As always, UIBUILDER remains open source and completely free to use, even for commercial use. However, if you are finding value in it, please do consider some small measure of contribution. You can sponsor the work using any of the following as a one-off or regular contribution: PayPal, GitHub, or Ko-fi

Many thanks as always to those who are already contributing.

2 Likes

Julian,
could you pls elaborate this?

Hi Fabio,

To be honest, I think this one may be spurious. Since, having rechecked the definition of onChange, it can only deal with variables defined to uibuilder anyway.

What I may do though is prevent access to variables starting with # or _ since those indicate that the variable should be private.

Got it. Thanks for the clarification.