Thanks for the help. I still have some questions…
The 2.8x and 2.7x rules conflict, as far as I can tell (I cannot find a good, exhaustive list of 2.7 rules, do we have one?). The only rules I have any knowledge of are that bl_idname must contain a dot and be lowercase. Problems/questions are listed inline:
ISSUE 1: (Conflicts/source link provided)
2.7 (?):
- A bl_idname must be a string containing only lowercase letters, digits and underscores, plus exactly one dot; hello.hello satisfies these criteria. Apart from that there are apparently no restrictions in the bl_idname.
- https://en.blender.org/index.php/Dev:Py/Scripts/Cookbook/Code_snippets/Interface
2.8:
- For headers, menus and panels, the bl_idname is expected to match the class name (automatic if none is specified).
- https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Addons
^ The idname and class name can’t match if the prefix is required to be uppercase, but the bl_idname is supposed to be lowercase…which convention should we follow?
ISSUE 2: (Conflicts/source link provided)
It appears that operator classes are required to start with a specific word/category. Is this still true, or can all of my addon’s operators start with MYADDON_OT_DoSomething?
2.7 (?):
- …The former must have valid Python syntax for a name, including a single dot; the part to the left of the dot must be the name of one of the valid categories of operators
ISSUE 3:
I have PropertyGroup (bpy) subclasses in my addon, but these seem to have no requirements in the wiki. I also have other non-bpy classes. It is confusing to see two different naming conventions, where some classes have a cryptic sequence of uppercase characters and others do not with no obvious reason why (in an addon especially). Is there any guidance for other bpy subclasses, to create coherent/consistent code?
MyProp_ZZ_DoSomething
MyBpySubclass_XY_DoSomething