Repository navigation
hotfix: make physical-proven Smart Discovery the only production build route - #347
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e2a02ed1c2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| Condition="'$(MSBuildProjectName)' == 'ArIED61850Tester'"> | ||
| <Message Importance="High" | ||
| Text="Verifying tracked physical-proven Smart Discovery production route." /> | ||
| <Exec Command="powershell -NoProfile -ExecutionPolicy Bypass -File "$(MSBuildProjectDirectory)\scripts\enable-smart-discovery-capture.ps1" -VerifyOnly" /> |
There was a problem hiding this comment.
Select the platform-appropriate PowerShell executable
On non-Windows hosts, every application build now runs this unconditional target but invokes Windows PowerShell by the powershell name, which is normally unavailable where PowerShell Core is exposed as pwsh; this breaks Linux/macOS cross-target builds before compilation. ArIED61850Tester.csproj already defines ArIec61850PowerShell based on $(OS), so use that property here as the existing lock-validation target does.
Useful? React with 👍 / 👎.
Root cause confirmed: v1.6.39 release compiled the wrong discovery routePhysical diagnostic from AA1E1F06R4 proves the stable v1.6.39 package is rejected:
Confirmed root cause is build-route divergence, not engine SHA drift:
Hotfix head now tracks the exact physical-proven R7 mutations in production source and removes workflow-name-dependent compilation. Policy from this PR:
v1.6.39 physical rejection is committed as evidence/v1.6.39-physical-rejection.json. |
Physical release regression root cause
v1.6.39 is physically rejected on relay AA1E1F06R4.
Observed release diagnostic:
1.6.39+638d5b1fbaf757041019bcfb6172a8b6766355a8648124097621046f5f127ceb1cf853fea54db730REPORT_VALUE_REJECTED: BIT STRING report values were treated as Boolean on Digital status pointsRoot cause
The R7 physical-good artifact and the production release did not compile the same effective program.
Directory.Build.targetsenabled the physical-proven Smart Discovery route only when:GITHUB_WORKFLOW == "SCL Interoperability R7 Build", orGITHUB_WORKFLOW == "Smart Discovery Field Capture Build", orSmartDiscoveryProductionPromoted == trueThe production switch remained false. Therefore
Release Windows, installer builds and normal local builds compiled the legacyDiscoverSignalsAsyncpath while R7 silently mutatedNativeIec61850Client.csbefore compile.This explains why identical repository/engine SHAs still produced different physical behavior.
Hotfix policy
This PR does not change the Smart Discovery algorithm or engine.
It:
Services/NativeIec61850Client.cs;v1.6.39as physically rejected evidence.Engine remains:
648124097621046f5f127ceb1cf853fea54db730No release from this PR
Do not publish another stable release yet.
Required physical acceptance from artifacts produced by this PR:
Only after physical acceptance may a separate v1.6.40 release-prep be created.