Changelog#
The format is based on Keep a Changelog.
[2.2.3] - 2026-09-22#
Added#
requires_fsd(reason): skip a test that only works with the fabric scene delegate when/app/useFabricSceneDelegateis off. Counterpart tofallback_omnihydra, for the OmniHydra pipeline, which forces FSD off viaOMNI_HYDRA_SCENE_DELEGATE_OVERRIDE. Wrapsunittest.skipUnless, so it needs nosetUpwiring in the test base class.
[2.2.2] - 2026-08-26#
Fixed#
Startup tests now run with
--/app/file/ignoreUnsavedOnExit=true. If the stage was dirty when--/app/quitAfter=10posted quit, omni.kit.window.file raised a modal “save this stage?” prompt that nothing can answer under--no-window, hanging the app until the 300s timeout.
[2.2.1] - 2026-08-20#
Fixed#
Stop a stuck golden-image upload from failing a test group whose tests all passed:
post_quitkilled it withPopen.kill()(which spares thepython.batgrandchild holding the pipes) then drained it with no timeout. The kill now covers the process tree, and both the drain and the reap loop are bounded.
[2.2.0] - 2026-07-28#
Fixed#
OMPE-100697: Stop parallel [[test]] group processes from contending on the same file:
Golden-image population is serialized per extension and images are validated against their
.azureMD5.Golden images are fetched into private staging and published atomically, so a group already running
compare()never sees the shared image missing or half-written.Output-dir claims use canonical paths, so aliased names can’t share files.
A
report.jsonlleft by a previous run is reset before the run; a failed reset fails the test and quarantines the stale report. Scoped to the current repo_test run, so a serial re-run appends instead of dropping the parallel attempt.A golden image that can’t be populated is removed and fails only the tests comparing it, not the whole group; one that can’t be removed stays fatal.
testExtGoldenImageStrictPopulationrestores whole-group failure.Golden images are published with capped exponential backoff, off the asyncio event loop.
[2.1.2] - 2026-07-28#
Fixed#
OMPE-100697: Don’t let the runner move on while a test’s subprocesses are still alive. Test processes run in a POSIX process group or Windows Job Object, drained and confirmed empty before any retry or
repo_testrerun, so a rerun can’t overlap a straggler writing to the same output dir.
[2.1.1] - 2026-07-02#
Changed#
OMPE-99368: Add omni.kit.viewport.menubar.render to aarch64 Linux test skip list (Pixar/GL renderer crash)
[2.1.0] - 2026-06-24#
Changed#
OMPE-84078: Make
AsyncTestCase.retry_until_success&AsyncTestCase.wait_n_updatesstaticmethods
[2.0.8] - 2026-04-02#
Changed#
Prevent conflicts when multiple pip installs run in parallel during extension tests
[2.0.7] - 2026-02-23#
Changed#
Use permission aware AsyncTestCase copy method
[2.0.6] - 2025-10-07#
Add#
OMPE-66879: Fix for python path in Linux, this prevents linux using native python
[2.0.5] - 2025-09-09#
Add#
Add setting “exts/omni.kit.test/testExtCodeChangeAnalyzer.extSourcePaths” for code change analyzer to find extension based on change files for different repos
[2.0.5] - 2025-04-25#
Changed#
Added function
is_running_in_cloudso tests can be skipped when running from OVC/cloud.
[2.0.1] - 2025-04-25#
Changed#
Updated documentation with AI agent.