Deprecating UsdUtils.ComplianceChecker

Hello All

As the UsdValidation framework is marked complete, and we have already deprecated the use of the old compliance checker interface with usdchecker, we plan to do the following for 26.02:

  • Remove --useOldComplianceCheckerInterface option from usdchecker (this was deprecated and noted in 25.11).

  • Deprecate --arkit option for usdchecker.

  • Mark UsdUtils.ComplianceChecker library itself as deprecated in 26.02 which will enable us to remove it in future release.

    • As a part of this a few applications like usdzip and usdfixbrokenschema will be made to use the new validation framework and moved to a new location in the codebase.

Kindly let us know here or via GitHub issues if there are any questions or concerns on the same.

Thanks

  • Varun

Will a pure-python equivalent to UsdUtils.ComplianceChecker be shipped at all, or will downstream users of the API need to rebuild something like it using the raw UsdValidation module instead?

Hi @deadpin, apologies for the delayed response.

The new UsdValidation framework does expose Python APIs that downstream clients can use directly. The ValidationWidget is a good reference for how to drive the framework from Python.

All the tests covered by the legacy UsdUtils.ComplianceChecker already have equivalent validators implemented in the new framework. So from a test-coverage standpoint, nothing is missing.

The main gap today is Python-side registration of new validators. We are still evaluating how best to support that. One constraint is that Python-registered validators will run serially, which will have performance implications. Because of this, we do not intend to remove the old UsdUtils.ComplianceChecker until Python registration of new validators is addressed.

Though, going forward, all new core validators will be added only to the new framework – no additional tests are planned for the legacy UsdUtils.ComplianceChecker.

Hope this clarified things.

Thanks

  • Varun