Name one removal release across all deprecation notices - #7840
Conversation
Deprecation warnings, docstrings and forwarding-shim messages disagreed about when deprecated symbols go away: some said 4.0 and some said 5.0, so a class and the alias or shim forwarding to it could advertise different releases. Settle on 5.0 everywhere. No symbol is added, renamed or removed.
There was a problem hiding this comment.
Isaac Lab Review Bot
The sweep consistently moves user-facing deprecation notices to a 5.0 removal target, but two adjacent lifecycle statements remain inconsistent: the migration guide still limits actuator aliases to 3.x, and maintainer TODOs still schedule the same aliases for removal in 4.0.
- Design and architecture: No control flow, symbol registration, or forwarding architecture changes. The lazy forwarding shims now consistently advertise 5.0, but lifecycle metadata should be aligned with that public commitment before merge.
- API: Public signatures and behavior are unchanged, but the migration guide now says actuator aliases remain accepted only through 3.x while also promising removal in 5.0. Update both 3.x acceptance statements to cover 4.x so the compatibility window is unambiguous.
- Implementation: The edited warning and error strings correctly use 5.0, and changelog fragments cover all touched packages. However, adjacent TODO comments in actuator_base.py and actuator_pd.py still direct maintainers to remove the same aliases in 4.0; those markers should also be changed to 5.0.
Minor fixes needed. Posted 2 actionable findings inline.
Automated review; human maintainers own approval decisions.
| Actuator configurations now use joint-qualified names for solver limits. Update active | ||
| configurations to the canonical fields below. The former names remain accepted with a | ||
| ``DeprecationWarning`` through the 3.x release line and will be removed in 4.0. | ||
| ``DeprecationWarning`` through the 3.x release line and will be removed in 5.0. |
There was a problem hiding this comment.
🟡 Warning · Api — Acceptance window still bounded at 3.x
This sentence now states the deprecated actuator limit fields are accepted "through the 3.x release line" but removed in 5.0, and line 849 repeats the 3.x bound. The two halves of the same contract now disagree about 4.x availability, so users cannot plan migration from this guide. Update both acceptance statements to cover through 4.x, matching the new 5.0 removal.
| warnings.warn( | ||
| "The effort_limit constructor argument is deprecated. Use actuator_effort_limit instead; " | ||
| "effort_limit will be removed in 4.0.", | ||
| "effort_limit will be removed in 5.0.", |
There was a problem hiding this comment.
🟡 Warning · Implementation — Adjacent removal TODOs still name 4.0
This warning now promises removal in 5.0, but the maintainer markers directly above (lines 186 and 196) and the equivalent ones in actuator_pd.py (lines 64, 65, 85) still read TODO: Deprecated. Remove in 4.0.. Before this change they agreed with the warnings; now a maintainer scheduling the cleanup from those TODOs would drop the aliases one release earlier than every notice advertises. Sweep these comments to 5.0.
|
| ^^^^^^^ | ||
|
|
||
| * Changed the announced removal release in deprecation warnings, docstrings and forwarding-shim | ||
| messages from ``4.0`` to ``5.0``, so every deprecated symbol names the same release. Some |
There was a problem hiding this comment.
Removal sweep remains incomplete
This changelog claims that every deprecated symbol now names 5.0, but UsdPhysicsDriveCfg.max_effort in source/isaaclab/isaaclab/sim/schemas/schemas_cfg.py still promises removal in 4.0, while the updated JointDriveBaseCfg.max_effort notice in the same file says 5.0. The actuator compatibility module also still schedules its aliases for 4.0. Users and maintainers therefore continue to see conflicting removal schedules. Update the remaining notices or narrow this changelog claim.
| Actuator configurations now use joint-qualified names for solver limits. Update active | ||
| configurations to the canonical fields below. The former names remain accepted with a | ||
| ``DeprecationWarning`` through the 3.x release line and will be removed in 4.0. | ||
| ``DeprecationWarning`` through the 3.x release line and will be removed in 5.0. |
There was a problem hiding this comment.
This guidance says the aliases remain accepted “through the 3.x release line” but are removed in 5.0, without explaining whether they are supported during 4.x. The same “through 3.x” statement is repeated below, while the runtime warning now promises removal in 5.0. Clarify that the aliases remain available through 4.x so users can plan their migration reliably.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Deprecation warnings, docstrings and forwarding-shim messages disagreed about when deprecated symbols go away: some said 4.0 and some said 5.0, so a class and the alias or shim forwarding to it could advertise different releases. The 5.0 notices are a leftover from an older package numbering. Settle on 4.0, the next major after the 3.0 release in progress. No symbol is added, renamed or removed.
Deprecation warnings, docstrings and forwarding-shim messages disagreed about when deprecated symbols go away: some said 4.0, others 5.0, so a class and the alias or shim forwarding to it could advertise different releases. Settle on 3.1, which is what the repository already promises for symbols deprecated in the 3.0 cycle. No symbol is added, renamed or removed.
|
run-ci |
…7904) ## Description Backports ten `develop` PRs to `release/3.0.0`, including the PyTorch 2.12/CUDA 13.0 upgrade, the near-singular OSC fix, and the complete cfg-first cloning and schema-fragment migrations. The audit covers September 17, 2026 00:00 UTC through `develop` commit `4269c29a39e463dd07c74a9704d890d7a5c01e08` (September 19, 23:55 UTC), against release base `970d21ef48057a2efc3d749c0f2abab8e7e0c30e`. | Source PR | Included change | | --- | --- | | #7777 | Refresh Newton solver transforms after fixed-root pose writes | | #7608 | Make direct cloning cfg-first, including assets, callers, templates, tests, and migration documentation | | #7895 | Apply the existing CI exclusion for Franka cable/cloth/soft kitless rendering tests | | #7872 | Load the CUDA runtime matching PyTorch for Newton graph capture | | #7831 | Check authored Newton mesh-collision schema tokens correctly | | #7834 | Build documentation with the extra that provides Sphinx | | #7838 | Migrate maintained consumers to physics schema fragments, including readers and overrides | | #7840 | Consistently name Isaac Lab 3.1 as the deprecation removal release | | #7903 | Handle near-singular operational-space control | | #7674 | Upgrade PyTorch to 2.12, TorchVision to 0.27, and the CUDA stack to 13.0, including installer, wheel, and cuRobo compatibility changes | All 305 changed non-lock files match the audited `develop` snapshot exactly. The remaining file, `uv.lock`, matches that snapshot after substituting the package versions from the release branch's existing manifests; all 418 package entries were checked. Existing release package versions, compiled changelogs, documentation routing, and OVRTX compatibility code remain intact, including the #7880 revert. Source commit hashes are recorded in the commit messages. ### Already present #7866, #7870, #7867, #7869, and #7868 were included in #7851; #7819 was backported by #7884; #7883, #7885, and #7887 were backported by #7889. #7874, #7888, #7773, #7886, and #7042 were also already present. The three automatic changelog/version compilation commits are excluded; the release branch compiles its own fragments and maintains its own versions. ## Type of change - Release integration/backport - Bug fixes and documentation updates - Breaking changes already accepted for the 3.0 cloning and schema migrations; their migration guidance and changelog fragments are included ## Validation - `uv run --no-sync isaaclab -f`: all checks passed using the existing shared environment and the release base for changelog validation. - Focused cloning, OSC feature, schema parity/shim, CLI, and task configuration suite: **283 passed**. - Newton fixed-root updates and CUDA runtime/capture regressions: **14 passed**. - Complete OSC simulation suite: **21 passed**. - Mesh-collision fragments: **17 passed**; cfg-first cloning integration: **16 passed**; scene construction/ownership: **7 passed**. - The above **358 tests passed with PyTorch 2.11**. - With **PyTorch 2.12/CUDA 13.0**: installer/metadata/Docker tests **91 passed**; CPU/GPU OSC feature tests **17 passed**; complete OSC simulation suite **21 passed**. - `uv lock --check`: passed; release package manifests match their lockfile entries. - Repository skill validation: **23 skills passed**. - File-by-file source audit, release-metadata preservation checks, and `git diff --check`: passed. Local simulation used RTX 5090 and Isaac Sim 6.0.1 with PyTorch 2.11 and 2.12. The full Docker image build and fresh installation matrix were not rerun locally for this backport. Release CI uses its pinned Isaac Sim 6.1 image and remains the authoritative full integration check. Kit-dependent suites run in separate processes to avoid loading standalone USD before Kit. ## Release backport Not applicable: this PR targets `release/3.0.0` directly. ## Checklist - [x] Ran the complete pre-commit command. - [x] Included the original migration documentation, regression tests, and changelog fragments for every changed package. - [x] Preserved source attribution and recorded every source commit. - [x] Preserved the release branch's versions and existing release-specific changes. --------- Co-authored-by: vidurv-nvidia <vidurv@nvidia.com> Co-authored-by: ooctipus <ooctipus@users.noreply.github.com>
Description
Deprecation notices across the repo disagree about when the deprecated symbols actually go away. On
developtoday some say4.0and some say5.0— sometimes for a class and the shim that forwards to it, so a user reading theImportErrorgets a different release than the class docstring gives them.Settles on 3.1, which is what the repository already promises for things deprecated in the 3.0 cycle:
The
4.0and5.0notices are leftovers from earlier numbering (5.0from the 4.6.x package versions, where 5.0 was the next major).Touches four unrelated deprecation families — actuators, articulation methods, module forwarding shims, and schema/material cfg moves — because the inconsistency is spread across all of them. No symbol is added, renamed, or removed; this is text only.
source/isaaclab/docs/CHANGELOG.rstis left alone: its version references are historical release entries, not live promises.Type of change
Testing
Text-only, but it edits live warning strings that tests assert on, so the assertions moved with them:
test_schemas_shim.py→ 142 passedsource/isaaclab/test/actuators/→ 288 passed (two files excluded: they fail at collection onNo module named 'newton.actuators', which reproduces on cleandevelop)Checklist
pre-commitchecks with./isaaclab.sh --formatsource/<pkg>/changelog.d/for every touched packageCONTRIBUTORS.mdor my name already exists there