Hello!
I’m looking into removing the “doc” API documentation metadata from the schema registry. I’m hoping to get some feedback on how this will impact folks, especially tools devs.
Historically the "doc’ metadata field in schemas was intended to be “API documentation” (often formatted using doxygen directives) and gets added to generated C++ code for non-codeless schemas, and then used to generate API documentation for USD via doxygen. Currently USD also propagates this content into the schema registry and makes it available via UsdPrimDefinition::GetDocumentation() / GetPropertyDocumentation().
In release 24.08, we added a new process for authoring “user doc” for schemas. This process uses new custom metadata fields (“userDoc” and “userDocBrief”) for schema classes and properties. “userDocBrief” now gets propagated to the schema registry and can be retrieved using UsdPrimDefinition::GetDocumentation() / GetPropertyDocumentation(). The “userDocBrief” field typically contains a short 1 or 2 sentence description of the schema class or property for users, which can be displayed to users in a DCC tool, or other user-facing context.
With the addition of “userDocBrief”, the “doc” metadata field is no longer needed in the schema registry, hence my plan to remove it (and maybe get some modest performance gains in schema registry initialization). However, currently, only the usdVol schemas have actual “userDocBrief” content authored, which means that until we have userDocBrief content for all schema classes and properties, many schemas will return nothing for calls to UsdPrimDefinition::GetDocumentation / GetPropertyDocumentation.
Additionally, UsdObject::GetDocumentation() for prims and properties currently accesses the “doc” metadata field. This change will make this call also return nothing for prims/properties from schemas.
I’m curious to know if anyone is relying on either the primdef / object GetDocumentation APIs or the “doc” metadata field in general for their USD use cases.