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/useFabricSceneDelegate is off. Counterpart to fallback_omnihydra, for the OmniHydra pipeline, which forces FSD off via OMNI_HYDRA_SCENE_DELEGATE_OVERRIDE. Wraps unittest.skipUnless, so it needs no setUp wiring 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=10 posted 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_quit killed it with Popen.kill() (which spares the python.bat grandchild 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 .azure MD5.

    • 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.jsonl left 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. testExtGoldenImageStrictPopulation restores 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_test rerun, 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_updates staticmethods

[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_cloud so tests can be skipped when running from OVC/cloud.

[2.0.1] - 2025-04-25#

Changed#

  • Updated documentation with AI agent.