diff --git a/scripts/validation/historiangw-131/README.md b/scripts/validation/historiangw-131/README.md index d3d84c3f..bad31ee6 100644 --- a/scripts/validation/historiangw-131/README.md +++ b/scripts/validation/historiangw-131/README.md @@ -1,3 +1,10 @@ +**Landed:** OtOpcUa master `230cef4e` consumes the published Client/Contracts1.0.0; +historiangw#131 is closed with verification. The change is merged into this SDK2 +branch. The patch below is a historical/replay input; the validator recognizes +an already migrated checkout. [Master verification](../../../docs/plans/evidence/2026-11-10-historiangw-131.json) +records the whole-solution zero-warning build,523 Gateway passes,1,002 Runtime +passes and package hashes. SDK2 resource/release gates remain separate. + # HistorianGateway consumer TLS migration — issue 131 `consumer-1.0.0.patch` is a reviewable consumer change, kept separate from the diff --git a/scripts/validation/historiangw-131/validate.py b/scripts/validation/historiangw-131/validate.py index 73a747e4..134d2125 100644 --- a/scripts/validation/historiangw-131/validate.py +++ b/scripts/validation/historiangw-131/validate.py @@ -61,7 +61,16 @@ metadata = {'utc':datetime.datetime.now(datetime.timezone.utc).isoformat(),'cons (out/'metadata.json').write_text(json.dumps(metadata,indent=2)) consumer = out/'consumer'; archive(root,sha,consumer) subprocess.run(['git','init','-q',str(consumer)],check=True) -subprocess.run(['git','-C',str(consumer),'apply',str(patch)],check=True) +check = subprocess.run(['git','-C',str(consumer),'apply','--check',str(patch)],capture_output=True,text=True) +if check.returncode == 0: + subprocess.run(['git','-C',str(consumer),'apply',str(patch)],check=True) + metadata['consumer_patch_state'] = 'applied-to-archive' +else: + reverse = subprocess.run(['git','-C',str(consumer),'apply','--reverse','--check',str(patch)],capture_output=True,text=True) + if reverse.returncode: + raise RuntimeError('Consumer neither accepts the migration patch nor contains it completely: ' + check.stderr) + metadata['consumer_patch_state'] = 'already-present-in-consumer' + if not published: hg = out/'historiangw-source'; archive(a.hg_root,hg_sha,hg) adapter = consumer/'src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway/ZB.MOM.WW.OtOpcUa.Driver.Historian.Gateway.csproj'