ioailab provides Galbot-specific configs, assets, task registration, planner
helpers, and action/sensor utilities for Isaac Lab. It is not an IsaacLab
wrapper: user code should still import IsaacLab directly for env construction,
PhysX execution, managers, sensors, and env.step(...).
All development and verification runs inside Docker. Before make test,
make lint, make typecheck, make format, or any python command, enter the
dev container with make shell (or make shell-gui for GUI tasks).
make build # Build the dev image after dependency/Docker changes
make shell # Open a dev container
make shell-gui # Open a GUI-enabled container
make format # Run ruff format
make lint # Run ruff check plus advisory ty warnings
make typecheck # Run advisory ty check
make test # Run pytest
- Run code with
python, notuv run python; inside the container,pythonresolves to Isaac Sim's Python runtime. - Add dependencies with
uv add --no-sync <pkg>, then rebuild the image. - Source lives under
src/ioailab; tests live undertests/. - Develop test-first when changing behavior.
- Before every commit, run
make format && make lint && make typecheck && make test. - Follow Google style: clear names, explicit control flow, Google-style docstrings.
- Use underscores in new file names (
my_module.py, notmy-module.py). - If a change affects a user interface, update
docs/andCHANGELOG.mdin the same commit.
- Prefer direct migrations over compatibility shims. Unless explicitly requested, update real callers, docs, tests, and changelog instead of keeping old import paths or API aliases alive.
- If removing an API/path, prove the new seam with tests or static checks that fail on reintroduced stale imports.
- Follow the IsaacLab 3.0 migration norms when touching IsaacLab-facing code.
Use glab for GitLab issues and merge requests.
glab issue list
glab issue view <iid>
glab issue note <iid> --message "..."Before creating or updating an MR:
- Commit the final change.
- Confirm
git status --short --branchis clean except intentional untracked local files. - Run the relevant validation, normally
make format && make lint && make typecheck && make test. - If validation fails and the user did not explicitly override, do not create or update the MR.
git push -u origin <branch>
glab mr create --target-branch develop --source-branch <branch> \
--title "..." --description "..."
glab mr list
glab mr view <iid>
glab mr note <iid> --message "..."MR descriptions should include: summary, validation evidence, linked issues, and known risks or skipped checks.
- Keep commit messages short and imperative.
- Branch names:
<type>/<topic>— types arefeat/,fix/,refactor/,docs/. - Prefer
maketargets over raw Docker Compose commands in docs.