Potential errors/final bl_idname requirements

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 (?):

2.8:

^ 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

https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Advanced_Tutorials/Python_Scripting/Addon_Anatomy

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