Skip to content

Commit 9ae55e2

Browse files
Merge branch 'main' into reb/surface_gripper
Signed-off-by: rebeccazhang0707 <168459200+rebeccazhang0707@users.noreply.github.com>
2 parents 6edd402 + b8710f4 commit 9ae55e2

File tree

212 files changed

+10874
-1825
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

212 files changed

+10874
-1825
lines changed

.github/CODEOWNERS

Lines changed: 54 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -16,62 +16,81 @@
1616

1717
# App experience files
1818
# These are the files that are used to launch the app with the correct settings and configurations
19-
/apps/ @kellyguo11 @hhansen-bdai @Mayankm96 @Dhoeller19
19+
/apps/ @kellyguo11 @hhansen-bdai @Mayankm96
2020

2121
# Core Framework
22-
/source/isaaclab/ @Dhoeller19 @Mayankm96 @jsmith-bdai @kellyguo11
23-
/source/isaaclab/isaaclab/actuators @Dhoeller19 @Mayankm96 @nikitardn @jtigue-bdai
22+
/source/isaaclab/isaaclab/actuators @Mayankm96 @jtigue-bdai
2423
/source/isaaclab/isaaclab/app @hhansen-bdai @kellyguo11
25-
/source/isaaclab/isaaclab/assets @jsmith-bdai @Dhoeller19 @kellyguo11 @Mayankm96 @jtigue-bdai
26-
/source/isaaclab/isaaclab/assets/deformable_object @kellyguo11 @Mayankm96 @masoudmoghani
24+
/source/isaaclab/isaaclab/assets @kellyguo11 @Mayankm96 @jtigue-bdai
25+
/source/isaaclab/isaaclab/assets/deformable_object @masoudmoghani @ooctipus
2726
/source/isaaclab/isaaclab/controllers @Mayankm96
28-
/source/isaaclab/isaaclab/envs @jsmith-bdai @Dhoeller19 @kellyguo11 @Mayankm96
29-
/source/isaaclab/isaaclab/envs/manager_based_* @jsmith-bdai @Dhoeller19 @Mayankm96
27+
/source/isaaclab/isaaclab/envs/manager_based_* @Mayankm96 @jtigue-bdai @ooctipus
3028
/source/isaaclab/isaaclab/envs/direct_* @kellyguo11
31-
/source/isaaclab/isaaclab/managers @jsmith-bdai @Dhoeller19 @Mayankm96
32-
/source/isaaclab/isaaclab/sensors @jsmith-bdai @Dhoeller19 @pascal-roth @Mayankm96 @jtigue-bdai
29+
/source/isaaclab/isaaclab/envs/mdp @ooctipus
30+
/source/isaaclab/isaaclab/envs/mimic_* @peterd-NV
31+
/source/isaaclab/isaaclab/envs/ui @ooctipus @ossamaAhmed
32+
/source/isaaclab/isaaclab/envs/utils @Toni-SM
33+
/source/isaaclab/isaaclab/managers @jtigue-bdai @Mayankm96 @ooctipus
34+
/source/isaaclab/isaaclab/sensors/sensor_base* @pascal-roth
3335
/source/isaaclab/isaaclab/sensors/camera @kellyguo11 @pascal-roth
34-
/source/isaaclab/isaaclab/sensors/contact_sensor @jtigue-bdai
35-
/source/isaaclab/isaaclab/sensors/frame_transformer @jsmith-bdai
36-
/source/isaaclab/isaaclab/sensors/ray_caster @pascal-roth @Dhoeller19
37-
/source/isaaclab/isaaclab/sim @Mayankm96 @jsmith-bdai
38-
/source/isaaclab/isaaclab/sim/simulation_context.py @Dhoeller19 @kellyguo11
39-
/source/isaaclab/isaaclab/terrains @Dhoeller19 @Mayankm96 @nikitardn
40-
/source/isaaclab/isaaclab/utils @Mayankm96 @jsmith-bdai
41-
/source/isaaclab/isaaclab/utils/modifiers @jtigue-bdai
36+
/source/isaaclab/isaaclab/sensors/contact_sensor @jtigue-bdai @ooctipus
37+
/source/isaaclab/isaaclab/sensors/imu @jtigue-bdai @pascal-roth
38+
/source/isaaclab/isaaclab/sensors/ray_caster @pascal-roth
39+
/source/isaaclab/isaaclab/sensors/frame_transformer @jtigue-bdai
40+
/source/isaaclab/isaaclab/sim/converters @Mayankm96 @jtigue-bdai @kellyguo11
41+
/source/isaaclab/isaaclab/sim/schemas @Mayankm96 @jtigue-bdai @kellyguo11
42+
/source/isaaclab/isaaclab/sim/spawners @Mayankm96 @jtigue-bdai @ooctipus
43+
/source/isaaclab/isaaclab/sim/simulation_* @matthewtrepte @ossamaAhmed @kellyguo11
44+
/source/isaaclab/isaaclab/terrains @Mayankm96
45+
/source/isaaclab/isaaclab/ui @pascal-roth @jtigue-bdai
46+
/source/isaaclab/isaaclab/utils/buffers @ooctipus @jtigue-bdai
47+
/source/isaaclab/isaaclab/utils/datasets @Peter-NV
4248
/source/isaaclab/isaaclab/utils/interpolation @jtigue-bdai
49+
/source/isaaclab/isaaclab/utils/io @ooctipus
50+
/source/isaaclab/isaaclab/utils/modifiers @jtigue-bdai
4351
/source/isaaclab/isaaclab/utils/noise @jtigue-bdai @kellyguo11
44-
/source/isaaclab/isaaclab/utils/warp @Dhoeller19 @pascal-roth
45-
/source/isaaclab/isaaclab/utils/assets.py @Dhoeller19 @kellyguo11 @Mayankm96
46-
/source/isaaclab/isaaclab/utils/math.py @jsmith-bdai @Dhoeller19 @Mayankm96
47-
/source/isaaclab/isaaclab/utils/configclass.py @Mayankm96 @Dhoeller19
52+
/source/isaaclab/isaaclab/utils/warp @pascal-roth
53+
/source/isaaclab/isaaclab/utils/assets.py @kellyguo11 @Mayankm96
54+
/source/isaaclab/isaaclab/utils/math.py @jtigue-bdai @Mayankm96
55+
/source/isaaclab/isaaclab/utils/configclass.py @Mayankm96
56+
/source/isaaclab/isaaclab/utils/sensors.py @kellyguo11 @pascal-roth
4857

4958
# RL Environment
50-
/source/isaaclab_tasks/ @Dhoeller19 @Mayankm96 @jsmith-bdai @kellyguo11
51-
/source/isaaclab_tasks/isaaclab_tasks/direct @Dhoeller19 @kellyguo11
52-
/source/isaaclab_tasks/isaaclab_tasks/manager_based @Dhoeller19 @Mayankm96 @jsmith-bdai @jtigue-bdai
59+
/source/isaaclab_tasks/isaaclab_tasks/direct @kellyguo11
60+
/source/isaaclab_tasks/isaaclab_tasks/manager_based @Mayankm96
61+
/source/isaaclab_tasks/isaaclab_tasks/utils @Mayankm96
5362

5463
# Assets
55-
/source/isaaclab_assets/isaaclab_assets/ @Dhoeller19 @pascal-roth @jsmith-bdai
64+
/source/isaaclab_assets/isaaclab_assets/ @pascal-roth
65+
66+
# Mimic
67+
/source/isaaclab_mimic/isaaclab_mimic @peterd-NV
68+
69+
# RL
70+
/source/isaaclab_rl/isaaclab_rl/rsl_rl @Mayankm96 @ClemensSchwarke
71+
/source/isaaclab_rl/isaaclab_rl/rl_games @Toni-SM
72+
/source/isaaclab_rl/isaaclab_rl/sb3 @Toni-SM
73+
/source/isaaclab_rl/isaaclab_rl/skrl @Toni-SM
5674

5775
# Standalone Scripts
58-
/scripts/demos/ @jsmith-bdai @jtigue-bdai @Dhoeller19 @kellyguo11 @Mayankm96
59-
/scripts/environments/ @Mayankm96
60-
/scripts/tools/ @jsmith-bdai @Mayankm96
61-
/scripts/tutorials/ @jsmith-bdai @pascal-roth @kellyguo11 @Dhoeller19 @Mayankm96
62-
/scripts/reinforcement_learning/ @jsmith-bdai @Dhoeller19 @kellyguo11 @Mayankm96
63-
/scripts/imitation_learning/ @jsmith-bdai @Dhoeller19 @kellyguo11 @Mayankm96
76+
/scripts/benchmarks/ @ooctipus @kellyguo11
77+
/scripts/demos/ @ooctipus
78+
/scripts/environments/ @ooctipus
79+
/scripts/imitation_learning/ @Peter-NV
80+
/scripts/reinforcement_learning/ @ooctipus @Toni-NV
81+
/scripts/tools/ @jtigue-bdai @Mayankm96
82+
/scripts/tutorials/ @jtigue-bdai @pascal-roth
6483

6584
# Github Actions
6685
# This list is for people wanting to be notified every time there's a change
6786
# related to Github Actions
68-
/.github/ @kellyguo11 @jsmith-bdai
87+
/.github/ @kellyguo11 @hhansen-bdai
6988

7089
# Visual Studio Code
7190
/.vscode/ @hhansen-bdai @Mayankm96
7291

7392
# Infrastructure (Docker, Docs, Tools)
7493
/docker/ @hhansen-bdai @pascal-roth
75-
/docs/ @jsmith-bdai @Dhoeller19 @kellyguo11 @Mayankm96
76-
/tools/ @hhansen-bdai @jsmith-bdai @Dhoeller19
77-
/isaaclab.* @hhansen-bdai @Dhoeller19 @Mayankm96 @kellyguo11
94+
/docs/ @jtigue-bdai @kellyguo11 @Mayankm96
95+
/tools/ @hhansen-bdai
96+
/isaaclab.* @hhansen-bdai @Mayankm96 @kellyguo11

.github/workflows/build.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ permissions:
2525
env:
2626
NGC_API_KEY: ${{ secrets.NGC_API_KEY }}
2727
ISAACSIM_BASE_IMAGE: ${{ vars.ISAACSIM_BASE_IMAGE || 'nvcr.io/nvidia/isaac-sim' }}
28-
ISAACSIM_BASE_VERSION: ${{ vars.ISAACSIM_BASE_VERSION || '4.5.0' }}
28+
ISAACSIM_BASE_VERSION: ${{ vars.ISAACSIM_BASE_VERSION || '5.0.0' }}
2929
DOCKER_IMAGE_TAG: isaac-lab-dev:${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || github.ref_name }}-${{ github.sha }}
3030

3131
jobs:
@@ -186,4 +186,5 @@ jobs:
186186
reporter: java-junit
187187
fail-on-error: true
188188
only-summary: false
189+
max-annotations: '50'
189190
report-title: "IsaacLab Test Results - ${{ github.workflow }}"

.github/workflows/cherry-pick.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
2+
# All rights reserved.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
6+
name: Cherry-pick from main to devel
7+
8+
on:
9+
push:
10+
branches:
11+
- main
12+
13+
jobs:
14+
cherry-pick:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v3
19+
with:
20+
fetch-depth: 0 # fetch full history to access other branches
21+
22+
- name: Set up Git config
23+
run: |
24+
git config user.name "github-actions[bot]"
25+
git config user.email "github-actions[bot]@users.noreply.github.com"
26+
27+
- name: Get latest commit SHA on main
28+
id: get_commit
29+
run: echo "::set-output name=sha::$(git rev-parse HEAD)"
30+
31+
- name: Checkout devel branch
32+
run: git checkout devel
33+
34+
- name: Cherry-pick latest commit from main
35+
run: |
36+
git cherry-pick ${{ steps.get_commit.outputs.sha }}
37+
38+
- name: Push changes to devel
39+
env:
40+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41+
run: |
42+
git push origin devel

.github/workflows/daily-compatibility.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,11 +181,15 @@ jobs:
181181
retention-days: 30
182182
compression-level: 9
183183

184-
- name: Publish Test Results
185-
uses: EnricoMi/publish-unit-test-result-action@v2
184+
- name: Report Test Results
185+
uses: dorny/test-reporter@v1
186186
if: always()
187187
with:
188-
files: "reports/combined-compat-results.xml"
188+
name: IsaacLab Compatibility Test Results
189+
path: reports/combined-compat-results.xml
190+
reporter: java-junit
191+
max-annotations: '50'
192+
report-title: "IsaacLab Compatibility Test Results - ${{ github.workflow }}"
189193

190194
notify-compatibility-status:
191195
needs: [combine-compat-results]

.github/workflows/license-check.yaml

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# Copyright (c) 2022-2025, The Isaac Lab Project Developers (https://github.com/isaac-sim/IsaacLab/blob/main/CONTRIBUTORS.md).
2+
# All rights reserved.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
6+
name: Check Python Dependency Licenses
7+
8+
on:
9+
pull_request:
10+
types: [opened, synchronize, reopened]
11+
12+
concurrency:
13+
group: ${{ github.workflow }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
license-check:
18+
runs-on: ubuntu-24.04
19+
20+
steps:
21+
- name: Checkout code
22+
uses: actions/checkout@v3
23+
24+
# - name: Install jq
25+
# run: sudo apt-get update && sudo apt-get install -y jq
26+
27+
- name: Set up Python
28+
uses: actions/setup-python@v4
29+
with:
30+
python-version: '3.10' # Adjust as needed
31+
32+
- name: Install dependencies using ./isaaclab.sh -i
33+
run: |
34+
# first install isaac sim
35+
pip install --upgrade pip
36+
pip install 'isaacsim[all,extscache]==4.5.0' --extra-index-url https://pypi.nvidia.com
37+
chmod +x ./isaaclab.sh # Make sure the script is executable
38+
# install all lab dependencies
39+
./isaaclab.sh -i
40+
41+
- name: Install pip-licenses
42+
run: |
43+
pip install pip-licenses
44+
pip install -r tools/template/requirements.txt
45+
pip install -r docs/requirements.txt
46+
47+
# Optional: Print the license report for visibility
48+
- name: Print License Report
49+
run: pip-licenses --from=mixed --format=markdown
50+
51+
- name: Check licenses against whitelist and exceptions
52+
run: |
53+
# Define the whitelist of allowed licenses
54+
ALLOWED_LICENSES="MIT Apache BSD ISC zlib"
55+
56+
# Load the exceptions list from the exceptions.json file
57+
EXCEPTIONS_FILE=".github/workflows/license-exceptions.json"
58+
59+
# Initialize counter for failed packages
60+
FAILED_PACKAGES=0
61+
62+
# Get the list of installed packages and their licenses
63+
pip-licenses --from=mixed --format=json > licenses.json
64+
65+
# Check the output of pip-licenses to ensure it is valid JSON
66+
if ! jq empty licenses.json; then
67+
echo "ERROR: Failed to parse pip-licenses output. Exiting..."
68+
exit 1
69+
fi
70+
71+
# Split ALLOWED_LICENSES into individual words
72+
IFS=' ' read -r -a allowed_licenses <<< "$ALLOWED_LICENSES"
73+
74+
# Loop through the installed packages and their licenses
75+
for pkg in $(jq -r '.[].Name' licenses.json); do
76+
LICENSE=$(jq -r --arg pkg "$pkg" '.[] | select(.Name == $pkg) | .License' licenses.json)
77+
78+
# Check if any of the allowed licenses are a substring of the package's license
79+
match_found=false
80+
for allowed_license in "${allowed_licenses[@]}"; do
81+
if [[ "$LICENSE" == *"$allowed_license"* ]]; then
82+
match_found=true
83+
break
84+
fi
85+
done
86+
87+
if [ "$match_found" = false ]; then
88+
# Check if the package is in the exceptions list
89+
EXCEPTION=$(jq -r --arg pkg "$pkg" --arg license "$LICENSE" \
90+
'.[] | select(.package == $pkg)' "$EXCEPTIONS_FILE")
91+
92+
# If the package is in the exceptions list
93+
if [ -n "$EXCEPTION" ]; then
94+
# If the license is provided in the exceptions list, check the license
95+
EXCEPTION_LICENSE=$(echo "$EXCEPTION" | jq -r '.license')
96+
97+
# echo "Comparing licenses for $pkg:"
98+
# echo " EXCEPTION_LICENSE='${EXCEPTION_LICENSE}' (len=${#EXCEPTION_LICENSE})"
99+
# echo " LICENSE='${LICENSE}' (len=${#LICENSE})"
100+
101+
# If the exceptions list has a license and doesn't match the current license
102+
if [ "$EXCEPTION_LICENSE" != "null" ] && [ "$EXCEPTION_LICENSE" != "$LICENSE" ]; then
103+
echo "ERROR: $pkg has license: $LICENSE"
104+
FAILED_PACKAGES=$((FAILED_PACKAGES + 1)) # Increment the counter
105+
fi
106+
else
107+
# If the package is not in the exceptions list
108+
echo "ERROR: $pkg has license: $LICENSE"
109+
FAILED_PACKAGES=$((FAILED_PACKAGES + 1)) # Increment the counter
110+
fi
111+
fi
112+
done
113+
114+
# After all packages are processed, check if there were any errors
115+
if [ "$FAILED_PACKAGES" -gt 0 ]; then
116+
echo "ERROR: $FAILED_PACKAGES packages were flagged."
117+
exit 1 # Fail the build
118+
else
119+
echo "All packages were checked."
120+
fi
121+
122+
# Print pipdeptree
123+
- name: Print pipdeptree
124+
run: |
125+
pip install pipdeptree
126+
pipdeptree

0 commit comments

Comments
 (0)