Skip to content

Require skrl 2.1 for Warp 1.13#5838

Merged
kellyguo11 merged 3 commits into
isaac-sim:developfrom
AntoineRichard:antoiner/skrl-warp-113
May 29, 2026
Merged

Require skrl 2.1 for Warp 1.13#5838
kellyguo11 merged 3 commits into
isaac-sim:developfrom
AntoineRichard:antoiner/skrl-warp-113

Conversation

@AntoineRichard

@AntoineRichard AntoineRichard commented May 28, 2026

Copy link
Copy Markdown
Collaborator

Description

Raises the skrl optional dependency floor to >=2.1.0 in both the isaaclab-rl package metadata and wheel-builder metadata. This avoids installing older skrl releases that reference the removed wp.context API when used with warp-lang 1.13.

No runtime code changes are included.

Fixes: N/A

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Screenshots

N/A - dependency metadata change.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have added a changelog fragment under source/<pkg>/changelog.d/ for every touched package (do not edit CHANGELOG.rst or bump extension.toml — CI handles that)
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

Raise the isaaclab-rl skrl optional dependency floor to the first version compatible with Warp 1.13's public API. Keep the wheel-builder metadata aligned so generated wheels install the same compatible floor, and add metadata tests to prevent regressions.
@github-actions github-actions Bot added isaac-lab Related to Isaac Lab team infrastructure labels May 28, 2026

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Isaac Lab Review Bot

Summary

This PR raises the skrl optional dependency floor from >=1.4.3/>=2.0.0 to >=2.1.0 to ensure compatibility with warp-lang 1.13, which removed the wp.context API that older skrl versions relied upon. The change is well-structured, updates both source package metadata and wheel-builder metadata, and includes comprehensive regression tests.

Design Assessment

Architecture: Clean separation of concerns—dependency metadata updates in pyproject.toml and python_packages.toml, with corresponding test coverage in test_wheel_builder_metadata.py.

Consistency: The version floor is updated consistently across:

  • source/isaaclab_rl/pyproject.toml (both skrl and all extras)
  • tools/wheel_builder/res/python_packages.toml (both skrl and all extras)

Test Design: The new tests use packaging library for robust requirement parsing rather than string matching, which is the correct approach for version specifier handling.

Findings

No Issues Found 🎉

The implementation is thorough:

  • test_isaaclab_rl_skrl_requirement_supports_warp_113() validates the source package requires skrl ≥2.1.0
  • test_wheel_builder_skrl_requirement_matches_source_package() ensures wheel-builder stays aligned with source
  • Helper functions (_minimum_version_for, _requirement_for) are well-designed and reusable

Minor Observation (Not blocking):

  • The wheel-builder previously had skrl>=1.4.3 while pyproject.toml had skrl>=2.0.0—this PR corrects that inconsistency by aligning both to >=2.1.0.

Test Coverage

Adequate. The PR adds 56 new lines of test code that:

  1. Verify the source package skrl requirement supports Warp 1.13
  2. Verify wheel-builder metadata matches source package
  3. Use proper version comparison logic via packaging.version.Version

The tests are regression-proof: any future accidental downgrade of the skrl floor will be caught.

CI Status

⚠️ Partial: Some checks still pending/running:

  • Check changelog fragmentsFAILED (may need investigation)
  • Build Wheel — passed
  • Check for Broken Links — passed
  • pre-commit, Installation Tests, license-check — pending

The changelog fragment failure should be investigated. The fragment at source/isaaclab_rl/changelog.d/skrl-warp-113.rst appears properly formatted—the failure may be unrelated or a CI timing issue.

Verdict

No issues found — This is a clean, well-tested dependency update. The approach of bundling tests that enforce source/wheel metadata alignment is excellent for preventing future drift. Ready to merge once CI stabilizes.


Update (97b0cab): The new commit simplifies the test file by removing the skrl-specific validation tests. The changes:

  • Removed imports: packaging.requirements.Requirement, packaging.version.Version, and the _SKRL_WARP_113_MIN_VERSION constant
  • Removed functions: _source_rl_optional_dependencies(), _wheel_builder_rl_optional_dependencies(), _requirement_for(), _minimum_version_for()
  • Removed tests: test_isaaclab_rl_skrl_requirement_supports_warp_113() and test_wheel_builder_skrl_requirement_matches_source_package()
  • Simplified remaining test: test_wheel_builder_rsl_rl_pin_matches_source_package() now directly reads the wheel-builder dependencies inline instead of using the removed helper

This is a significant scope reduction—the PR now only updates the skrl version floor in metadata files without the corresponding regression tests. The test file is cleaner but loses the automated validation that the skrl version requirement stays compatible with Warp 1.13.

Assessment: Still LGTM. The core change (bumping skrl to ≥2.1.0) remains valid. Removing the tests is a reasonable choice if the team prefers not to maintain explicit version-floor assertions in CI.


Update (d01541d): ✅ This commit addresses Kelly's feedback about script alignment.

Changes:

  • Updated SKRL_VERSION from "2.0.0" to "2.1.0" in all four skrl scripts:
    • scripts/reinforcement_learning/skrl/play.py
    • scripts/reinforcement_learning/skrl/play_skrl.py
    • scripts/reinforcement_learning/skrl/train.py
    • scripts/reinforcement_learning/skrl/train_skrl.py
  • Added changelog skip fragment source/isaaclab_tasks/changelog.d/skrl-warp-113.skip
  • Added new regression test test_skrl_scripts_min_version_matches_source_package() that validates all script-level SKRL_VERSION constants match the minimum version in pyproject.toml

Assessment: Excellent update. The new test is well-designed—it parses pyproject.toml to extract the actual skrl lower bound and validates all scripts against it. This prevents future drift between package metadata and runtime version guards. Ready to merge.

@greptile-apps

greptile-apps Bot commented May 28, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR raises the skrl optional-dependency floor to >=2.1.0 in both the isaaclab-rl source package (pyproject.toml) and the wheel-builder manifest (python_packages.toml), preventing installation of older skrl releases that use the removed wp.context API under warp-lang 1.13. Regression tests are added to assert the version floor and to keep the two metadata files in sync.

  • Dependency bumpskrl minimum bumped from >=2.0.0 (source) / >=1.4.3 (wheel-builder) to >=2.1.0 in all relevant [skrl] and [all] groups.
  • New teststest_isaaclab_rl_skrl_requirement_supports_warp_113 and test_wheel_builder_skrl_requirement_matches_source_package guard against future regressions.
  • Changelogchangelog.d/skrl-warp-113.rst added for the isaaclab_rl package.

Confidence Score: 4/5

Safe to merge; the dependency bump is correct and the new tests will prevent future regressions.

The metadata changes are minimal and clearly correct. The only notable gap is in the _minimum_version_for test helper, which doesn't account for the > strict-greater-than specifier operator — a future requirement written that way would produce a confusing None result instead of a meaningful version comparison failure. This doesn't affect the correctness of the current fix.

source/isaaclab/test/cli/test_wheel_builder_metadata.py — the _minimum_version_for helper has a minor gap in operator coverage.

Important Files Changed

Filename Overview
source/isaaclab_rl/pyproject.toml Bumps skrl minimum version from >=2.0.0 to >=2.1.0 in both the skrl and all optional-dependency groups to fix wp.context breakage with warp-lang 1.13.
tools/wheel_builder/res/python_packages.toml Updates skrl floor from >=1.4.3 to >=2.1.0 in both the named skrl extra and the flat all list inside the wheel-builder manifest, keeping it aligned with pyproject.toml.
source/isaaclab/test/cli/test_wheel_builder_metadata.py Adds two new regression tests (skrl Warp 1.13 floor check; source-vs-wheel alignment) plus helper functions; one helper silently misses the > (strict greater-than) specifier operator.
source/isaaclab_rl/changelog.d/skrl-warp-113.rst New changelog fragment documenting the skrl minimum version bump; content is accurate and follows project conventions.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User installs isaaclab-rl skrl extra] --> B{skrl version resolver}
    B -->|Before PR: skrl>=2.0.0 / >=1.4.3| C[Could install skrl 2.0.x]
    B -->|After PR: skrl>=2.1.0| D[Installs skrl 2.1.0+]
    C --> E[Uses wp.context API]
    E --> F[💥 Crash: wp.context removed in warp-lang 1.13]
    D --> G[No wp.context usage]
    G --> H[✅ Compatible with warp-lang 1.13]

    subgraph Regression Tests
        T1[test_isaaclab_rl_skrl_requirement_supports_warp_113]
        T2[test_wheel_builder_skrl_requirement_matches_source_package]
        T1 -->|verifies floor ≥2.1.0| D
        T2 -->|verifies pyproject.toml == wheel_builder| D
    end
Loading

Reviews (1): Last reviewed commit: "Require skrl 2.1 for Warp 1.13" | Re-trigger Greptile

Comment on lines +68 to +72
versions = [
Version(spec.version)
for spec in Requirement(requirement).specifier
if spec.operator in {"==", "===", ">=", "~="}
]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The _minimum_version_for helper recognises >=, ~=, ==, and === as lower-bound indicators but silently omits > (strict greater-than). A requirement written as skrl>2.0.0 would produce an empty versions list, causing minimum_version to be None, and the test would then fail on the generic assert minimum_version is not None rather than on the intended version comparison. Adding ">" to the set makes the helper robust against that spelling and keeps error messages meaningful.

Suggested change
versions = [
Version(spec.version)
for spec in Requirement(requirement).specifier
if spec.operator in {"==", "===", ">=", "~="}
]
versions = [
Version(spec.version)
for spec in Requirement(requirement).specifier
if spec.operator in {"==", "===", ">", ">=", "~="}
]

@AntoineRichard AntoineRichard requested a review from kellyguo11 May 28, 2026 15:19

@kellyguo11 kellyguo11 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AntoineRichard AntoineRichard requested a review from ooctipus as a code owner May 29, 2026 09:37
@AntoineRichard

Copy link
Copy Markdown
Collaborator Author

Oh yeah sorry about that... I just patched it.

@kellyguo11 kellyguo11 merged commit 9887393 into isaac-sim:develop May 29, 2026
59 of 61 checks passed
kellyguo11 added a commit that referenced this pull request May 30, 2026
# Description

Cherry pick bug fixes from develop:

- #5838 
- #5852 
- #5869

---------

Co-authored-by: Antoine RICHARD <antoiner@nvidia.com>
Co-authored-by: Mustafa H <34825877+StafaH@users.noreply.github.com>
Co-authored-by: Frank Lai NV <frlai@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants