Replace BaseObject._name with and ID and name.
Summary
Currently BaseObjects are referenced using a name (BaseObject._name
), and an alias for classes derived from GraphObject
(which itself derives from BaseObject
. We want to change this to using a UUID and a name for all BaseObject
. This would make the alias not needed anymore.
Motivation
Renaming in Splash is not advised due to how Splash works internally, and would need a lot of work to get to work properly in all cases. And as it is, BaseObject
don't have a name by default which can be cumbersome in certain circumstances when debugging. A first try to add UUID as the default name brought lots of issues, do the the aforementioned problems with renaming in Splash.
Proposal
The proposal is as follows:
- use a UUID to reference all objects everywhere from now on
- use the name as kind of an alias, without checking for names to be unique in any way
- maybe save the UUID in the configuration file, this has to be evaluated
Impact on already existing code
Using a UUID instead of the name to reference BaseObject
throughout Splash will most likely bring a lot of changes which have to be evaluated, and tracked along the way. Tests should be added where important changes are made.
Roadmap
(Enumerate here the steps required to achieve the work.)
More details
(Provide here more details if any.)