Repository navigation
Description
Parent: #1086, in #1076. Needs: #1118. Unblocks: #1120, #1121, #1123, #1131, #1132. No PR of this group merges before the API-ready commit.
Leaving code only. Every PR in this group changes only code that this workstream removes from NVX: the test adapter (tests/runtime-adapter), its runner and its CI jobs and gates, with the edits that remove references to it. Nothing that stays changes, and no later PR uses what these PRs change, so the size limits for kept code don't apply. Each PR still records its core lines and counted files, and its description opens with this note.
Goal. The 44K-line test adapter is gone, with its runner (runtime_adapter_tests.py and nvx.py's test-runtime-adapter) and its CI jobs and gates, once the case matrix gives each test a fate. #859 is closed as not planned when #816 is rescoped; the adapter's deletion is tracked here.
PRs, in order. Each PR has one goal, leaves dev green, and names in its description each old test of its area as kept, rewritten or retired, with each change that check_test_changes.py reports. Its tests follow the repository's test layout: a module's unit tests, and the code that only they use, sit in its tests.rs or tests/ and move with it. The estimates count core lines (code, not comments, docs or tests) and counted files; each PR records its measured values. Each PR does what its Scope says and no more: a case, input or layout that its Scope doesn't name, and whatever "Not in this PR" lists, is out of scope. Address every review comment within the scope, and ask before acting on one that asks for more.
- SL5.2: The 44K-line test adapter is gone.
- Objective: The obsolete test adapter and all machinery dedicated to running it are removed after the replacement acceptance suite assigns every case a disposition. CI no longer builds, selects or gates on adapter code.
- Contents: Leaving code. Delete
tests/runtime-adapter(45.9K text lines, 56 files and 156 cases at4f9a3214), its runner (runtime_adapter_tests.pyandnvx.py'stest-runtime-adapter), and its CI jobs, selectors and gates (ci.yml,run-nvx-microvm-tests.yml, thecheck-nvx-rsandvalidate-nvxactions, andci.py), once the case matrix gives each of its tests a fate. runtime adapter: the consumer-contract scenarios C2, C3, C6 and C7 on real VMs #859 is closed as not planned when NVX host/guest library wiring workstream: move NVX's binaries and tools onto the shared host and guest libraries #816 is rescoped. Its 6 counted files only lose lines. - Scope:
- Delete
tests/runtime-adapter, including its manifest, lockfile, sources, README, 56 files and 156 named cases. - Delete
scripts/nvx_tools/runtime_adapter_tests.pyand removetest-runtime-adapterfromscripts/nvx.py. - Remove adapter jobs, steps, selectors and gates from
.github/workflows/ci.yml,.github/workflows/run-nvx-microvm-tests.yml,.github/actions/check-nvx-rs/action.yml,.github/actions/validate-nvx/action.ymlandscripts/nvx_tools/ci.py. - Remove remaining references whose only subject is the deleted adapter.
- After the matrix gives every adapter test a fate, delete it; the PR description points every test reported as removed to that fate.
- Delete
- Not in this PR:
- Rewriting tests that stay: SL5.1a through SL5.1c provide and classify the replacements.
- Changing retained VM, snapshot, CLI or library behavior: this is a leaving-code-only deletion.
- General CI cleanup, workflow redesign or command renaming beyond references forced by the deletion.
- Deleting current microVM scenarios that the matrix keeps or rewrites.
- Replacing the adapter with another compatibility crate or runner.
- Approach: Delete the adapter directory and its dedicated runner first, then remove only imports, commands, workflow steps, selectors and documentation references that become dead. Use the completed case matrix as the gate. The adapter has no test-layout seams, so the retired allowlist baseline needs no adapter entry removed; do not recreate its helpers.
- Done when:
tests/runtime-adapterandscripts/nvx_tools/runtime_adapter_tests.pyare absent, andscripts/nvx.pyhas notest-runtime-adaptercommand.- CI contains no adapter build, job, selector or gate.
- The tests marked kept or rewritten in the case matrix run without the adapter.
- Needs: SL5.1c, in nvx-rs slimming 4.1.1: public-API tests, and smoke tests on real VMs #1118.
- Estimate: 0 core lines (deletions), 6 counted files.
Tests. CI is green without the adapter's jobs, and the tests that the case matrix keeps or rewrites run.
Done when: every PR above has merged, with dev green.
Activity
esaurez commentedon Nov 10, 2026
Workstream source/progress checkpoint - 2026-11-10 UTC
Checked boxes below mean merged scope, not merely an implemented first iteration. Implementation branches are source checkpoints, not automatic qualification, Ready or merge approval. Some starting inputs are frozen/anonymous commits rather than standalone branches; their exact SHAs and known merged producer refs are recorded explicitly.
The original technical scope remains authoritative, supplemented only by any portable technical clarification in this issue. No machine-specific execution policy is part of this checkpoint.
ci: stop building, running and gating on the runtime adapter
tests: delete the runtime adapter and its runner
ppenna commentedon Nov 11, 2026
SL5.2 scope decision (K1). #1499 deletes the runtime adapter but leaves
scripts/nvx_tools/kernel_features.pyunchanged:rationaleandvalidationtexts still name the adapter for several features.diagnosticsfeature's only listed validator is the adapter'svm_layeredtest. Its rationale and consumer are the layered sandbox entry,nvx::guest::sys::entry, which SL6.11b (nvx-rs slimming 4.2.4: the exec engine, the process modules and the old layered init are gone #1123) deletes.One later pull request will update every entry that names the adapter, after SL6.11b, and decide the
diagnosticsvalidator and setting there, with one kernel rebuild. The adapter's mentions inhost/template/clone/restore.rsgo with that file in SL6.2b (#1121).ci: stop building, running and gating on the runtime adapter
tests: delete the runtime adapter and its runner
ci: stop building, running and gating on the runtime adapter
tests: delete the runtime adapter and its runner
ppenna commentedon Nov 12, 2026
Completed. SL5.2: the test adapter is gone. It merged as #1499, in two commits on
feature/nvx-refactor:05e0f232687: ci: stop building, running and gating on the runtime adapter;5b3fab2c45e: tests: delete the runtime adapter and its runner.It merged after the acceptance that replaces the adapter: SL5.1a (#1488), SL5.1b (#1496) and SL5.1c (#1500). Every adapter test keeps its fate in
doc/acceptance-case-matrix.md.Passing CI that contains it: the push run on
feature/nvx-refactorat5b3fab2c45e, https://github.com/microsoft/nvx/actions/runs/43149037772, including the microVM jobs on KVM, MSHV and WHP.Follow-up K1 (
kernel_features.py) is now tracked on #1123, after SL6.11b.nvx-rs: return the modules that the slimming replaces to their base
ci: stop building, running and gating on the runtime adapter
tests: delete the runtime adapter and its runner
nvx-rs: return the modules that the slimming replaces to their base
ci: stop building, running and gating on the runtime adapter
tests: delete the runtime adapter and its runner