补充 sim-config coverage release gate 文档
This commit is contained in:
122
wasm-port/docs/sim-configs-coverage-handoff.md
Normal file
122
wasm-port/docs/sim-configs-coverage-handoff.md
Normal file
@@ -0,0 +1,122 @@
|
||||
# Sim-config coverage release handoff
|
||||
|
||||
This document is the short release-gate handoff for
|
||||
`linuxcnc/configs/sim` coverage in the LinuxCNC WASM/browser port. It points to
|
||||
the detailed matrix, fixes the current machine-readable inventory baseline, and
|
||||
records which skipped rows remain blocked instead of promoted.
|
||||
|
||||
Detailed references:
|
||||
|
||||
- `docs/sim-configs-coverage-matrix.md`
|
||||
- `docs/sim-configs-completion-plan.md`
|
||||
- `docs/full-process-boundary-design.md`
|
||||
- `tests/wasm/node/verify_sim_configs_inventory_wasm.mjs`
|
||||
|
||||
## Current inventory baseline
|
||||
|
||||
The current Node/WASM inventory gate is:
|
||||
|
||||
```bash
|
||||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||||
```
|
||||
|
||||
Required output:
|
||||
|
||||
```text
|
||||
sim_configs_wasm_node_inventory_executed=28
|
||||
sim_configs_wasm_node_inventory_passed=28
|
||||
sim_configs_wasm_node_inventory_skipped=131
|
||||
sim_configs_wasm_node_inventory_unexpected_fail=0
|
||||
sim_configs_wasm_node_inventory_skip_ASSET_ONLY=65
|
||||
sim_configs_wasm_node_inventory_skip_L4_PYTHON_REMAP=53
|
||||
sim_configs_wasm_node_inventory_skip_L4_TOOL_DB=1
|
||||
sim_configs_wasm_node_inventory_skip_L4_USER_M_PROCESS=1
|
||||
sim_configs_wasm_node_inventory_skip_NON_MAIN_CLASS=10
|
||||
sim_configs_wasm_node_inventory_skip_UPSTREAM_DEMO=1
|
||||
sim_configs_wasm_node_inventory=ok
|
||||
```
|
||||
|
||||
The generated artifact baseline is:
|
||||
|
||||
- `build/wasm/sim-configs-inventory/summary.tsv`
|
||||
- `build/wasm/sim-configs-inventory/skip-summary.tsv`
|
||||
- `build/wasm/sim-configs-inventory/boundary-summary.tsv`
|
||||
- `build/wasm/sim-configs-inventory/blocked-dependency-summary.tsv`
|
||||
- `build/wasm/sim-configs-inventory/full-process-boundary-summary.tsv`
|
||||
- `build/wasm/sim-configs-inventory/python-remap-boundary-summary.tsv`
|
||||
- `build/wasm/sim-configs-inventory/runtime-boundary-promotion-blockers.tsv`
|
||||
- `build/wasm/sim-configs-inventory/runtime-boundary-host-readiness-rollup.tsv`
|
||||
- `build/wasm/sim-configs-inventory/runtime-boundary-opt-in-probe-dispatch-rollup.tsv`
|
||||
|
||||
## Skip reason map
|
||||
|
||||
The TSV artifacts use hyphenated reason names. The shell output uses
|
||||
underscore-safe metric names. Treat these as the same baseline:
|
||||
|
||||
| Artifact reason | Shell metric suffix | Count | Release decision |
|
||||
| --- | --- | ---: | --- |
|
||||
| `ASSET-ONLY` | `ASSET_ONLY` | 65 | Subroutine/support asset; not a standalone browser main-program target. |
|
||||
| `L4-PYTHON-REMAP` | `L4_PYTHON_REMAP` | 53 | Keep inventory-only until a LinuxCNC-owned Python-remap runtime proof exists. |
|
||||
| `L4-TOOL-DB` | `L4_TOOL_DB` | 1 | Keep blocked until a LinuxCNC-owned tool database process/protocol proof exists. |
|
||||
| `L4-USER-M-PROCESS` | `L4_USER_M_PROCESS` | 1 | Keep blocked until a LinuxCNC-owned external user-M process state proof exists. |
|
||||
| `NON_MAIN_CLASS` | `NON_MAIN_CLASS` | 10 | Covered by class representative or macro/load policy, not direct standalone promotion. |
|
||||
| `UPSTREAM-DEMO` | `UPSTREAM_DEMO` | 1 | Preserved upstream demo edge; do not force pass. |
|
||||
|
||||
## Promotion policy
|
||||
|
||||
Rows may only move from skip/inventory to promoted coverage when all of these
|
||||
are true:
|
||||
|
||||
1. The row has a LinuxCNC-owned runtime proof for the behavior being promoted.
|
||||
2. Native proof passes first.
|
||||
3. Node/WASM proof passes after native proof.
|
||||
4. Browser/host proof passes after Node/WASM proof.
|
||||
5. `verify_no_standalone_cnc_semantics.sh` still passes.
|
||||
6. Generated inventory artifacts and docs agree on the new status.
|
||||
|
||||
Do not promote these runtime families from JavaScript glue alone:
|
||||
|
||||
- `L4-PYTHON-REMAP`
|
||||
- `L4-TOOL-DB`
|
||||
- `L4-USER-M-PROCESS`
|
||||
|
||||
## Release gate
|
||||
|
||||
Use this gate when changing sim-config coverage, promotion state, or inventory
|
||||
documentation:
|
||||
|
||||
```bash
|
||||
git diff --check
|
||||
wasm-port/tools/verify_vendor_sync.sh
|
||||
wasm-port/tools/verify_no_standalone_cnc_semantics.sh
|
||||
SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_sim_configs_inventory_wasm.sh
|
||||
wasm-port/tests/docs/node/verify_sim_configs_coverage_docs.sh
|
||||
wasm-port/tests/host/verify_host_smokes.sh
|
||||
```
|
||||
|
||||
The host aggregate must continue to include:
|
||||
|
||||
```text
|
||||
sim_configs_wasm_node_inventory_executed=28
|
||||
sim_configs_wasm_node_inventory_passed=28
|
||||
sim_configs_wasm_node_inventory_skipped=131
|
||||
sim_configs_wasm_node_inventory_unexpected_fail=0
|
||||
opfs_session_docs_node_smoke=ok
|
||||
sim_configs_coverage_docs_node_smoke=ok
|
||||
host_wasm_opfs_browser_smokes=ok
|
||||
```
|
||||
|
||||
## Blocked runtime probes
|
||||
|
||||
The opt-in runtime probes remain disabled on this host unless the required
|
||||
LinuxCNC runtime processes are available:
|
||||
|
||||
```bash
|
||||
ENABLE_MILLTURN_USER_M_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_millturn_user_m_runtime.sh
|
||||
ENABLE_TOOL_DB_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_tool_db_runtime.sh
|
||||
ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 bash wasm-port/tests/native/probe_python_remap_runtime.sh
|
||||
```
|
||||
|
||||
These commands are proof gates for future work, not part of the current
|
||||
release gate. The current inventory must continue to record the corresponding
|
||||
families as blocked.
|
||||
Reference in New Issue
Block a user