推进QtDragon虚拟HAL浏览器诊断证据
This commit is contained in:
@@ -97,8 +97,12 @@ export const VIRTUAL_HAL_SIM_CONFIG_SOURCE_TARGETS = Object.freeze([
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_xyz/on_abort.ngc",
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini",
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc",
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini",
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/on_abort.ngc",
|
||||
"linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_vertical.ini",
|
||||
"linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc",
|
||||
"linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini",
|
||||
"linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc",
|
||||
"linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_mpg.ini",
|
||||
"linuxcnc/configs/sim/qtvcp_screens/qtdragon/on_abort.ngc",
|
||||
]),
|
||||
|
||||
@@ -88,6 +88,51 @@ const BLOCKED_RUNTIME_FAMILIES = [
|
||||
const PROJECT_RELEASE_READINESS_ARTIFACT_API = "project-release-readiness-report";
|
||||
const PROJECT_RELEASE_READINESS_ARTIFACT_VERSION = 1;
|
||||
|
||||
const REQUIRED_QTDRAGON_PROMOTION_CANDIDATES = [
|
||||
{
|
||||
id: "qtdragon-multi-joint-on-abort",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini",
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "qtdragon-xyz-on-abort",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_xyz/qtdragon_inch.ini",
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_xyz/on_abort.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "qtdragon-xyz45-on-abort",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini",
|
||||
"linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/on_abort.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "qtdragon-hd-xyz-on-abort",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/qtdragon_hd_vertical.ini",
|
||||
"linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_xyz/on_abort.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "qtdragon-hd-z-compensation-on-abort",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini",
|
||||
"linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/on_abort.ngc",
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "qtvcp-screens-qtdragon-on-abort",
|
||||
sourceFiles: [
|
||||
"linuxcnc/configs/sim/qtvcp_screens/qtdragon/qtdragon_mpg.ini",
|
||||
"linuxcnc/configs/sim/qtvcp_screens/qtdragon/on_abort.ngc",
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
function isVirtualHalSimConfigSourceCoverageReady(report) {
|
||||
const coverage = objectOrEmpty(report);
|
||||
return coverage.apiName === "linuxcnc-wasm-virtual-hal-sim-config-source-coverage-report" &&
|
||||
@@ -96,7 +141,24 @@ function isVirtualHalSimConfigSourceCoverageReady(report) {
|
||||
arrayOrEmpty(coverage.missingTargets).length === 0 &&
|
||||
arrayOrEmpty(coverage.missingCapabilities).length === 0 &&
|
||||
arrayOrEmpty(coverage.sourceFiles).includes("linuxcnc/configs/sim/axis/foam/axis_foam.ini") &&
|
||||
arrayOrEmpty(coverage.sourceFiles).includes("linuxcnc/configs/sim/qtdragon/qtdragon_xyz/on_abort.ngc");
|
||||
arrayOrEmpty(coverage.sourceFiles).includes("linuxcnc/configs/sim/qtdragon/qtdragon_xyz/on_abort.ngc") &&
|
||||
arrayOrEmpty(coverage.sourceFiles).includes("linuxcnc/configs/sim/qtdragon/qtdragon_xyz45/qtdragon_xyza.ini") &&
|
||||
arrayOrEmpty(coverage.sourceFiles).includes(
|
||||
"linuxcnc/configs/sim/qtdragon_hd/qtdragon_hd_z_compensation/qtdragon_hd_z_compensation.ini",
|
||||
);
|
||||
}
|
||||
|
||||
function hasRequiredQtDragonPromotionCandidates(rows) {
|
||||
return REQUIRED_QTDRAGON_PROMOTION_CANDIDATES.every((candidate) =>
|
||||
rows.some((row) =>
|
||||
row.id === candidate.id &&
|
||||
row.complete === true &&
|
||||
row.currentNodeInventoryStatus === "PASS" &&
|
||||
row.blockedKind === "-" &&
|
||||
row.targetBrowserEvidence === "explicit-browser-diagnostics" &&
|
||||
candidate.sourceFiles.every((file) => arrayOrEmpty(row.sourceFiles).includes(file))
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
function isVirtualHalMotionControllerMatrixReady(report) {
|
||||
@@ -131,15 +193,7 @@ function isVirtualHalSimConfigPromotionCandidateReportReady(report) {
|
||||
arrayOrEmpty(candidateReport.blockedCandidateIds).length === 0 &&
|
||||
arrayOrEmpty(candidateReport.missingManifestFiles).length === 0 &&
|
||||
arrayOrEmpty(candidateReport.missingRequiredReports).length === 0 &&
|
||||
rows.some((row) =>
|
||||
row.id === "qtdragon-multi-joint-on-abort" &&
|
||||
row.complete === true &&
|
||||
row.currentNodeInventoryStatus === "PASS" &&
|
||||
row.blockedKind === "-" &&
|
||||
row.targetBrowserEvidence === "explicit-browser-diagnostics" &&
|
||||
arrayOrEmpty(row.sourceFiles).includes("linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/qtdragon_xyyz.ini") &&
|
||||
arrayOrEmpty(row.sourceFiles).includes("linuxcnc/configs/sim/qtdragon/qtdragon_multi_joint/on_abort.ngc")
|
||||
);
|
||||
hasRequiredQtDragonPromotionCandidates(rows);
|
||||
}
|
||||
|
||||
export function createProjectReleaseBrowserDiagnosticsArtifactValidation(artifact = {}) {
|
||||
|
||||
Reference in New Issue
Block a user