先提交到云仓库
结论:已提交当前 Python-remap proof 链路、runtime/browser/UI/docs 相关变更;保持 L4-PYTHON-REMAP inventory baseline 不直接批量 PASS。
This commit is contained in:
@@ -322,6 +322,53 @@ function createToolDbProcessProofSummary(toolDbProcessProof = {}) {
|
||||
};
|
||||
}
|
||||
|
||||
function createPythonRemapRuntimeProofSummary(pythonRemapRuntimeProof = {}) {
|
||||
const proof = objectOrEmpty(pythonRemapRuntimeProof);
|
||||
const nativeLifecycleReady = proof.nativeLifecycleReady === true;
|
||||
const wasmLifecycleReady = proof.wasmLifecycleReady !== false;
|
||||
const browserLifecycleReady = proof.browserLifecycleReady !== false;
|
||||
const promotionAllowed = proof.promotionAllowed === true;
|
||||
const executionEnabled = proof.executionEnabled === true;
|
||||
const ready = nativeLifecycleReady &&
|
||||
wasmLifecycleReady &&
|
||||
browserLifecycleReady &&
|
||||
promotionAllowed === false &&
|
||||
executionEnabled === false;
|
||||
|
||||
return {
|
||||
apiName: "python-remap-runtime-proof-summary",
|
||||
summaryVersion: 1,
|
||||
phase: ready ? "ready" : "blocked",
|
||||
ready,
|
||||
boundaryClass: "L4-PYTHON-REMAP",
|
||||
fixtureFamily: proof.fixtureFamily ?? "axis/remap/stop-lookahead/nc_files",
|
||||
fixtureId: proof.fixtureId ?? "stop_lookahead_python_runtime_lifecycle",
|
||||
iniPath: proof.iniPath ?? "axis/remap/stop-lookahead/demo.ini",
|
||||
pythonPathPrepend: proof.pythonPathPrepend ?? "python",
|
||||
topLevelPath: proof.topLevelPath ?? "python/toplevel.py",
|
||||
callableName: proof.callableName ?? "queuebuster",
|
||||
runtimeMode: proof.runtimeMode ?? "browser-python-wasm-worker",
|
||||
nativeProbeStatus: proof.nativeProbeStatus ?? (nativeLifecycleReady ? "runtime_lifecycle_probe_passed" : "not_provided"),
|
||||
nativeProofArtifactPath: proof.nativeProofArtifactPath ?? "wasm-port/build/native/native-runtime-probe-summary.tsv",
|
||||
nativeProofStdoutLog: proof.nativeProofStdoutLog ?? null,
|
||||
nativeLifecycleReady,
|
||||
wasmLifecycleReady,
|
||||
browserLifecycleReady,
|
||||
interpreterStateBindingReady: proof.interpreterStateBindingReady !== false,
|
||||
generatorLifecycleReady: proof.generatorLifecycleReady !== false,
|
||||
promotionAllowed,
|
||||
executionEnabled,
|
||||
bulkPromotionAllowed: proof.bulkPromotionAllowed === true,
|
||||
manualLockUpdateRequired: proof.manualLockUpdateRequired !== false,
|
||||
requiredCommands: [
|
||||
"ENABLE_PYTHON_REMAP_RUNTIME_PROBE=1 wasm-port/tests/native/probe_python_remap_runtime.sh",
|
||||
"wasm-port/tests/sdk/node/verify_python_remap_runtime_port.sh",
|
||||
"SKIP_INTERP_BUILD=1 wasm-port/tests/wasm/node/verify_python_remap_runtime_port_wasm.sh",
|
||||
"SKIP_INI_BUILD=1 SKIP_INTERP_BUILD=1 wasm-port/tests/browser/verify_python_remap_runtime_browser.sh",
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
const BLOCKED_RUNTIME_FAMILIES = [
|
||||
"L4-USER-M-PROCESS",
|
||||
"L4-PYTHON-REMAP",
|
||||
@@ -2069,6 +2116,7 @@ export function createProjectReleaseReadinessReport({
|
||||
virtualHalSimConfigMacroLoadFixtures = null,
|
||||
virtualHalMotionControllerMatrix = null,
|
||||
toolDbProcessProof = {},
|
||||
pythonRemapRuntimeProof = {},
|
||||
blockedRuntimeFamilies = BLOCKED_RUNTIME_FAMILIES,
|
||||
promotedRuntimeFamilies = [],
|
||||
axisScreenshotArtifacts = [],
|
||||
@@ -2130,6 +2178,8 @@ export function createProjectReleaseReadinessReport({
|
||||
const axisScreenshotArtifactsReady = axisScreenshotArtifactSummary.ready;
|
||||
const toolDbProcessProofSummary = createToolDbProcessProofSummary(toolDbProcessProof);
|
||||
const toolDbProcessProofReady = toolDbProcessProofSummary.ready;
|
||||
const pythonRemapRuntimeProofSummary = createPythonRemapRuntimeProofSummary(pythonRemapRuntimeProof);
|
||||
const pythonRemapRuntimeProofReady = pythonRemapRuntimeProofSummary.ready;
|
||||
const ready = releaseGatePassed &&
|
||||
inventoryReady &&
|
||||
virtualHalSimConfigSourceCoverageReady &&
|
||||
@@ -2137,6 +2187,7 @@ export function createProjectReleaseReadinessReport({
|
||||
virtualHalSimConfigMacroLoadFixturesReady &&
|
||||
virtualHalMotionControllerMatrixReady &&
|
||||
toolDbProcessProofReady &&
|
||||
pythonRemapRuntimeProofReady &&
|
||||
blockedRuntimeReady &&
|
||||
axisScreenshotArtifactsReady;
|
||||
const missing = [
|
||||
@@ -2147,6 +2198,7 @@ export function createProjectReleaseReadinessReport({
|
||||
...(virtualHalSimConfigMacroLoadFixturesReady ? [] : ["virtual-hal-sim-config-macro-load-fixtures"]),
|
||||
...(virtualHalMotionControllerMatrixReady ? [] : ["virtual-hal-motion-controller-matrix"]),
|
||||
...(toolDbProcessProofReady ? [] : ["tool-db-process-proof"]),
|
||||
...(pythonRemapRuntimeProofReady ? [] : ["python-remap-runtime-proof"]),
|
||||
...(blockedRuntimeReady ? [] : ["blocked-runtime-families"]),
|
||||
...(axisScreenshotArtifactsReady ? [] : ["axis-screenshot-artifacts"]),
|
||||
];
|
||||
@@ -2177,6 +2229,8 @@ export function createProjectReleaseReadinessReport({
|
||||
virtualHalMotionControllerMatrixReady,
|
||||
toolDbProcessProofSummary,
|
||||
toolDbProcessProofReady,
|
||||
pythonRemapRuntimeProofSummary,
|
||||
pythonRemapRuntimeProofReady,
|
||||
blockedRuntimeFamilies: blockedFamilies,
|
||||
promotedRuntimeFamilies: promotedFamilies,
|
||||
promotedBlockedFamilies,
|
||||
@@ -2289,6 +2343,16 @@ export function createProjectReleaseReadinessReport({
|
||||
label: "Tool DB process proof detail",
|
||||
value: `wasm=${toolDbProcessProofSummary.wasmProtocolReady ? "ready" : "missing"} browser=${toolDbProcessProofSummary.browserProtocolReady ? "ready" : "missing"} opfs=${toolDbProcessProofSummary.opfsPersistenceReady ? "ready" : "missing"} promotion_allowed=${toolDbProcessProofSummary.promotionAllowed ? "1" : "0"}`,
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof",
|
||||
label: "Python remap runtime proof",
|
||||
value: pythonRemapRuntimeProofReady ? "ready" : "locked",
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof-detail",
|
||||
label: "Python remap runtime proof detail",
|
||||
value: `native=${pythonRemapRuntimeProofSummary.nativeLifecycleReady ? "ready" : "missing"} wasm=${pythonRemapRuntimeProofSummary.wasmLifecycleReady ? "ready" : "missing"} browser=${pythonRemapRuntimeProofSummary.browserLifecycleReady ? "ready" : "missing"} promotion_allowed=${pythonRemapRuntimeProofSummary.promotionAllowed ? "1" : "0"}`,
|
||||
},
|
||||
{
|
||||
id: "blocked-runtime-families",
|
||||
label: "Blocked runtime families",
|
||||
@@ -2328,6 +2392,8 @@ export function createProjectReleaseReadinessSummaryViewModel(
|
||||
const virtualHalMotionControllerMatrixReady = report?.virtualHalMotionControllerMatrixReady === true;
|
||||
const toolDbProcessProofSummary = objectOrEmpty(report?.toolDbProcessProofSummary);
|
||||
const toolDbProcessProofReady = report?.toolDbProcessProofReady === true;
|
||||
const pythonRemapRuntimeProofSummary = objectOrEmpty(report?.pythonRemapRuntimeProofSummary);
|
||||
const pythonRemapRuntimeProofReady = report?.pythonRemapRuntimeProofReady === true;
|
||||
const axisScreenshotArtifactSummary = objectOrEmpty(report?.axisScreenshotArtifactSummary);
|
||||
const blockedRuntimeFamilies = arrayOrEmpty(report?.blockedRuntimeFamilies);
|
||||
const promotedBlockedFamilies = arrayOrEmpty(report?.promotedBlockedFamilies);
|
||||
@@ -2430,6 +2496,18 @@ export function createProjectReleaseReadinessSummaryViewModel(
|
||||
? `wasm=${toolDbProcessProofSummary.wasmProtocolReady ? "ready" : "missing"} browser=${toolDbProcessProofSummary.browserProtocolReady ? "ready" : "missing"} opfs=${toolDbProcessProofSummary.opfsPersistenceReady ? "ready" : "missing"} promotion_allowed=${toolDbProcessProofSummary.promotionAllowed ? "1" : "0"}`
|
||||
: "missing",
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof",
|
||||
label: "Python remap runtime proof",
|
||||
value: pythonRemapRuntimeProofReady ? "ready" : "locked",
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof-detail",
|
||||
label: "Python remap runtime proof detail",
|
||||
value: pythonRemapRuntimeProofSummary.apiName
|
||||
? `native=${pythonRemapRuntimeProofSummary.nativeLifecycleReady ? "ready" : "missing"} wasm=${pythonRemapRuntimeProofSummary.wasmLifecycleReady ? "ready" : "missing"} browser=${pythonRemapRuntimeProofSummary.browserLifecycleReady ? "ready" : "missing"} promotion_allowed=${pythonRemapRuntimeProofSummary.promotionAllowed ? "1" : "0"}`
|
||||
: "missing",
|
||||
},
|
||||
{
|
||||
id: "blocked-runtime-families",
|
||||
label: "Blocked runtime families",
|
||||
@@ -2630,6 +2708,18 @@ export function createProjectReleaseReadinessArtifactValidationSummaryViewModel(
|
||||
? `wasm=${validation.toolDbProcessProofSummary.wasmProtocolReady ? "ready" : "missing"} browser=${validation.toolDbProcessProofSummary.browserProtocolReady ? "ready" : "missing"} opfs=${validation.toolDbProcessProofSummary.opfsPersistenceReady ? "ready" : "missing"} promotion_allowed=${validation.toolDbProcessProofSummary.promotionAllowed ? "1" : "0"}`
|
||||
: "missing",
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof",
|
||||
label: "Python remap runtime proof",
|
||||
value: validation?.pythonRemapRuntimeProofSummary?.ready === true ? "ready" : "locked",
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof-detail",
|
||||
label: "Python remap runtime proof detail",
|
||||
value: validation?.pythonRemapRuntimeProofSummary?.apiName
|
||||
? `native=${validation.pythonRemapRuntimeProofSummary.nativeLifecycleReady ? "ready" : "missing"} wasm=${validation.pythonRemapRuntimeProofSummary.wasmLifecycleReady ? "ready" : "missing"} browser=${validation.pythonRemapRuntimeProofSummary.browserLifecycleReady ? "ready" : "missing"} promotion_allowed=${validation.pythonRemapRuntimeProofSummary.promotionAllowed ? "1" : "0"}`
|
||||
: "missing",
|
||||
},
|
||||
{
|
||||
id: "missing",
|
||||
label: "Missing artifact evidence",
|
||||
@@ -3043,6 +3133,8 @@ export function createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel
|
||||
workflow?.validation?.promotionCandidateArtifactSummaryReady === true;
|
||||
const toolDbProcessProofSummary = objectOrEmpty(workflow?.validation?.toolDbProcessProofSummary);
|
||||
const toolDbProcessProofReady = workflow?.validation?.toolDbProcessProofReady === true;
|
||||
const pythonRemapRuntimeProofSummary = objectOrEmpty(workflow?.validation?.pythonRemapRuntimeProofSummary);
|
||||
const pythonRemapRuntimeProofReady = workflow?.validation?.pythonRemapRuntimeProofReady === true;
|
||||
const promotionArtifactRows = objectOrEmpty(promotionCandidateArtifactSummary.artifactRows);
|
||||
const hardBlockRuntimeFamilyRows = arrayOrEmpty(promotionCandidateArtifactSummary.hardBlockRuntimeFamilyRows);
|
||||
const hardBlockRuntimeFamilySummaryRows = arrayOrEmpty(
|
||||
@@ -3321,6 +3413,18 @@ export function createProjectReleaseReadinessArtifactUrlWorkflowSummaryViewModel
|
||||
? `wasm=${toolDbProcessProofSummary.wasmProtocolReady ? "ready" : "missing"} browser=${toolDbProcessProofSummary.browserProtocolReady ? "ready" : "missing"} opfs=${toolDbProcessProofSummary.opfsPersistenceReady ? "ready" : "missing"} promotion_allowed=${toolDbProcessProofSummary.promotionAllowed ? "1" : "0"}`
|
||||
: "not provided",
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof",
|
||||
label: "Python remap runtime proof",
|
||||
value: pythonRemapRuntimeProofSummary.ready === true ? "ready" : "locked",
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof-detail",
|
||||
label: "Python remap runtime proof detail",
|
||||
value: pythonRemapRuntimeProofSummary.apiName
|
||||
? `native=${pythonRemapRuntimeProofSummary.nativeLifecycleReady ? "ready" : "missing"} wasm=${pythonRemapRuntimeProofSummary.wasmLifecycleReady ? "ready" : "missing"} browser=${pythonRemapRuntimeProofSummary.browserLifecycleReady ? "ready" : "missing"} promotion_allowed=${pythonRemapRuntimeProofSummary.promotionAllowed ? "1" : "0"}`
|
||||
: "not provided",
|
||||
},
|
||||
...arrayOrEmpty(workflow?.validation?.virtualHalPromotionFamilyRows).map((row) => ({
|
||||
id: `virtual-hal-promotion-family-${row.id}`,
|
||||
label: `Promotion family ${row.label}`,
|
||||
@@ -3523,6 +3627,7 @@ export function createProjectReleaseReadinessArtifactValidation(artifact = {}) {
|
||||
const virtualHalSimConfigMacroLoadFixtures = objectOrEmpty(artifactObject.virtualHalSimConfigMacroLoadFixtures);
|
||||
const virtualHalMotionControllerMatrix = objectOrEmpty(artifactObject.virtualHalMotionControllerMatrix);
|
||||
const toolDbProcessProofSummary = objectOrEmpty(artifactObject.toolDbProcessProofSummary);
|
||||
const pythonRemapRuntimeProofSummary = objectOrEmpty(artifactObject.pythonRemapRuntimeProofSummary);
|
||||
const gateManifest = objectOrEmpty(artifactObject.gateManifest);
|
||||
const gateExecutionManifest = objectOrEmpty(artifactObject.gateExecutionManifest);
|
||||
const gateExecutionSummaryViewModel = objectOrEmpty(artifactObject.gateExecutionSummaryViewModel);
|
||||
@@ -3649,6 +3754,31 @@ export function createProjectReleaseReadinessArtifactValidation(artifact = {}) {
|
||||
arrayOrEmpty(toolDbProcessProofSummary.requiredCommands).join("\n") ===
|
||||
expectedToolDbProcessProofSummary.requiredCommands.join("\n") &&
|
||||
artifactObject.toolDbProcessProofReady === true;
|
||||
const expectedPythonRemapRuntimeProofSummary =
|
||||
createPythonRemapRuntimeProofSummary(pythonRemapRuntimeProofSummary);
|
||||
const pythonRemapRuntimeProofReady =
|
||||
pythonRemapRuntimeProofSummary.apiName === "python-remap-runtime-proof-summary" &&
|
||||
pythonRemapRuntimeProofSummary.summaryVersion === 1 &&
|
||||
pythonRemapRuntimeProofSummary.boundaryClass === "L4-PYTHON-REMAP" &&
|
||||
pythonRemapRuntimeProofSummary.fixtureFamily === "axis/remap/stop-lookahead/nc_files" &&
|
||||
pythonRemapRuntimeProofSummary.fixtureId === "stop_lookahead_python_runtime_lifecycle" &&
|
||||
pythonRemapRuntimeProofSummary.iniPath === "axis/remap/stop-lookahead/demo.ini" &&
|
||||
pythonRemapRuntimeProofSummary.pythonPathPrepend === "python" &&
|
||||
pythonRemapRuntimeProofSummary.topLevelPath === "python/toplevel.py" &&
|
||||
pythonRemapRuntimeProofSummary.callableName === "queuebuster" &&
|
||||
pythonRemapRuntimeProofSummary.nativeProbeStatus === (
|
||||
pythonRemapRuntimeProofSummary.nativeLifecycleReady
|
||||
? "runtime_lifecycle_probe_passed"
|
||||
: "not_provided"
|
||||
) &&
|
||||
pythonRemapRuntimeProofSummary.nativeProofArtifactPath === "wasm-port/build/native/native-runtime-probe-summary.tsv" &&
|
||||
pythonRemapRuntimeProofSummary.promotionAllowed === false &&
|
||||
pythonRemapRuntimeProofSummary.executionEnabled === false &&
|
||||
pythonRemapRuntimeProofSummary.bulkPromotionAllowed === false &&
|
||||
pythonRemapRuntimeProofSummary.manualLockUpdateRequired === true &&
|
||||
arrayOrEmpty(pythonRemapRuntimeProofSummary.requiredCommands).join("\n") ===
|
||||
expectedPythonRemapRuntimeProofSummary.requiredCommands.join("\n") &&
|
||||
artifactObject.pythonRemapRuntimeProofReady === pythonRemapRuntimeProofSummary.ready;
|
||||
const axisScreenshotArtifacts = arrayOrEmpty(axisScreenshotArtifactSummary.artifacts);
|
||||
const blockedRuntimeFamilies = arrayOrEmpty(artifactObject.blockedRuntimeFamilies);
|
||||
const promotedBlockedFamilies = arrayOrEmpty(artifactObject.promotedBlockedFamilies);
|
||||
@@ -3741,6 +3871,8 @@ export function createProjectReleaseReadinessArtifactValidation(artifact = {}) {
|
||||
virtualHalMotionControllerMatrixReady,
|
||||
toolDbProcessProofSummary,
|
||||
toolDbProcessProofReady,
|
||||
pythonRemapRuntimeProofSummary,
|
||||
pythonRemapRuntimeProofReady,
|
||||
axisScreenshotArtifactSummaryReady: axisScreenshotSummaryReady,
|
||||
axisScreenshotArtifactCount: axisScreenshotArtifacts.length,
|
||||
blockedRuntimeFamilies,
|
||||
@@ -3891,6 +4023,18 @@ export function createProjectReleaseReadinessArtifactValidation(artifact = {}) {
|
||||
? `wasm=${toolDbProcessProofSummary.wasmProtocolReady ? "ready" : "missing"} browser=${toolDbProcessProofSummary.browserProtocolReady ? "ready" : "missing"} opfs=${toolDbProcessProofSummary.opfsPersistenceReady ? "ready" : "missing"} promotion_allowed=${toolDbProcessProofSummary.promotionAllowed ? "1" : "0"}`
|
||||
: "missing",
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof",
|
||||
label: "Python remap runtime proof",
|
||||
value: pythonRemapRuntimeProofSummary.ready === true ? "ready" : "locked",
|
||||
},
|
||||
{
|
||||
id: "python-remap-runtime-proof-detail",
|
||||
label: "Python remap runtime proof detail",
|
||||
value: pythonRemapRuntimeProofSummary.apiName
|
||||
? `native=${pythonRemapRuntimeProofSummary.nativeLifecycleReady ? "ready" : "missing"} wasm=${pythonRemapRuntimeProofSummary.wasmLifecycleReady ? "ready" : "missing"} browser=${pythonRemapRuntimeProofSummary.browserLifecycleReady ? "ready" : "missing"} promotion_allowed=${pythonRemapRuntimeProofSummary.promotionAllowed ? "1" : "0"}`
|
||||
: "missing",
|
||||
},
|
||||
{
|
||||
id: "blocked-runtime-families",
|
||||
label: "Blocked runtime families",
|
||||
|
||||
Reference in New Issue
Block a user