Hello.
That is an interesting approach.
I really want to keep things as simple as possible. I am lazy. Code will and does break, when I edit stuff. So I only use my approach for script objects not libraries.
I have been working on a script (that I will finish some day ), that makes a build list for a library. so that I can compile all the scripts that uses the library in one go. Since I then know I am having a revision-stop, and are detecting the culprits much easier. ( A batch build per library). But libraries aren’t loaded by some make functionality, because at times when I revise a library, it would render large parts of my scripts unusable.
My taxonomy is also such that all the libraries are also residing as projects, with a products folder, and aliased from there into a library folder, which is an approach that works well for me.
I don’t store script objects in globals, but tries to encapsulate whatever I can encapsulate, in order to not break dependencies or create name conflicts. This may lead to larger scripts, but I believe firmly that each library, and script object should be looked upon as a black box, and be an entity in its own right.
Neither do I collect scriptObjects as a separate entity that I can load from a specified location. That would lead to the copying, and extranous work and maybe culprits, that my approach with the products folder tries to avoid.
Say I want to edit a script.
I open the version that is there in the Script Editor.
I save it with a higher number, than any other, in the folder the versions reside.
I then edit, and I can run that edited version from one of the places. confident that it is the last version that are executed.
And that is all that is to it.
I do like your approach, and may use it, when things feels more stable. But I feel it would impose more work for me at least, as large parts of my codebase is unstable.
Edit
I see now clearly…, that what I can do with the “libraries problem” for the future, is to start using version numbering of the libraries, and alias the versions in the scripts folder, using the library with the highest number for new scripts, and stick with the old version for the old scripts, until I edit them, and needs new functionality. Now, this would be the opposite of the scheme that I use for script objects, but it would work fairly well for script that is dependent on libraries.
-Because knowing you are breaking like 20 scripts because you start to change name on handlers, is kind of a deterrent!