nvx-rs: put the process, NVXS, and sandbox store APIs behind consumer-selected features
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- backend, build-system
Direzione di ricerca
Start with nvx-rs/Cargo.toml to map the existing features and their dependencies, then trace the listed nvx::host::process, nvx::host::nvxs, and nvx::host::store modules and their consumers, including the cli feature. Review tests/runtime-adapter, .github/actions/check-nvx-rs/action.yml, aci_edge_sandboxes, and nvx-rs/README.md for required configurations. Done means documented feature combinations build without warnings on Linux and Windows at the minimum Rust version, CI covers consumers with each feature and without them, and rustdoc documents the gates.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Related to #620 and #535.
Summary
The host feature of nvx-rs, which is on by default, enables every host API. #625, #627, and #628 add three APIs that only some consumers need:
| Module | Pull request | Purpose |
|---|---|---|
nvx::host::process (verified process references, event-driven exit waits) |
#625 | Refer to a process across restarts of the orchestrator without signaling a reused process ID |
nvx::host::nvxs (application-neutral NVXS session) |
#627 | Open a session with a guest agent |
nvx::host::store (sandbox store, launch journal, runtime identity) |
#628 | Let a successor orchestrator take over or stop the VMs of its predecessor, as a live update of the host orchestrator requires |
Put each behind a Cargo feature that a consumer enables only when it needs that capability, so that consumers that do not use it compile less code, pull fewer dependencies, and expose a smaller API. For example, the store could sit behind a host-orchestrator-live-update feature, since it serves the live update of the host side.
Proposal
- Define one feature per capability. The names are open; the feature names should describe what the consumer gets, as
host-orchestrator-live-updatedoes, rather than the module. - Express the dependencies between them in
Cargo.toml. For example, the store holds VMMs through verified process references, so its feature enables the process feature. - Decide whether
host, and thereforedefault, enables the new features. Leaving them out makes them opt-in. Enabling them keeps every current consumer building unchanged but saves nothing by default. - Gate the other crate code that uses these modules, such as the
clifeature, behind the same features or have those features enable them. - Consider whether existing host modules would benefit from the same treatment, but keep that for separate issues.
Requirements
- Every documented feature combination builds without warnings, on Linux and Windows, at the minimum supported Rust version.
tests/runtime-adapter, which checks the configurations that consumers build, covers a consumer with each new feature and one without any.check-nvx-rsbuilds and tests the new configurations;aci_edge_sandboxeskeeps building, with the features it needs enabled explicitly.nvx-rs/README.mdand the crate documentation list each feature, and rustdoc marks the gated items with the feature they need.
Acceptance criteria
- Building
nvx-rswith onlyhostcompiles none of the gated modules if the decision is to make them opt-in. - Enabling a feature makes its module and its dependencies available, and nothing else.
- CI covers each new configuration.
- Lingua principale
- Python
- Stelle
- 408
- Fork
- 28
- Merge medio
- 16h 35m
- PR unite (30g)
- 348
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/nvx
-
Track nvx-rs host VMM supervisor bugs: a non-UTF-8 process name at a reused PID blocks reconcile, reattach, and stopForse già presa @56steve l’ha presa 3 giorni fa. Apertabug-hunt confirmed good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
microsoft/nvx#720 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
-
nvx-rs: give a layered root's workloads the DNS server that their network policy allowsForse già presa @esaurez l’ha presa oggi. Aperta
microsoft/nvx#860 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 24/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 54/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/nvx
Issue simili
-
intake mcp-intake needs-ac needs-human-review priority:medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
Ikalus1988/MisakaNet#3848 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
521xueweihan/HelloGitHub#4105 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
igormcsouza/bookloud#54 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
aws-samples/sample-per-model-bedrock#526 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ok-oldking/ok-wuthering-waves#1802 ·
I maintainer di solito rispondono entro 2 giorni