Skip to content

Commit 96db8a8

Browse files
author
Horde
committed
Use uv for bisection runtime bootstrap
Select a supported Python version independently of the host default so the clean-clone Skill workflow works on systems that still provide Python 3.10.
1 parent 39c9b7b commit 96db8a8

6 files changed

Lines changed: 24 additions & 16 deletions

File tree

skills/developer/perf-bisection/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ This Skill contains instructions, not the executable runtime. Before starting:
3333
2. Prefer the repository-local executables
3434
`$REPO_ROOT/.venv-bisection/bin/isaaclab-bisect` and
3535
`$REPO_ROOT/.venv-bisection/bin/isaaclab-bisect-skill`.
36-
3. If they are absent, show the two local installation commands in the
36+
3. If they are absent, show the repository-local installation plan in the
3737
[runtime bootstrap](reference.md#runtime-bootstrap) and obtain one explicit
3838
confirmation before creating the environment or installing the package.
3939
4. Verify both executables with `--help`, then use their exact paths for the

skills/developer/perf-bisection/evaluations.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,18 +138,21 @@ Known failure modes:
138138

139139
## Scenario 9: Runtime Is Not Installed
140140

141-
Query: "Bisect this regression from my Isaac Lab checkout."
141+
Query: "Bisect this regression from my Isaac Lab checkout; system python3 is
142+
3.10."
142143

143144
Expected behavior:
144145

145146
- Detects `tools/perf_bisection/pyproject.toml`.
146147
- Shows the repository-local virtual-environment installation plan.
148+
- Uses `uv` to select Python 3.12 instead of the incompatible system Python.
147149
- Obtains confirmation before installing and verifies both executables.
148150
- Uses `.venv-bisection/bin/isaaclab-bisect` for the run.
149151

150152
Known failure modes:
151153

152154
- Assumes `isaaclab-bisect` is already on `PATH`.
155+
- Creates an unusable environment from the system's Python 3.10.
153156
- Installs packages or builds a container without confirmation.
154157

155158
## Scenario 10: Skill Installed Without Isaac Lab

skills/developer/perf-bisection/reference.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,16 @@ If either executable is missing, show this plan and obtain one confirmation
3131
before running it:
3232

3333
```bash
34-
python3 -m venv "$REPO_ROOT/.venv-bisection"
35-
"$REPO_ROOT/.venv-bisection/bin/python" -m pip install "$REPO_ROOT/tools/perf_bisection"
34+
uv venv --python 3.12 --clear "$REPO_ROOT/.venv-bisection"
35+
uv pip install \
36+
--python "$REPO_ROOT/.venv-bisection/bin/python" \
37+
"$REPO_ROOT/tools/perf_bisection"
3638
"$REPO_ROOT/.venv-bisection/bin/isaaclab-bisect" --help
3739
"$REPO_ROOT/.venv-bisection/bin/isaaclab-bisect-skill" --help
3840
```
3941

42+
If `uv` is unavailable, stop and route host onboarding through the official
43+
Isaac Lab installation workflow. Do not fall back to a pre-3.11 system Python.
4044
Use these exact repository-local executable paths afterward. For
4145
`docker-reconstruct`, also check for the selected image with
4246
`docker image inspect`. If it is absent, obtain confirmation before building it

tools/perf_bisection/README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,23 @@ integration point.
1919

2020
## Install from Isaac Lab
2121

22-
The agent is maintained inside the Isaac Lab repository. Python 3.11 or newer
23-
is required. Use a virtual environment on distributions such as Ubuntu 24.04
24-
that protect the system Python environment. Minimal Ubuntu installations may
25-
need the distribution's `python3-venv` package first:
22+
The agent is maintained inside the Isaac Lab repository and requires Python
23+
3.11 or newer. Use Isaac Lab's standard `uv` tooling to select Python 3.12
24+
independently of the host's default `python3`:
2625

2726
```bash
28-
python3 -m venv .venv-bisection
29-
.venv-bisection/bin/python -m pip install ./tools/perf_bisection
27+
uv venv --python 3.12 .venv-bisection
28+
uv pip install --python .venv-bisection/bin/python ./tools/perf_bisection
3029
.venv-bisection/bin/isaaclab-bisect --help
3130
```
3231

3332
For development:
3433

3534
```bash
36-
python3 -m venv .venv-bisection
37-
.venv-bisection/bin/python -m pip install --editable "./tools/perf_bisection[test]"
35+
uv venv --python 3.12 .venv-bisection
36+
uv pip install \
37+
--python .venv-bisection/bin/python \
38+
--editable "./tools/perf_bisection[test]"
3839
```
3940

4041
Real benchmark runs require Linux, Git, an NVIDIA GPU/driver compatible with the

tools/perf_bisection/docs/development.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ From the Isaac Lab repository root, create an environment with Python 3.11 or
1313
newer, then install the package:
1414

1515
```bash
16-
python3 -m venv .venv-bisection
16+
uv venv --python 3.12 .venv-bisection
1717
source .venv-bisection/bin/activate
18-
python -m pip install --editable "./tools/perf_bisection[test]"
18+
uv pip install --python .venv-bisection/bin/python --editable "./tools/perf_bisection[test]"
1919
```
2020

2121
Run the CPU-only validation:

tools/perf_bisection/docs/releasing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ Before announcing a release to other developers, validate from a new clone on a
4343
host that does not have the source checkout on `PYTHONPATH`:
4444

4545
```bash
46-
python3 -m venv /tmp/isaaclab-bisect-release
46+
uv venv --python 3.12 /tmp/isaaclab-bisect-release
4747
source /tmp/isaaclab-bisect-release/bin/activate
48-
python -m pip install ./tools/perf_bisection
48+
uv pip install --python /tmp/isaaclab-bisect-release/bin/python ./tools/perf_bisection
4949
isaaclab-bisect --help
5050
```
5151

0 commit comments

Comments
 (0)