Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -683,6 +683,8 @@ jobs:
'tools/CompareVI.Tools/CompareVI.Tools.psd1',
'tools/Compare-VIHistory.ps1',
'tools/Compare-RefsToTemp.ps1',
'tools/Get-LabVIEWContainerShellContract.ps1',
'tools/Run-NILinuxContainerCompare.ps1',
'scripts/CompareVI.psm1'
)) {
$candidate = Join-Path $bundleDir.FullName $relativePath
Expand Down
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,27 @@ The format is based on Keep a Changelog, and this project adheres to Semantic Ve

## [Unreleased]

## [v0.6.9] - 2026-03-30

### Fixed

- The published `CompareVI.Tools` bundle now includes the hosted NI Linux
runner helper `tools/Get-LabVIEWContainerShellContract.ps1`, restoring the
executable consumer contract for released VI-history downstreams that import
the bundle instead of a maintainer checkout.

### Added

- Release-time bundle certification now asserts the hosted NI Linux runner
contract files are present in the extracted `CompareVI.Tools` archive before
publication succeeds.

### Documentation

- Updated the release helper packet for the `v0.6.9` maintenance cut and
recorded the required coordination step to repin `comparevi-history` after
publication.

## [v0.6.7] - 2026-03-30

### Changed
Expand Down
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
<GenerateDocumentationFile>false</GenerateDocumentationFile>
<Deterministic>true</Deterministic>
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
<Version>0.6.7</Version>
<AssemblyVersion>0.6.7.0</AssemblyVersion>
<FileVersion>0.6.7.0</FileVersion>
<Version>0.6.9</Version>
<AssemblyVersion>0.6.9.0</AssemblyVersion>
<FileVersion>0.6.9.0</FileVersion>
<InformationalVersion>$(Version)+local</InformationalVersion>
<CompareViSharedSource Condition="'$(CompareViSharedSource)' == ''">package-first</CompareViSharedSource>
<CompareViSharedFallbackSource Condition="'$(CompareViSharedFallbackSource)' == ''">project</CompareViSharedFallbackSource>
Expand Down
42 changes: 42 additions & 0 deletions docs/archive/releases/RELEASE_NOTES_v0.6.9.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Release Notes v0.6.9

`v0.6.9` is a maintenance release that repairs the published
`CompareVI.Tools` bundle so released VI-history downstreams can execute the
hosted NI Linux contract without a maintainer checkout.

## Highlights

- The published `CompareVI.Tools` archive now includes
`tools/Get-LabVIEWContainerShellContract.ps1`, restoring the executable
hosted NI Linux consumer contract in the released bundle.
- Release-time bundle certification now fails closed if the published archive
omits the hosted NI Linux support scripts required by VI-history consumers.
- This cut is intentionally narrow. It repairs the released bundle contract; it
does not broaden the public VI-history product surface.

## Included maintenance slice

- `#2051` fix: ship complete NI Linux bundle contract

## Validation highlights

- Release branch `release/v0.6.9` updates the stable backend version surfaces
to `0.6.9`.
- Direct bundle proof validated the repair before publication:
- extracted bundle contains both
`tools/Run-NILinuxContainerCompare.ps1`
and
`tools/Get-LabVIEWContainerShellContract.ps1`
- bundle certification summary reports `status: producer-native-ready`
- Post-publication coordination for this cut is explicit:
- repin `comparevi-history` to `v0.6.9`
- rerun the canonical `DrawIcon.vi` proof on the released backend
- keep the public history surface constrained to characterization until the
developer-decision proof is satisfied

## Consumer impact

- Stable consumers should move from `@v0.6.8` to `@v0.6.9` to pick up the
repaired hosted NI Linux bundle contract.
- `comparevi-history` should treat `v0.6.9` as the minimum backend ref for the
canonical `DrawIcon.vi` proof going forward.
11 changes: 7 additions & 4 deletions docs/knowledgebase/VICompare-Refs-Workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,13 @@
- `compare_fail_fast` (`true`/`false`): stop iterating after the first detected diff (still uploads results, does not fail the job).
- `compare_fail_on_diff` (`true`/`false`): exit the job with failure status if any LVCompare run reports differences.
- `compare_modes` (string): comma-separated compare modes. Recognised values:
- `default` - compare with no ignore flags (full detail).
- `attributes` - apply `-noattr` to suppress attribute-only differences when you want a quieter run.
- `front-panel` - apply `-nofp`/`-nofppos` to suppress front panel layout changes.
- `block-diagram` - apply `-nobdcosm` to suppress block diagram cosmetic tweaks.
- `default` - legacy suppressed bundle (`-nobd -noattr -nofp -nofppos -nobdcosm`).
- `attributes` - keep attribute diffs visible while suppressing front panel
and block diagram surfaces.
- `front-panel` - keep front panel diffs visible while suppressing
attributes and block diagram surfaces.
- `block-diagram` - keep block diagram diffs visible while suppressing
attributes and front panel surfaces.
- `full` - run LVCompare with no ignore flags (`-nobd`, `-noattr`, `-nofp`, `-nofppos`,
`-nobdcosm` all disabled). Use when you need every cosmetic and functional change.
- `all` - alias for `full` (deprecated; the helper rewrites to `full` and emits a warning).
Expand Down
80 changes: 40 additions & 40 deletions docs/release/PR_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
<!-- markdownlint-disable-next-line MD041 -->
# Release v0.6.7 - PR Notes Helper
# Release v0.6.9 - PR Notes Helper

Reference sheet for the `v0.6.7` maintenance release. This cut ships the
merge-aware VI history start-ref repair from `develop` without bundling the
separate mode-semantics correction work.
Reference sheet for the `v0.6.9` maintenance release. This cut repairs the
published `CompareVI.Tools` bundle so released downstream consumers can execute
the hosted NI Linux VI-history contract without a maintainer checkout.

## 1. Summary

Release `v0.6.7` focuses on three themes:
Release `v0.6.9` focuses on three themes:

- **Merge-aware history anchors**: `tools/Compare-VIHistory.ps1` now preserves
a requested merge commit as the start of the history window when the target
VI changed through that merge.
- **Canonical single-VI recovery**: this is the backend cut required for the
`comparevi-history` `DrawIcon.vi` proof to render real comparisons instead of
honestly failing closed with zero executed pairs.
- **Narrow maintenance scope**: this cut does not claim to solve the separate
question of which public history modes are decision-useful; that remains the
next product-semantic slice.
- **Executable released bundle**: `CompareVI.Tools-v0.6.9.zip` now carries the
hosted NI Linux helper `tools/Get-LabVIEWContainerShellContract.ps1` instead
of shipping an incomplete runtime contract.
- **Released-backend recovery**: downstream VI-history consumers can once again
rely on the published bundle rather than a maintainer override or local
source tree to execute the canonical proof path.
- **Narrow maintenance scope**: this cut only repairs released bundle
executability. It does not expand the public VI-history surface or add new
product claims.

## 2. Maintenance Highlights

- History start-ref resolution now uses merge-aware path detection
(`git diff-tree --root -m ...`) instead of merge-blind detection, so
merge-only VI touches stay inside the emitted history plan.
- The shipped backend can now preserve `startRef=47ae...` for the canonical
`DrawIcon.vi` proof instead of collapsing that proof to
`startRef=endRef=fe98...` and zero comparisons.
- Stable release surfaces now pin `0.6.7`, isolating the backend repair in an
immutable stable cut before the separate mode-semantics work begins.
- `tools/Publish-CompareVIToolsArtifact.ps1` now places
`tools/Get-LabVIEWContainerShellContract.ps1` in the bundle and advertises it
through the published hosted-runner contract metadata.
- `tools/Test-CompareVIHistoryBundleCertification.ps1` now fails closed if the
extracted bundle omits the hosted NI Linux support scripts required by the
released consumer path.
- Stable release surfaces now pin `0.6.9`, isolating the bundle-contract repair
in an immutable stable cut after the broken `v0.6.8` publication.

## 3. Validation Snapshot

Expand All @@ -38,17 +38,16 @@ Release `v0.6.7` focuses on three themes:
- `smoke-gate`
- `Policy Guard (Upstream) / policy-guard`
- `commit-integrity`
- [x] Direct backend proof preserved the requested merge-aware history window:
- real-history stub proof preserved `startRef=47ae...` and processed four
comparison pairs across the requested modes
- synthetic merge-history proof preserved a merge commit as `startRef` while
the legacy probe reported no path touch
- [ ] `node tools/npm/run-script.mjs release:finalize -- 0.6.7` completes from
- [x] Direct bundle proof restored the published hosted NI Linux contract:
- extracted bundle contains both `tools/Run-NILinuxContainerCompare.ps1` and
`tools/Get-LabVIEWContainerShellContract.ps1`
- bundle certification summary reports `status: producer-native-ready`
- [ ] `node tools/npm/run-script.mjs release:finalize -- 0.6.9` completes from
a clean helper lane and writes fresh finalize metadata under
`tests/results/_agent/release/`
- [ ] Published release `v0.6.7` includes the signed distribution assets,
- [ ] Published release `v0.6.9` includes the signed distribution assets,
`SHA256SUMS.txt`, `sbom.spdx.json`, and `provenance.json`
- [ ] `comparevi-history` repins `comparevi-backend-ref.txt` to `v0.6.7`
- [ ] `comparevi-history` repins `comparevi-backend-ref.txt` to `v0.6.9`
before the canonical `DrawIcon.vi` product proof is rerun

## 4. Reviewer Focus
Expand All @@ -57,21 +56,22 @@ Release `v0.6.7` focuses on three themes:
- `package.json`
- `Directory.Build.props`
- `tools/CompareVI.Tools/CompareVI.Tools.psd1`
- Review the start-ref repair for correctness:
- `tools/Compare-VIHistory.ps1`
- `tests/CompareVI.History.Tests.ps1`
- Review the released bundle contract repair for correctness:
- `tools/Publish-CompareVIToolsArtifact.ps1`
- `tools/Test-CompareVIHistoryBundleCertification.ps1`
- `docs/schemas/comparevi-history-bundle-certification-v1.schema.json`
- Review the release helper packet for consistency:
- `CHANGELOG.md`
- `docs/release/TAG_PREP_CHECKLIST.md`
- `docs/archive/releases/RELEASE_NOTES_v0.6.7.md`
- `docs/archive/releases/RELEASE_NOTES_v0.6.9.md`

## 5. Follow-Up After Stable

1. Re-pin `comparevi-history` from `v0.6.6` to `v0.6.7` and rerun the
1. Re-pin `comparevi-history` from `v0.6.8` to `v0.6.9` and rerun the
canonical `DrawIcon.vi` proof on the released backend.
2. Take the separate mode-semantics correction before treating the emitted
public history modes as trustworthy decision surfaces.
3. Reduce the public mode surface if the rerun product proof only justifies a
narrower mode set.
2. Re-evaluate the current emitted history surface against the real developer
question before treating any mode as decision-ready.
3. Reduce the public mode surface again if the rerun product proof only
justifies a narrower mode set.

--- Updated: 2026-03-30 (prepared for the `v0.6.7` maintenance cut).
--- Updated: 2026-03-30 (prepared for the `v0.6.9` maintenance cut).
65 changes: 33 additions & 32 deletions docs/release/TAG_PREP_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# v0.6.7 Tag Preparation Checklist
# v0.6.9 Tag Preparation Checklist
<!-- markdownlint-disable-next-line MD041 -->

Helper reference for cutting or replaying the `v0.6.7` maintenance release.
Helper reference for cutting or replaying the `v0.6.9` maintenance release.
Aligns with the archived release notes
(`../archive/releases/RELEASE_NOTES_v0.6.7.md`) and the checked-in stable
(`../archive/releases/RELEASE_NOTES_v0.6.9.md`) and the checked-in stable
release surfaces.

## 1. Pre-flight Verification

- [ ] Work from `release/v0.6.7` and ensure it contains the final maintenance
- [ ] Work from `release/v0.6.9` and ensure it contains the final maintenance
changes.
- [ ] CI is green on the release branch (`lint`, `pester / normalize`,
`smoke-gate`, `Policy Guard (Upstream) / policy-guard`,
Expand All @@ -22,47 +22,48 @@ release surfaces.
## 2. Version & Metadata Consistency

- [ ] `CHANGELOG.md` contains a finalized
`## [v0.6.7] - 2026-03-30` section.
- [ ] Stable docs reference `v0.6.6` consistently until `v0.6.7` publication
completes, and the release helper packet references `v0.6.7`
`## [v0.6.9] - 2026-03-30` section.
- [ ] Stable docs reference `v0.6.8` consistently until `v0.6.9` publication
completes, and the release helper packet references `v0.6.9`
consistently.
- [ ] `package.json`, `Directory.Build.props`, and
`tools/CompareVI.Tools/CompareVI.Tools.psd1` all report `0.6.7`.
`tools/CompareVI.Tools/CompareVI.Tools.psd1` all report `0.6.9`.
- [ ] `docs/action-outputs.md` still matches `action.yml`.
- [ ] Update `docs/documentation-manifest.json` if release-doc coverage changed.

## 3. Start-Ref Regression Validation
## 3. Bundle Contract Regression Validation

- [ ] Focused history regression tests pass locally:
- [ ] Focused bundle regression tests pass locally:

```bash
pwsh -NoLogo -NoProfile -Command "Invoke-Pester -Path 'tests/CompareVI.History.Tests.ps1' -Output Detailed -CI"
pwsh -NoLogo -NoProfile -File tools/Test-CompareVIHistoryBundleCertification.ps1 -BundleArchivePath tests/results/_agent/bundle-fix/artifacts/CompareVI.Tools-v0.6.9.zip -ResultsDir tests/results/_agent/bundle-fix/certification -SummaryJsonPath tests/results/_agent/bundle-fix/certification/summary.json
```

- [ ] Confirm the direct backend proofs preserve the requested history start:
- [ ] Confirm the published bundle preserves the hosted NI Linux consumer contract:

- [ ] Real-history stub proof preserves `startRef=47ae...` for
`DrawIcon.vi` and processes four comparison pairs.
- [ ] Synthetic merge-history proof preserves the merge commit as `startRef`
while the legacy non-merge-aware probe reports no touch.
- [ ] The extracted bundle contains:
`tools/Run-NILinuxContainerCompare.ps1`
and
`tools/Get-LabVIEWContainerShellContract.ps1`
- [ ] Bundle certification reports `status: producer-native-ready`
- [ ] `comparevi-history` pin-bump coordination is queued immediately after
publication so the canonical product proof uses the released backend
instead of a maintainer override.

## 4. Release Materials Review

- [ ] `PR_NOTES.md`, this checklist, and
`../archive/releases/RELEASE_NOTES_v0.6.7.md` are consistent.
- [ ] `README.md` and `docs/USAGE_GUIDE.md` still treat `v0.6.6` as the
previously released stable pin until `v0.6.7` publication completes.
`../archive/releases/RELEASE_NOTES_v0.6.9.md` are consistent.
- [ ] `README.md` and `docs/USAGE_GUIDE.md` still treat `v0.6.8` as the
previously released stable pin until `v0.6.9` publication completes.

## 5. Tag Creation

- [ ] Verify signed-tag readiness before push:

```pwsh
node tools/npm/run-script.mjs priority:release:signing:readiness
node tools/npm/run-script.mjs priority:release:conductor -- --apply --channel stable --version 0.6.7
node tools/npm/run-script.mjs priority:release:conductor -- --apply --channel stable --version 0.6.9
```

- [ ] Confirm `tests/results/_agent/release/release-signing-readiness.json`
Expand All @@ -73,31 +74,31 @@ node tools/npm/run-script.mjs priority:release:conductor -- --apply --channel st
- [ ] Create an annotated stable tag:

```pwsh
git tag -a v0.6.7 -m "v0.6.7: publish merge-aware VI history start-ref repair"
git tag -a v0.6.9 -m "v0.6.9: repair CompareVI.Tools hosted bundle contract"
```

- [ ] Push the tag:

```pwsh
git push origin v0.6.7
git push origin v0.6.9
```

## 6. Validation After Publish

- [ ] Run `node tools/npm/run-script.mjs release:finalize -- 0.6.7` from a
- [ ] Run `node tools/npm/run-script.mjs release:finalize -- 0.6.9` from a
clean helper lane to fast-forward `main` and `develop`, then record the
finalize metadata.
- [ ] Install the action via `@v0.6.7` in a sample workflow and confirm a
merge-aware VI history run preserves the requested start ref.
- [ ] Re-pin `comparevi-history` to `v0.6.7` and confirm the canonical
`DrawIcon.vi` proof reaches real comparisons instead of failing closed on
zero executed pairs.
- [ ] Install the bundle via `@v0.6.9` in a sample workflow and confirm the
released hosted NI Linux VI-history contract executes without a local
source-tree override.
- [ ] Re-pin `comparevi-history` to `v0.6.9` and confirm the canonical
`DrawIcon.vi` proof reaches real comparisons on the released backend.

## 7. Communication

- [ ] Announce the maintenance cut, calling out the merge-aware history
start-ref repair and the required `comparevi-history` repin.
- [ ] Notify consumers that `v0.6.7` supersedes `v0.6.6` as the supported
- [ ] Announce the maintenance cut, calling out the released bundle-contract
repair and the required `comparevi-history` repin.
- [ ] Notify consumers that `v0.6.9` supersedes `v0.6.8` as the supported
stable pin.

--- Updated: 2026-03-30 (prepared for the `v0.6.7` maintenance cut).
--- Updated: 2026-03-30 (prepared for the `v0.6.9` maintenance cut).
Loading
Loading