diff --git a/.github/workflows/release-package.yml b/.github/workflows/release-package.yml index 1246a203..f7bdd071 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.1 + description: Version label, for example 1.4.2 required: true - default: 1.4.1 + default: 1.4.2 publish_release: description: Publish GitHub Release after successful validation (manual only) 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.1.md + default: docs/RELEASE_NOTES_v1.4.2.md push: tags: - "v*" @@ -183,7 +183,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.1.md' } + if ([string]::IsNullOrWhiteSpace($notesFile)) { $notesFile = 'docs/RELEASE_NOTES_v1.4.2.md' } if (-not (Test-Path $notesFile)) { throw "Release notes file not found: $notesFile" } $releaseArgs = @('release', 'create', $tag, $installer, $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 216f8573..f00caefa 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -10,7 +10,7 @@ en - 1.4.1 + 1.4.2 $(VersionPrefix) $(VersionPrefix)-$(VersionSuffix) diff --git a/README.md b/README.md index 62f8b76f..f6dc2f75 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ The application can record what was configured in SCL, what the selected capture ## Download and run -1. Download the latest **Windows Inno Setup installer** from [GitHub Releases](https://github.com/masarray/DigSubAnalyzer/releases): `ProcessBusInsight-v1.4.1-win-x64-setup.exe`. +1. Download the latest published **Windows Inno Setup installer** (v1.4.2 after its public release) from [GitHub Releases](https://github.com/masarray/DigSubAnalyzer/releases): `ProcessBusInsight-v1.4.2-win-x64-setup.exe`. 2. Run the installer. Its stable app identity supports in-place updates, same-version repair, Windows uninstall, and optional desktop shortcut. 3. **Offline manuals are installed directly inside the app folder** (`User Manual.pdf`, `Quick Start.pdf`, and `Install and Update.md`), with Start Menu shortcuts. 4. Install **Npcap separately** when live raw Ethernet capture is required; it is not bundled. Offline PCAP analysis remains available without it. @@ -58,8 +58,8 @@ An optional **portable ZIP** is also available for manual extraction. The commun Current Windows distribution naming: ```text -ProcessBusInsight-v1.4.1-win-x64-setup.exe -ProcessBusInsight-v1.4.1-win-x64-portable.zip (optional) +ProcessBusInsight-v1.4.2-win-x64-setup.exe +ProcessBusInsight-v1.4.2-win-x64-portable.zip (optional) SHA256SUMS.txt release-manifest.json ``` @@ -100,8 +100,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.1" -.\scripts\verify-release-package.ps1 -PackageZip ".\artifacts\release\ProcessBusInsight-v1.4.1-win-x64-portable.zip" +.\scripts\publish-windows-portable.ps1 -Version "1.4.2" +.\scripts\verify-release-package.ps1 -PackageZip ".\artifacts\release\ProcessBusInsight-v1.4.2-win-x64-portable.zip" ``` Run the repository-quality gate: diff --git a/docs/RELEASE_NOTES_v1.4.2.md b/docs/RELEASE_NOTES_v1.4.2.md new file mode 100644 index 00000000..57b27e78 --- /dev/null +++ b/docs/RELEASE_NOTES_v1.4.2.md @@ -0,0 +1,16 @@ +# Process Bus Insight v1.4.2 — GOOSE Selection Hotfix Candidate + +This hotfix follows published v1.4.1 and is **not** an IEC 61850 certification or a claim of completed physical Windows field acceptance. + +## Operator-visible changes +- Publisher explorer holds a stable selected publisher when GOOSE snapshots update rapidly. +- Inspector live values use the latest coherent selected-publisher frame; clicking a timeline row deliberately pins historical evidence without overwriting the chosen live publisher. +- Explicit selection persists across retransmissions, filtering, and temporary publisher absence. STALE retains last valid values and last-received time. +- Publisher identity includes source MAC, APPID, VLAN, and GoCBRef, preventing collisions between similarly named control blocks. +- Typed DataSet values still use generic MMS decode when SCL is unavailable, and resolve matching SCL mapping when supplied. +- No layout spacing, phasor, waveform, PTP, or SV decoder changes. + +## Verification before public release +A Windows hotfix candidate must pass repository health, Windows CI/test, Runtime Stability, Runtime Architecture, CodeQL, verified Inno installation/repair and exact-SHA BuildInfo provenance. A physical click/selection stream test remains a separate required check (100%, 125%, 150% DPI; sustained retransmissions, multiple publishers and filters). + +**Distribution:** candidate artifacts produced by the PR workflow are not a published stable v1.4.2 release. Preserve v1.4.1 tag and published assets. Explicit approval required to release the hotfix. diff --git a/docs/index.html b/docs/index.html index d1aa805b..3e80cef7 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.1", + "softwareVersion": "1.4.2", "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 98612882..a03eab09 100644 --- a/src/ProcessBus.App.Wpf/MainWindow.xaml +++ b/src/ProcessBus.App.Wpf/MainWindow.xaml @@ -1407,13 +1407,15 @@ FontWeight="SemiBold" Margin="0,0,0,8"/> -