Skip to content

nvx.py: retire the sandbox and run commands in favor of nvx-rs #725

Description

Related: #722.

Goal

Callers run sandboxes and microVMs with nvx-rs directly, instead of through nvx.py sandbox and nvx.py run, so that nvx.py no longer fronts the runtime CLI, and nvx-rs no longer reproduces nvx.py's program name and argparse's layout.

Today

  • nvx.py sandbox runs nvx-rs --prog PROGRAM --root ROOT sandbox ... with its standard streams, and exits with its status (scripts/nvx_tools/nvx_rs.py). nvx-rs: make the nvx-rs CLI the backend of nvx.py run #638 makes nvx.py run delegate to nvx-rs run the same way.
  • nvx.py runs the nvx-rs that NVX_RS names, the one that a release ships as bin/nvx-rs, or one that it builds with Cargo (doc/usage.md).
  • nvx::host::cli::args emulates argparse, so that usage and help match nvx.py's, wrapped at 80 columns, with the program name that --prog passes.
  • doc/usage.md, doc/run.md, and the scenarios of nvx.py test-microvm run nvx.py sandbox and nvx.py run.

Tasks

  • Decide how users of a checkout get nvx-rs: with Cargo, or with a command of nvx.py.
  • Move the documentation, the examples, and the test-microvm scenarios to nvx-rs.
  • Decide where the CPU-profile guidance goes. nvx-rs: make the nvx-rs CLI the backend of nvx.py run #638 has nvx.py run pass it to nvx-rs run to print after a failed cold boot, because its CPU catalog, in time_abi.py, also serves doctor and benchmark.
  • Deprecate nvx.py sandbox and nvx.py run for a period during which they print the nvx-rs command to use, then remove them, and the parts of scripts/nvx_tools/nvx_rs.py that only they use.
  • Remove --prog and the emulation of argparse's layout from nvx::host::cli::args, keeping usage errors with status 2.

Not in scope

Acceptance criteria

  • The documentation and the test suites run sandboxes and microVMs with nvx-rs.
  • nvx.py has no sandbox or run command.
  • nvx-rs has no --prog option, and no test pins argparse's layout.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions