Repository navigation
feat: publish MotrixLab integration package with unified mxlab CLI - #134
Conversation
069ed6d to
ca5baa5
Compare
a674a74 to
41b57da
Compare
|
Fixed the common cause of all four pytest CI failures: pytest prepend import mode collected motrix_deploy_tasks/tests/test_cli.py and motrixlab/tests/test_cli.py as the same top-level test_cli module. Renamed the new file to test_mxlab_cli.py without changing test behavior or global import mode. Verified both files collect together (33 collected); selected fast tests pass (11 passed, 22 integration deselected); prek passes. All four previous failed-job raw logs confirm this same collection mismatch. Pushed fix and awaiting fresh CI. |
|
CLI boundary cleanup: removed component main launchers and the four source wrapper scripts; removed deploy argv recursion and duplicate version branch (use mxlab --version). Component callable adapters and business logic remain in their owner packages. Subprocess CLI coverage now launches python -m motrixlab.cli with flat subcommands; updated guides/wiki and demo/video tooling accordingly. Validation: 80 focused command/artifact/task integration tests passed, including MuJoCo and MotrixSim CLI rollouts; another targeted command/version/tooling run passed 31 tests; strict bilingual Sphinx builds, prek, lock and whitespace checks passed; all three updated wheels built. Torch-dependent plugin export integration still cannot collect in existing .venv because libcudnn.so.9 is missing; no GPU/hardware execution claimed. Previous temporary wheel-install environments no longer exist, so no new clean-environment installation is claimed for this cleanup. |
67058f2 to
cb7fe57
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
It introduces a newly published public aggregate package and rewires the release/PyPI publishing and version-sync workflows, which warrants human verification before approval.
No open issues 🎉
What changed in this PR
This PR publishes a new motrixlab aggregate workspace package (refs #132) that exposes a single framework executable, mxlab, replacing the previously separate mxtrain / mxplay / mxexport / mxdeploy console scripts. motrixlab.cli:main is a thin lazy dispatcher that rewrites sys.argv and forwards train / play / export-onnx / export-deploy to motrix_rl.commands.* and deploy to motrix_deploy.cli; command implementations stay in their component packages. The view command implementation moves from the deleted scripts/view.py into motrixlab.commands.view (rebuilding the robot-view scene from motrix_env_core config classes so motrixlab need not depend on motrix_envs). The change also wires the new package into the root dev env, Commitizen version sync, uv.lock, the PyPI publishing workflow (now building/publishing six wheels in dependency order), Docker, tests, and the bilingual docs/READMEs/wiki.
Changes:
- Add
motrixlabpackage: unifiedmxlabCLI dispatcher, movedviewcommand +ViewConfig/view.yaml, pinned==0.4.0b1component dependencies. - Remove per-package console scripts and the intermediate
mxexportdispatcher; refactormotrix_deploy.cli.main()to drop its standalone entry (argv param,__main__,--version) andmotrix_rl.configto dropViewConfig/view_schema. - Extend release/version plumbing:
pypi-publish.ymlbuilds+publishesrl-builtin/env-motrixsim/motrixlabwith correct ordering; migrate docs, READMEs, wiki, Docker, and tests to themxlabsurface.
| File | Description |
|---|---|
motrixlab/src/motrixlab/cli.py |
New unified mxlab dispatcher; lazy-imports and routes six subcommands, restores argv. |
motrixlab/src/motrixlab/commands/view.py |
Moved view implementation + local ViewConfig; rebuilds robot scene from core config classes. |
motrixlab/pyproject.toml |
New package metadata: >=3.10,<3.12, pinned component deps, mxlab script, config package-data. |
motrix_deploy/src/motrix_deploy/cli.py |
Drops standalone CLI entry (argv/__main__/--version); main() adapts mxlab deploy. |
motrix_rl/src/motrix_rl/config.py |
Removes ViewConfig/view_schema (now owned by motrixlab); doc strings updated. |
.github/workflows/pypi-publish.yml |
Builds six wheels; adds ordered publish jobs for rl-builtin/env-motrixsim/motrixlab. |
uv.lock / pyproject.toml |
Registers motrixlab workspace member, dependency, and Commitizen version coverage. |
docker/docker-compose.yml, docker/Dockerfile |
Training command switched to mxlab train; all-packages install keeps mxlab available. |
tests/test_rl_commands.py, tests/test_view_command.py, motrixlab/tests/test_mxlab_cli.py |
Repoint CLI tests at motrixlab.cli and the moved ViewConfig. |
wiki/design/*.md, docs, READMEs |
Mechanical renames of old CLI invocations to the mxlab surface. |
Review effort: Balanced
300091b to
d689d8a
Compare
|
The requires-python range can be extended from <3.12 to <3.14. |
新开mr来做 |
Summary
Refs #132. Based on main after prerequisite #133 merged.
Validation
Release prerequisites
GitHub environments pypi-rl-builtin / pypi-env-motrixsim / pypi-motrixlab created. Maintainer still needs Pending/Trusted Publisher setup on PyPI and TestPyPI for new projects, final name registration confirmation, and actual workflow publication/index installation acceptance. No release/tag/upload executed; issue remains open.