diff --git a/.github/workflows/release-package.yml b/.github/workflows/release-package.yml index 16b16cd0..2b0e0523 100644 --- a/.github/workflows/release-package.yml +++ b/.github/workflows/release-package.yml @@ -4,9 +4,9 @@ on: workflow_dispatch: inputs: version: - description: Version label, for example 1.4.0-beta.2 + description: Version label, for example 1.4.0 required: true - default: 1.4.0-beta.2 + default: 1.4.0 publish_release: description: Create or update a GitHub Release required: true @@ -25,7 +25,7 @@ on: release_notes_file: description: Markdown file used as release body required: true - default: docs/RELEASE_NOTES_v1.4.0-beta.2.md + default: docs/RELEASE_NOTES_v1.4.0.md push: tags: - "v*" @@ -132,7 +132,7 @@ jobs: $sha = "artifacts/release/SHA256SUMS.txt" $manifest = "artifacts/release/release-manifest.json" $notesFile = '${{ github.event.inputs.release_notes_file }}' - if ([string]::IsNullOrWhiteSpace($notesFile)) { $notesFile = 'docs/RELEASE_NOTES_v1.4.0-beta.2.md' } + if ([string]::IsNullOrWhiteSpace($notesFile)) { $notesFile = 'docs/RELEASE_NOTES_v1.4.0.md' } if (-not (Test-Path $notesFile)) { throw "Release notes file not found: $notesFile" } $releaseArgs = @('release', 'create', $tag, $zip, $sha, $manifest, '--title', "Process Bus Insight $tag", '--notes-file', $notesFile, '--target', '${{ github.sha }}') diff --git a/Directory.Build.props b/Directory.Build.props index a690d919..f44804fb 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -9,10 +9,11 @@ https://masarray.github.io/DigSubAnalyzer/ en - + 1.4.0 - beta.2 - $(VersionPrefix)-$(VersionSuffix) + + $(VersionPrefix) + $(VersionPrefix)-$(VersionSuffix) $(Version) $(VersionPrefix).0 $(VersionPrefix).0 diff --git a/README.md b/README.md index dc0617bd..96a01ca0 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ **Process Bus Insight** is a free, open-source, receive-only **IEC 61850 Process Bus analyzer for Windows**. It provides engineering visibility into **Sampled Values (SV)**, **GOOSE**, **PTPv2 timing context**, and **SCL expected-vs-observed validation** for authorized FAT, SAT, commissioning-support, interoperability, laboratory, and troubleshooting workflows. -The project is currently a **public beta**. Its purpose is to identify live publishers, inspect protocol evidence, isolate unhealthy streams, reproduce sanitized captures offline, compare observed traffic against SCL, and preserve defensible findings without overstating measurement confidence. +The project is distributed as a **stable software release** for engineering observation and troubleshooting. Its purpose is to identify live publishers, inspect protocol evidence, isolate unhealthy streams, reproduce sanitized captures offline, compare observed traffic against SCL, and preserve defensible findings without overstating measurement confidence. > **Timing confidence:** normal Windows/Npcap timestamps and replayed capture timestamps are software evidence. Arrival timing is useful for screening and troubleshooting, but is not certification-grade jitter evidence unless the capture path is validated with appropriate hardware timestamping, TAP, or trusted timing equipment. @@ -56,7 +56,7 @@ The application can record what was configured in SCL, what the selected capture Current post-transition package naming: ```text -ProcessBusInsight-v1.4.0-beta.2-win-x64-portable.zip +ProcessBusInsight-v1.4.0-win-x64-portable.zip SHA256SUMS.txt release-manifest.json ``` @@ -97,8 +97,8 @@ dotnet run --project .\src\ProcessBus.App.Wpf\ProcessBus.App.Wpf.csproj -c Relea Create and verify a portable package: ```powershell -.\scripts\publish-windows-portable.ps1 -Version "1.4.0-beta.2" -.\scripts\verify-release-package.ps1 -PackageZip ".\artifacts\release\ProcessBusInsight-v1.4.0-beta.2-win-x64-portable.zip" +.\scripts\publish-windows-portable.ps1 -Version "1.4.0" +.\scripts\verify-release-package.ps1 -PackageZip ".\artifacts\release\ProcessBusInsight-v1.4.0-win-x64-portable.zip" ``` Run the repository-quality gate: diff --git a/docs/RELEASE_NOTES_v1.4.0.md b/docs/RELEASE_NOTES_v1.4.0.md new file mode 100644 index 00000000..117ca3e7 --- /dev/null +++ b/docs/RELEASE_NOTES_v1.4.0.md @@ -0,0 +1,33 @@ +# Process Bus Insight v1.4.0 — Stable + +Public Windows x64 portable release of **Process Bus Insight**, the receive-only IEC 61850 SV / GOOSE / PTP analyzer. + +## Operator improvements + +- Five uncluttered primary workspaces: Analyzer, Diagnostics, GOOSE, Timing/PTP, and SCL. +- Advanced raw packet inspection and engineering validation stay accessible through the Tools menu instead of adding navigation tabs. +- SCL mismatch badges and expected/observed svID text remain readable with natural-height rows and multiline wrapping. Redundant column and explanatory captions are removed; full matched evidence is still available in technical details and tooltips. +- SV real-sample waveform display, zero-cross alignment, stream-aware auto peak scaling, calibrated-unit selection, phasors and RMS. +- Per-stream diagnostics: arrival jitter, smpCnt discontinuity, missing samples, svQuality/smpSynch and capture-path indicators. +- GOOSE event timeline, PTP context, SCL stream catalog, dataset order and compare-to-wire evidence. + +## Install and verify + +1. Download `ProcessBusInsight-v1.4.0-win-x64-portable.zip` from this release. +2. Compare SHA256 with `SHA256SUMS.txt` and extract the portable application. +3. Install Npcap separately for live network capture. For offline analysis, open a compatible classic Ethernet PCAP. +4. Select the capture adapter and click Run. Use SCL Import to load SCD/CID/ICD/IID for expected/observed identity comparison. + +## Important engineering limitations + +**Stable** denotes a packaged software release, not a calibrated or IEC 61850-conformance-certified test instrument. No protection operation or SV/GOOSE publishing is included. Captured traffic does not prove a subscriber acted on it. + +- Normal Windows/Npcap timestamps and PCAP replay provide timing **screening evidence**; they are not proof of clock lock, precise jitter, or synchronization accuracy without independently validated capture and timestamping equipment. +- The 4I+4V nominal profile is an engineering display scaling assumption unless corresponding SCL mapping/instrument calibration is established. +- A stream with a different svID from expected SCL correctly reports mismatch even if APPID, destination MAC, VLAN and confRev agree. +- Real field acceptance, DPI clipping, USB Ethernet capture timing, packet losses and sustained CPU/GC must be verified in the intended environment. +- This release is licensed **GPL-3.0-or-later**. Review LICENSE, NOTICE, third-party and commercial-license documentation for the applicable terms. + +## Verification + +Windows Release build, xUnit regression suite, runtime stability and CodeQL / dependency audit are required before publication. The release workflow additionally rebuilds, tests, packages, and verifies the portable ZIP and SHA256 manifest. diff --git a/docs/index.html b/docs/index.html index 65580e87..0f465fd9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -37,7 +37,7 @@ "applicationCategory": "EngineeringApplication", "applicationSubCategory": "Digital substation and process bus analysis", "operatingSystem": "Windows 10, Windows 11", - "softwareVersion": "1.4.0-beta.2", + "softwareVersion": "1.4.0", "license": "https://spdx.org/licenses/GPL-3.0-or-later.html", "isAccessibleForFree": true, "url": "https://masarray.github.io/DigSubAnalyzer/", diff --git a/src/ProcessBus.App.Wpf/MainWindow.xaml b/src/ProcessBus.App.Wpf/MainWindow.xaml index c39a6dab..5097587f 100644 --- a/src/ProcessBus.App.Wpf/MainWindow.xaml +++ b/src/ProcessBus.App.Wpf/MainWindow.xaml @@ -3993,10 +3993,7 @@ - + @@ -4095,10 +4092,7 @@ - + @@ -4114,8 +4108,8 @@ CanUserDeleteRows="False" CanUserSortColumns="False" GridLinesVisibility="None" - RowHeight="48" - MinRowHeight="48" + RowHeight="{x:Static sys:Double.NaN}" + MinRowHeight="46" RowStyle="{StaticResource EngineeringDataGridRowStyle}" CellStyle="{StaticResource EngineeringDataGridCellStyle}" FontSize="11.5" @@ -4142,52 +4136,49 @@ - + - - + + - - - - - - - - - + - - - - + + + - + - - - - + + + - + @@ -4211,7 +4202,7 @@ - + @@ -4219,18 +4210,17 @@ - + + Margin="0,0,0,5" TextWrapping="Wrap"/> - @@ -4268,7 +4258,7 @@ - +