Skip to content

Unify structured configuration overrides - #1306

Draft
qianl-nv wants to merge 2 commits into
mainfrom
qianl/feature/unify-config-overrides
Draft

qianl-nv wants to merge 2 commits into
mainfrom
qianl/feature/unify-config-overrides

Conversation

@qianl-nv

Copy link
Copy Markdown
Collaborator

Unify graph and variation configclass overrides behind one validated nested-dictionary utility. Keep typed Experiment construction on full Hydra composition.

Why this change?

Graph environment configs and variations both apply values to existing Isaac Lab configclasses, but maintain separate override machinery. Variation composition also initializes dynamic Hydra schemas and clears global Hydra state even when typed Runs already provide a nested dictionary.

Typed Experiments solve a different problem. They construct environment, policy, Run, and Experiment dataclasses with selectors, interpolation, and Hydra override operators, so they should retain native Hydra composition.

What changes?

  • Move and rename apply_env_cfg_override to the shared apply_config_override utility.
  • Preserve _target_ validation, typed configclass materialization, atomic validation, nested object identity, and Newton solver synchronization.
  • Accept nested dictionaries and assignment-style dotlists for variations, then rebuild runtime sampler state through VariationBase.apply_cfg.
  • Pass typed Run variation dictionaries directly to the environment builder.
  • Keep ConfigStore, hydra.compose, and shared-default dotlist merging for typed Experiments.

The graph YAML field remains named env_cfg_override. Hydra add/delete operators remain available for Experiment overrides; variation dotlist input supports assignments only.

Usage example

Before:

from isaaclab_arena.environment_spec.env_cfg_override import apply_env_cfg_override

env_cfg = apply_env_cfg_override(env_cfg, override)

After:

from isaaclab_arena.hydra.config_override import apply_config_override

env_cfg = apply_config_override(env_cfg, override)

Validation

  • pre-commit run --all-files passes in a clean worktree.
  • 52 focused config override, Experiment Hydra, YAML-search, and variation tests pass.
  • 4 environment-config override simulation tests pass.
  • 2 variation override simulation tests pass.
  • Legacy graph variation handoff passes under SimulationApp.

Signed-off-by: Qian Lin <qianl@nvidia.com>
Signed-off-by: Qian Lin <qianl@nvidia.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant