Fix flatdict version pin to allow 4.1.0+ (main)#5182
Conversation
flatdict==4.0.0 (and 4.0.1) are source distributions that require pkg_resources during the build step. On modern Python (3.10+) with newer pip/setuptools, the build isolation environment often lacks pkg_resources, causing installation to fail with: ModuleNotFoundError: No module named 'pkg_resources' flatdict 4.1.0 ships as a wheel and installs without build issues. The FlatDict API used in isaaclab (FlatDict constructor with delimiter) is fully compatible across 4.0.0 → 4.1.0. Fixes #4576
Greptile SummaryThis PR relaxes the Confidence Score: 5/5Safe to merge — single-line dependency relaxation with a valid motivation and no breaking API impact. The only finding is a minor P2 suggestion to tighten the lower bound to >=4.1.0 for precision. All P2 findings, and this does not block merging. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[pip install isaaclab] --> B{Resolve flatdict}
B -->|old pin ==4.0.0| C[flatdict 4.0.0\nsource dist .tar.gz]
B -->|new pin >=4.0.0\npip picks latest| D[flatdict 4.1.0+\npre-built wheel .whl]
C --> E[Build step required]
E --> F[pkg_resources missing]
F --> G[ModuleNotFoundError\nInstallation fails]
D --> H[No build step needed]
H --> I[Installs cleanly]
Reviews (1): Last reviewed commit: "fix: relax flatdict version pin to >=4.0..." | Re-trigger Greptile |
Test Results Summary3 690 tests 3 162 ✅ 2h 35m 6s ⏱️ Results for commit 1eeb2a8. ♻️ This comment has been updated with latest results. |
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> Signed-off-by: Antoine RICHARD <antoiner@nvidia.com>
# Description Merge changes from main branch: - #4875 - Adds Isaac-Stack-Cube-Franka-IK-Rel-v0 task variants - #4909 - Updates minor RSL-RL configclass docstring - #4934 - Updates Newton docs on main for 3.0 beta changes - #5182 - Fix flatdict version pin to allow 4.1.0+ - #5195 - Add NCCL troubleshooting notes - #5406 - Updates doc building job on main to match develop - #5311 - Update skrl integration for version 2.0.0 - #5482 - Adds nightly-changelog.yml on main - #5527 - Use isaaclab-bot GitHub App token for nightly changelog push - #5537 - Address deprecation warnings in nightly changelog workflow - #5746 - Fix .dockerignore for _isaac_sim symlink - #5745 - Parameterize nightly compile over configurable branches - #5546 - Fix swapped preserve_order docstrings - #5817 - Update skrl agent configurations in the Isaac Lab template
# Description Merge changes from main branch: - isaac-sim#4875 - Adds Isaac-Stack-Cube-Franka-IK-Rel-v0 task variants - isaac-sim#4909 - Updates minor RSL-RL configclass docstring - isaac-sim#4934 - Updates Newton docs on main for 3.0 beta changes - isaac-sim#5182 - Fix flatdict version pin to allow 4.1.0+ - isaac-sim#5195 - Add NCCL troubleshooting notes - isaac-sim#5406 - Updates doc building job on main to match develop - isaac-sim#5311 - Update skrl integration for version 2.0.0 - isaac-sim#5482 - Adds nightly-changelog.yml on main - isaac-sim#5527 - Use isaaclab-bot GitHub App token for nightly changelog push - isaac-sim#5537 - Address deprecation warnings in nightly changelog workflow - isaac-sim#5746 - Fix .dockerignore for _isaac_sim symlink - isaac-sim#5745 - Parameterize nightly compile over configurable branches - isaac-sim#5546 - Fix swapped preserve_order docstrings - isaac-sim#5817 - Update skrl agent configurations in the Isaac Lab template
Description
Relaxes the
flatdictversion pin from==4.0.0to>=4.0.0insource/isaaclab/setup.py.Motivation
flatdict==4.0.0(and 4.0.1) are source distributions (.tar.gz) that requirepkg_resourcesduring the build step. On modern Python (3.10+) with newer pip/setuptools, the build isolation environment often lackspkg_resources, causing installation to fail with:flatdict 4.1.0ships as a pre-built wheel (.whl) and installs cleanly without any build step.Changes
source/isaaclab/setup.py: Changedflatdict==4.0.0→flatdict>=4.0.0Verification
The
FlatDictAPI used in isaaclab (FlatDict(dict, delimiter='.')insimulation_context.pyandtest_simulation_render_config.py) is fully compatible across 4.0.0 → 4.1.0. Tested both the constructor and nested dict flattening.Fixes #4576