Languages: English | 简体中文
- Fork and clone the repository.
- Install dependencies for your platform:
- macOS (MPS, installs PyPI torch wheels):
make setup-motrix(ormake setup-mujoco) - Linux default (installs PyTorch cu128 wheels; requires an NVIDIA GPU/driver supported by current PyTorch cu128 wheels):
make setup - Linux AMD / ROCm workstation:
make sync-rocm, then run commands withuv run --no-sync ... - For direct uv setup, use
uv sync --extra mujoco --extra motrix; replace it with--extra mujocoor--extra motrixfor a single backend - Physics adapters are supplied by the production PyPI package
unisim-core>=0.1.14(import namespaceunisim).
- macOS (MPS, installs PyPI torch wheels):
- Create a branch such as
git checkout -b docs/improve-readmeorgit checkout -b fix/backend-bug.
- Always use
uv run; do not invokepythonoutsideuv run - Run
make checkbefore code-related commits - Keep backup files, temporary exports, and legacy compatibility copies out of the source tree; do not commit artifacts such as
*.bak,*.tmp,*.old,*.orig, or editor backup files ending in~ - For user-facing workflow changes, keep
README.md,CONTRIBUTING.md, and the matching localized docs underdocs/in sync - Do not add new owner logic under
src/unilab/utils/; the currentsrc/unilab/utils/*.pyfiles are transition shims only and are scheduled for removal in0.2.0 - Name new owner modules and packages after their responsibility: prefer singular nouns, use plural only for collection-valued contracts, and reserve suffixes such as
_factoryfor factory modules - Use English for code comments, public API docstrings, internal implementation notes, TODO/FIXME entries, and config comments. Keep Chinese prose in Chinese documentation under
docs/sphinx/source/zh_CN/; do not duplicate localized explanations inside source comments.
- Before changing training entrypoints, runners, env contracts, or backend paths, read RL Infrastructure Development Standard
- Before changing collaboration flow or issue / milestone rules, read Collaboration Workflow
make format # ruff format + ruff check --fix
make sync-rocm # Linux AMD / ROCm >= 7.1: sync deps and install torch==2.11.0+rocm7.2
make type # mypy src/unilab + pyright
make check # format + type (required before code-related commits)
make test # non-slow tests
make test-cov # non-slow tests + coverage report
make test-slow # slow integration and training smoke tests
make test-all # make check + make test-cov + benchmark entrypoint smokeUse Conventional Commits:
feat:new featurefix:bug fixdocs:documentation updatestyle:formatting only, no logic changerefactor:code refactortest:test-related changechore:build or tooling
- Choose and record the intended PR base before development.
- Run focused checks for the changed contract, then
make test-allon the final local head before creating or updating the PR. - Link the driving issue and record the exact validation commands, results, and backend/platform impact in the PR template.
- Complete review. A PR to
mainalso waits for applicable current-head remote CI; another base uses local validation and review, with remote CI run by the later PR that reachesmain.
Scope, authorization, roadmap branch, ADR, and release rules live in the Collaboration Workflow.
Use GitHub Issues to report bugs or propose features.
- Architecture & contracts: RL Infrastructure Development Standard
- Collaboration & ADR governance: Collaboration Workflow
- Test layout & markers: Development Standard §Testing
- Configuration system: Development Standard §Configuration